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 05/06/2008, 01h19   #1
Invité de passage
 
Inscription : septembre 2007
Messages : 10
Détails du profil
Informations forums :
Inscription : septembre 2007
Messages : 10
Points : 1
Points : 1
Par défaut Extraire lien par expression reguliere

Bonjour,

J'utilise actuellement le module tinymce ( pour mon client... )
Et il se trouve que j'ai besoin d'extraire les liens que celui-ci peut avoir a mettre sur sa page...
Ils sont de la forme
<a href="index.php?page=LIEN"><span .....>TEXTE</span></a>
( le span n'est pas forcement la...)

Et j'aimerai récupérer le LIEN et le TEXTE... et ce pour toute ma page...

Je ne suis pas du tout familier des expressions regulieres... j'ai essayer pourtant ^^
Je suis parvenu a extraire pas mal de choses ( avec preg_match_all et explode... c'est mauvais...)
Mais j'ai un probleme avec les span qui sont de temps en temps la... de temps en temps non...
Bref je sollicite votre aide ^^

Merci d'avance.
Killion est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/06/2008, 09h07   #2
Membre habitué
 
Inscription : août 2006
Messages : 163
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 163
Points : 112
Points : 112
bonjour,

je débute en php mais est ce que ca ne fonctionnerai pas si tu faisait un truc du style
Code :
1
2
3
4
5
6
7
 
$mot="span"
if "(strcspn(<a href="index.php?page=LIEN"><span .....>TEXTE</span></a>",$mot)==strlen("<a href="index.php?page=LIEN"><span .....>TEXTE</span></a>"{
dans ce cas le mot span n'est pas present
{
sinon le mot span est la 
}
cela te permettrai d'adapter ta regex en fonction du lien.
gerald57 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/06/2008, 09h48   #3
Modérateur
 
Avatar de Nesmontou
 
Homme Benjamin PREVOT
Architecte de système d'information
Inscription : septembre 2004
Messages : 1 571
Détails du profil
Informations personnelles :
Nom : Homme Benjamin PREVOT
Âge : 30
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Architecte de système d'information
Secteur : Finance

Informations forums :
Inscription : septembre 2004
Messages : 1 571
Points : 2 529
Points : 2 529
Salut, ceci devrait faire l'affaire
Code :
1
2
3
4
5
6
7
8
<?php
$pattern = '#<a[^>]*href="index\.php\?page=([^"]*)"[^>]*><span[^>]*>([^<]*)</span></a>#imsU';
$subject = '...'; // Ton texte
preg_match_all($pattern, $subject, $matches, PREG_SET_ORDER);
foreach ($matches as $match) {
	echo $match[1] . ' - ' . $match[2] . "\n";
}
?>
Bon développement

PS : tu peux aussi parser ton fichier XML pour récupérer directement les liens et appliquer le traitement que tu souhaites effectuer
__________________
Si vous ne pouvez expliquer un concept à un enfant de six ans, c'est que vous ne le comprenez pas complètement. Albert EINSTEIN

F.A.Q. : Java, PHP, (X)HTML / CSS

N'oubliez pas de cliquer sur le bouton Résolu en bas de page quand vous avez obtenu une solution à votre problème
Nesmontou est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h51.


 
 
 
 
Partenaires

Hébergement Web