Eregi_replace("<a(.*)>", "&qu
jujucool
-
jujucool -
jujucool -
Bonjour,
Grâce à
$html=eregi_replace("<a(.*)>", "", $html); //$html est de la forme <table><tr><td><a....></a>...
je tente de remplacer la balise "<a border=... toto=....>" par ""
Le problème c'est que dès que la fonction trouve le 1er "<a", elle remplace tous le reste de la chaine par "" vu que mon tableau finit pas "</table>" donc par ">"
Quelqu'un a une idée? :s
Merci d'avance
Grâce à
$html=eregi_replace("<a(.*)>", "", $html); //$html est de la forme <table><tr><td><a....></a>...
je tente de remplacer la balise "<a border=... toto=....>" par ""
Le problème c'est que dès que la fonction trouve le 1er "<a", elle remplace tous le reste de la chaine par "" vu que mon tableau finit pas "</table>" donc par ">"
Quelqu'un a une idée? :s
Merci d'avance
11 réponses
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
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
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>
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
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
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
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 !