Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
939 connectés 

  FORUM HardWare.fr
  Programmation

  [PHP] comment effacer tous ce qui se trouve entre deux caratcères ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[PHP] comment effacer tous ce qui se trouve entre deux caratcères ?

n°17307
duch
Posté le 06-03-2001 à 16:56:05  profilanswer
 

J'aurais besoin de connaitre la syntaxe pour la fonction ereg_replace qui permet d'effacer tous les caractères qui se trouvent entre deux caractères, par exemple je voudrais effacer tout se qui se trouve entre <HTML> et </HEAD>
 
Je précise que la fonction strip_tags ne fonctionne pas sur ma version de PHP.
 
J'ai essayé ça :  
 
$result = ereg_replace('<HTML>([^>]|\n)*</HEAD>', '', $result);
 
mais ça marche pas, surtout j'y comprends rien à cette syntaxe à la con, ça veux dire quoi ([^>]|\n)* ?? si quelqu'un pouvait me détailler ça serait cool. J'aurais bien aimais un truc simple comme ça <HTML>*</HEAD> où * remplace tous les autres caractères.

 

--Message édité par duch--


---------------
Webmaster du site de l'Île-Saint-Denis : http://www.lile-saint-denis.fr
mood
Publicité
Posté le 06-03-2001 à 16:56:05  profilanswer
 

n°17314
duch
Posté le 06-03-2001 à 17:12:23  profilanswer
 

Notez que j'arrive à virer les commentaires de cette façon là :  
 
$result = ereg_replace('<!([^>]|\n)*>', '', $result);
 
 
autre exemple : cette ligne vire toutes les balises saufs les blaises <a> et </a>
 
$str = ereg_replace('<([^/a]|([/][^a]))([^>]|\n) *>', '', $str);
 
 
J'comprends un peu mieux avec ça mais ça reste encore hérmétique comme syntaxe.


---------------
Webmaster du site de l'Île-Saint-Denis : http://www.lile-saint-denis.fr
n°17324
zeltron
Posté le 06-03-2001 à 17:57:52  profilanswer
 

Il faut que tu te tapes la doc sur les expressions régulières gérées par PHP.

n°17330
M@nu
Posté le 06-03-2001 à 18:32:09  profilanswer
 

utilise les fonctions régulières compatibles perl c'est bcp plus efficace !
Aussi, pour les exemples que t'as donné, tu devrais plutot mettre eregi_replace, pour supprimer la sensibilité à la casse (ça peut être <A> ou <a> tes balises !)
 
Pour ta 1e question, ça devrait peut être marcher avec un truc comme ça (même si je suis pas vraiment spécialiste des REGEX...)
 
$truc = preg_replace("|<HTML>(.*?)</HEAD>|si","",$truc);
 
J'espère que ça marchera... :)

 

--Message édité par M@nu--

n°17340
duch
Posté le 06-03-2001 à 19:00:31  profilanswer
 

Merci pour le tuyau M@nu mais en fait j'vais faire autrement.
 
 
sinon il me reste encore un blème, comment qu'on crée un tableau dynamiquement ??
 
un tableau du genre
 
contenu = array ("contenu1"=>"texte1","contenu2"=>"texte2"...)
 
Sachant que contenu1 et contenu2 sont des variables (de même que texte1 et texte2 bien sûr). J'y crois pas y'a 12000 fonctions avec les tableaux mais y'a pas de fonction Add !!!

 

--Message édité par duch--


---------------
Webmaster du site de l'Île-Saint-Denis : http://www.lile-saint-denis.fr
n°17360
M@nu
Posté le 06-03-2001 à 21:19:02  profilanswer
 

Personnellement je préfère utiliser cette méthode pour créer des tableaux :
 
$tableau["contenu1"] = "texte1";
$tableau["contenu2"] = "texte2";
 
ça revient au même mais c'est plus clair
Après rien ne t'empêche de mettre des variables partout !! (pour le créer dynamiquement ton tableau) même le nom du tableau peut être une variable (tu mets $$machin["truc"], le nom de ton tableau est alors le contenu de la variable $machin, c'est des "variables variables" )
 
Après pour parcourir ton tableau à partir du début tu fais comme ça :
 
reset($tableau);
while (list($contenu,$texte) = each($tableau))
{
    //instructions pr chaque élément
}
autrement t'as plein de fonctions pour te placer dans tn tableau

n°17427
duch
Posté le 07-03-2001 à 10:08:40  profilanswer
 

Pour la création du tableau j'avais essayé comme ça mais ça avait pas l'air de marcher, bon j'vais réessayé.


---------------
Webmaster du site de l'Île-Saint-Denis : http://www.lile-saint-denis.fr
n°17433
duch
Posté le 07-03-2001 à 10:43:57  profilanswer
 

Merci M@nu, pour les tableaux ça marche, allez une ch'tite dernière :
 
peut on avec les REGEX extraire une chaine qui se trouve entre deux caractères prédefinis, exemple :  
 
@["machin",12,10,0]
 
j'aimerais extraire machin de cette chaine, comment kon fait?
 
Jai réussi à le faire de cette manière là, mais je trouve pas ça élégant :  
 
$limiteg = "@["";
$limited = """;
$line = strstr($line, $limiteg);
$line = substr($line, strlen($limiteg), strlen($line));
$line = substr($line, 0, strpos($line, $limited));
 
où $line = "@["machin",12,10,0]"


---------------
Webmaster du site de l'Île-Saint-Denis : http://www.lile-saint-denis.fr
n°17511
M@nu
Posté le 07-03-2001 à 15:09:32  profilanswer
 

ça devrait marcher comme ça :
 
$truc = preg_replace("|@\["(.*?)",12,10,0\]|si",\\1,$truc)
 
Si tu veux tout savoir sur les REGEX tu peux aller voir ici :
http://www.phpinfo.net/?p=articles&rub=regex
 
Bon, mais celles compatibles perl (preg_...) ne sont pas expliquées...
déjà si tu comprends la syntaxe...

n°17609
duch
Posté le 08-03-2001 à 10:05:16  profilanswer
 

Merci opur le lien M@nu, c'est super cool, j'vais enfin pouvoir comprendre à quoi servent ce putains de ^$* et autres.


---------------
Webmaster du site de l'Île-Saint-Denis : http://www.lile-saint-denis.fr
mood
Publicité
Posté le 08-03-2001 à 10:05:16  profilanswer
 

n°17732
M@nu
Posté le 08-03-2001 à 18:10:26  profilanswer
 

C'est clair, c'est un peu dur à comprendre au début, mais c'est vraiment très utile et bien plus rapide que tout le reste...
(tu peux les utiliser partout, pas seulement dans les fonctions du style ereg()...)
Un conseil, vas voir tous les exemples qu'ils donnent à la fin, et si tu les comprends tous, alors c'est bon ! :)

n°17734
M@nu
Posté le 08-03-2001 à 18:13:33  profilanswer
 

Autrement un autre lien qui est peut être un peu plus complet pour certains trucs : http://www.commentcamarche.net/php/phpreg.php3
 
Un truc super important de cette dernière page, c'est le tableau où ils donnent les codes pour les espaces et autres (du genre [:space:],[:digit:] etc...)

n°17741
duch
Posté le 08-03-2001 à 18:39:58  profilanswer
 

:love:


---------------
Webmaster du site de l'Île-Saint-Denis : http://www.lile-saint-denis.fr

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  [PHP] comment effacer tous ce qui se trouve entre deux caratcères ?

 

Sujets relatifs
[PHP] traitement fichier texte II, le retour[PHP] superposition d images
[PHP] traitement d'un fichier texte a tabulationPb Win2K PHP et MySQL
[PHP]$host : que dois je mettre ?[PHP] problème de liens
livres PHP d'occasModule PHP + Interbase5 pour utiliser sour W2K c'est possible ?
Mon site PHP/mySQL - Qu'en prensez-vous ?Besoin aide PHP pour me connecter et envoyer requettes SQL à Interbase
Plus de sujets relatifs à : [PHP] comment effacer tous ce qui se trouve entre deux caratcères ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR