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
Configuration: Windows XP Firefox 3.0.10
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. -
Je reformule ma question de façon plus claire :
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 -
Peut être en mettant :
$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 -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
ha oui
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> -
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 -
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 -
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-
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 !
-
-
Oui j'ai choisi la seconde.
Merci pour ces explications :)
Elles vont m'être très utiles!
Bonne après-midi