11 réponses
P@t@ch0n
Messages postés
565
Date d'inscription
mercredi 15 avril 2009
Statut
Membre
Dernière intervention
28 décembre 2009
85
2 juin 2009 à 15:19
2 juin 2009 à 15:19
Oui, les accolades servent de quantificateur.
Et il faut utiliser des délimiteurs dans ton expression d'où l'erreur que tu as.
Et il faut utiliser des délimiteurs dans ton expression d'où l'erreur que tu as.
Je reformule ma question de façon plus claire :
J'ai une chaine :
Je veux remplacer "<a .......>" par "" (rien), et je n'arrive pas avec eregi_replace()...
Encore merci d'avance pour votre aide
J'ai une chaine :
$str="<p><a .......>XXXXXX</a></p>"
Je veux remplacer "<a .......>" par "" (rien), et je n'arrive pas avec eregi_replace()...
Encore merci d'avance pour votre aide
jeangilles
Messages postés
816
Date d'inscription
samedi 21 juin 2008
Statut
Membre
Dernière intervention
17 juillet 2012
185
28 mai 2009 à 15:13
28 mai 2009 à 15:13
Peut être en mettant :
$html=eregi_replace("<a(.*)</a>", "", $html);
$html=eregi_replace("<a(.*)</a>", "", $html);
Je n'y avais pas pensé merci
Mais maintenant le problème c'est qu'il s'arête au dernier </a> car en fait c'est un tableau de la forme :
<table>
<tr>
<th>
<a ....>...</a>
</th>
<th>
<a ....> ...</a>
</th>
...
Je voudrais juste qu'il supprime l'intérieur de la balise et non du 1er <a> au dernier </a> trouvé... :(
Merci pour ton aide
Mais maintenant le problème c'est qu'il s'arête au dernier </a> car en fait c'est un tableau de la forme :
<table>
<tr>
<th>
<a ....>...</a>
</th>
<th>
<a ....> ...</a>
</th>
...
Je voudrais juste qu'il supprime l'intérieur de la balise et non du 1er <a> au dernier </a> trouvé... :(
Merci pour ton aide
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
jeangilles
Messages postés
816
Date d'inscription
samedi 21 juin 2008
Statut
Membre
Dernière intervention
17 juillet 2012
185
28 mai 2009 à 15:31
28 mai 2009 à 15:31
ha oui
ben quelquechose comme ca alors :
$html=eregi_replace("(<a(.*)</a>)?", "", $html);
ben quelquechose comme ca alors :
$html=eregi_replace("(<a(.*)</a>)?", "", $html);
J'ai toujours le même problème, ça me remplace :
<a ....>...</a>
</th>
<th>
<a ....> ...</gras></a></gras>
au lieu de chaque :
<a ....>...</a>
<a ....>...</a>
</th>
<th>
<a ....> ...</gras></a></gras>
au lieu de chaque :
<a ....>...</a>
pyschopathe
Messages postés
1963
Date d'inscription
dimanche 2 mars 2008
Statut
Membre
Dernière intervention
22 mars 2010
137
2 juin 2009 à 12:35
2 juin 2009 à 12:35
Fais plutôt :
$html = eregi_replace( '<a.*?>', '', $html );ou
$html = eregi_replace( '<a{^>}*>', '', $html );Les deux reviennent au même et indiquent que tu dois consommer tous les caractères sauf >.
Merci pour ta réponse,
J'ai essayé le 1er mais ça ne marche pas vu qu'il y a "?>" dans l'expression régulière.
J'ai essayé le 2d également, mais ça n'a aucun effet sur ma chaîne...
J'ai un peu de mal à comprendre
J'ai essayé le 1er mais ça ne marche pas vu qu'il y a "?>" dans l'expression régulière.
J'ai essayé le 2d également, mais ça n'a aucun effet sur ma chaîne...
J'ai un peu de mal à comprendre
pyschopathe
Messages postés
1963
Date d'inscription
dimanche 2 mars 2008
Statut
Membre
Dernière intervention
22 mars 2010
137
2 juin 2009 à 14:37
2 juin 2009 à 14:37
Essaie d'utiliser preg_replace au lieu de ereg_replace... Par contre, je ne crois pas qu'il y ait une version case insensitive, il faudra adapter si ça pose problème.
Oui j'adapterai si cela ne fonctionne pas
Par contre, quand je lance le script, j'ai le message :
Warning: preg_replace() [function.preg-replace]: Unknown modifier '}'
Je n'ai pas trouvé d'équivalent pour cette fonction
Par contre, quand je lance le script, j'ai le message :
Warning: preg_replace() [function.preg-replace]: Unknown modifier '}'
Je n'ai pas trouvé d'équivalent pour cette fonction
pyschopathe
Messages postés
1963
Date d'inscription
dimanche 2 mars 2008
Statut
Membre
Dernière intervention
22 mars 2010
137
2 juin 2009 à 15:10
2 juin 2009 à 15:10
Utilise des crochets à la place des accolades, je me suis pitet planté...
Merci infiniment ça marche! :)
par contre est ce que je pourrais avoir quelques explications sur la syntaxte du premier paramètre stp?
Merci encore et bonne journée
par contre est ce que je pourrais avoir quelques explications sur la syntaxte du premier paramètre stp?
Merci encore et bonne journée
pyschopathe
Messages postés
1963
Date d'inscription
dimanche 2 mars 2008
Statut
Membre
Dernière intervention
22 mars 2010
137
2 juin 2009 à 15:23
2 juin 2009 à 15:23
Tu as choisi la seconde syntaxe ?
Les crochets délimitent un groupe, l'accent circonflexe exprime la négation. Donc tu as un groupe qui regroupe tous les caractères sauf '>'. L'étoile indique une répétition 0 à n fois.
Les accolades permettent de définir une quantité, rien à voir donc avec ce que tu voulais, désolé pour la boulette !
Les crochets délimitent un groupe, l'accent circonflexe exprime la négation. Donc tu as un groupe qui regroupe tous les caractères sauf '>'. L'étoile indique une répétition 0 à n fois.
Les accolades permettent de définir une quantité, rien à voir donc avec ce que tu voulais, désolé pour la boulette !