Aller au contenu

replace expression reguliere


Lentreprenaute

Sujets conseillés

bonjour le Hub,

question pour le spécialiste des expressions regulieres alias anonymus :D mais si vous avez la soluce n'hesitez pas, je voudrai et si c'est possible reecrire tous les liens qui se presente ainsi, il ya donc deux variables X et Y

le truc serait de recuper la valeur de Y qui se trouve entre les balises <a...>Y</a>

pour la reutiliser pour remplacer la chaine "index.php?cat=" ci-dessous.

la variable A qui serait a traiter peut contenir plusieurs series de <a...>Y</a>

remplacer tous les tags hrefs

<A class='lienp' href='index.php?cat=X'>Y</A>

par

<A class='lienp' href='Y-X.html'>Y</A>

FL :wacko: rent

Lien vers le commentaire
Partager sur d’autres sites

 /<[aA]((?:\s\S+)*)\s+href=(['"]?)index.php\?cat=(.*?)\2((?:\s+\S+)*)\s*>\s*(.*?)\s*</[aA]>/

à transformer en

<a\1 href="\5-\3"\4>\3</a>

note1 : c'est un code pour PCRE et pas pour les EREG Posix

note2: non testé, il y a surement des erreurs, mais ça doit tourner autour de ça et pouvoir te servir de base de réflexion

Lien vers le commentaire
Partager sur d’autres sites

voila un petit exemple pret a l'emploi:

$txt="<A class='lienp' 
href='index.php?cat=Xuu' name='eee'>Lien1</A>
<A class='lienp' href='index.php?cat=X'>Lien2</A>
<A class='lienp' href='index.php?cat=X'>Lien3</A>";
$motif="#(<a.*?href=['\"])[^=]*=([^'\"]*)([^>]+)>([^<]+)#si";
echo preg_replace($motif,'$1$4-$2.html$3>$4',$txt);

j'ai eu la solution sur phpfrance.

http://www.phpfrance.com/forums/ftopic42777.php

Florent

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...