Précédent   Forum des professionnels en informatique > PHP > Langage > Regex
Regex Forum d'entraide sur les expressions rationnelles PHP. Avant de poster -> FAQ regex, Cours de regex et Sources de regex
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 07/12/2006, 12h03   #1
Membre chevronné
 
Inscription : janvier 2006
Messages : 917
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 917
Points : 733
Points : 733
Par défaut Retirer les liens dans une chaîne

Bonjour

Je débute complètement avec les expressions régulières. Dans une chaîne contenant l'intégralité d'une page, y a-t-il un moyen de retirer les liens avec la fonction preg_replace ou ereg_replace ? Sachant que les balises <a> ne se ferment pas de manière distincte des autres, je n'arrive pas à les retirer sans enlever tout le code qui est après (jusqu'à </html> !).
Je précise que dans cette chaîne, il y a plusieurs liens et toutes sortes de balises.
En d'autres termes, comment faire pour trouver les portions de chaîne allant de "<a" à la première occurence de ">" ?

Merci d'avance
guidav est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/12/2006, 12h07   #2
Modérateur
 
Avatar de mathieu
 
Inscription : juin 2003
Messages : 4 893
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 4 893
Points : 4 466
Points : 4 466
tu peux t'inspirer des expressions régulières qui sont là :
http://www.developpez.net/forums/d49583/php/langage/debuter/systeme-remplacer-chaine-lien-hypertexte/
__________________
Modérateur PHP
mathieu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/12/2006, 13h07   #3
Membre chevronné
 
Avatar de Death83
 
Inscription : mars 2005
Messages : 1 667
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 1 667
Points : 746
Points : 746
avec un truc comme ca tu devrait t'en sortir:

Code :
1
2
 
$text=preg_replace('!<a [^<]*</a>!isU','',$text);
Faut tester après si ca marche (j'ai fait ca à la volé sans tester).
__________________
manganimes (en construction) -
zemanga
Death83 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/12/2006, 16h35   #4
Membre chevronné
 
Inscription : janvier 2006
Messages : 917
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 917
Points : 733
Points : 733
Merci pour vos suggestions.
Pour ceux que ça intéresse, ma solution est :
Code :
1
2
$patterns = array("(<a[^>]+[^>]*>)" , "(</a>)");
preg_replace($patterns,"",$text);
guidav est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h54.


 
 
 
 
Partenaires

Hébergement Web