|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Nouveau Membre du Club
![]() Inscription : juillet 2007 Messages : 98 ![]() |
Bonjour
J'essaye de désactiver(supprimer) des liens avec preg_replace : Code :
<a href="cible.html" target="_top">blablabla</a> Voilà la tête de ma regex, qui n'a pas l'air d'être bonne : Code :
$contenu = preg_replace("~<a href=\"".$lien.".html\">([[:graph:]]{1,})</a>~", '$1', $contenu) ; |
|
|
00
|
|
|
#2 |
|
Nouveau Membre du Club
![]() Pascal SandrezIngénieur développement matériel électronique Inscription : janvier 2005 Messages : 101 ![]() |
J'essaierais ça :
Code :
$contenu = preg_replace("~<a[^>]*>([^<]+)</a>~i", '$1', $contenu) ;
__________________
Pascal Sandrez |
|
|
00
|
|
|
#3 |
|
Nouveau Membre du Club
![]() Inscription : juillet 2007 Messages : 98 ![]() |
oui, mais je ne veux remplacer que les liens dont la destination est $lien !
|
|
|
00
|
|
|
#4 |
|
Inactif
Inscription : mai 2008 Messages : 179 ![]() |
|
|
|
00
|
|
|
#5 |
|
Nouveau Membre du Club
![]() Pascal SandrezIngénieur développement matériel électronique Inscription : janvier 2005 Messages : 101 ![]() |
ah dans ce cas:
Code :
$contenu = preg_replace('~<a href="'.$lien.'"([^<]*)>([^<]+)</a>~i', '$1', $contenu) ;
__________________
Pascal Sandrez |
|
|
00
|
|
|
#6 | ||
|
Nouveau Membre du Club
![]() Inscription : juillet 2007 Messages : 98 ![]() |
Désolé ça ne marche pas. Le script ne remplace rien du tout.
Voilà à quoi ressemblent les liens : Code :
<a href="101000.html"><img src="../medias/b.gif" border="0"></a> Le script récupère l'ensemble des liens dans $contenu puis vérifie leur validité (fontion rubrique_client). S'il est non valide, il doit le supprimer avec un preg_replace en concervant le texte ou l'image : Code :
Merci si vous avez une idée. |
||
|
|
00
|
|
|
#7 |
|
Nouveau Membre du Club
![]() Inscription : juillet 2007 Messages : 98 ![]() |
En fait cela fonctionne bien si la balise <a> n'enferme que du texte.
Mais si on y trouve d'autres balises (<br />, <span> ou <img>) cela ne fonctionne pas. Comment modifier la regex ? Code :
$contenu = preg_replace('~<a href="'.$lien.'"([^<]*)>([^<]+)</a>~i', '$2', $contenu) ; |
|
|
00
|
|
|
#8 |
|
Inactif
Inscription : mai 2008 Messages : 179 ![]() |
Les regexp ne sont pas faîtes pour ça, y aura toujours des cas foireux.
Le lien que je te donne au dessus te permet de t'en sortir de façon clean, avec un outil qui existe pour ça (DOM). |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com