begin process at 2012 05 31 02:33:32
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Divers

 > 

Débutant(e)

 > 

probleme simple avec un RegExp


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

probleme simple avec un RegExp

lundi 21 janvier 2008 à 12:23:34 | probleme simple avec un RegExp

M000004965

Bonjour à tous,

j'ai un petit soucis qui ne doit pas être trop compliqué pour certains d'entre vous, voilà:

Dans la chaine suivante:

preg_match('@[*>](?)([^<]+)@i',
    '<a href="/series/series.html?lettre=ac&page=1&userid=UIDREQUEST" accesskey=2><FONT color=#0000FF><< Pr&#233;c&#233;dent</FONT></a>', $matchesB);
$hostB = $matchesB[1];

 je souhaite extraire l'intitulé du lien ( devrai donner :    << Précédent  )

hors mon regexp me dit qu'il est vide en raison des carractères spéciaux qui sont assimilés aux balises html.

Avec un preg_replace comme ci-dessous, je ne solutionne pas.

$Extract=preg_replace("`>`","&gt;",$Extract);

Je n'obtiens pas une chaine vide mais le résultat n'est pas acceptable car j'obtiens :

<FONT color=#0000FF><< Précédent</FONT></a><br /><a

Comment puis-je faire?

NB !
Ne tenez pas compte des couleurs, c'est juste pour vous faciliter la lecture.

Pour plus d'info afin de mieux comprendre...
Une variable contient un lien, je récupère d'un coté l'url vers laquelle pointe le lien
et de l'autre, je récupère son intitulé.
je procède comme suit:

                   preg_match('@^(?:<a href=")?([^"]+)@i', $Extract, $matchesA);
                   $ContenuLien = $matchesA[1];

                   preg_match('@[*>](?)([^<]+)@i', $Extract, $matchesB);
                   $IntituleLien = $matchesB[1];

Avec 99% des liens c'est ok, mais pas avec les liens qui contiennent ce type de caractères dans leurs intitulés.
J'ai le même problème avec :    Suivant >>

D'avance, merci pour votre aide

Autodidact, je ne demande qu'à apprendre... Merci de votre aide
lundi 21 janvier 2008 à 13:56:48 | Re : probleme simple avec un RegExp

codefalse

Administrateur CodeS-SourceS
perso quand j'arrive pas avec les expressions régulières, je fait avec strpos et strrpos, tu cherche la position du premier >, ensuite tu récupere la suite et tu recommence et tu à le début de ta chaine, ensuite tu cherche le dernier < que tu enleve, et tu refait la meme opération et hop, tu à ta chaine :p
lundi 21 janvier 2008 à 17:25:17 | Re : probleme simple avec un RegExp

M000004965

pour ça il faut connaître à l'avance la syntaxe....

ce n'est pas mon cas, je ne connaît pas à l'avance ce qui est saisi pour titrer le lien et j'ai de tout !!!
j'ai déjà pas mal galéré avec les images cliquables, c'est réglé précisément en effectuant un strpos sur balise image
mais là c'est difficilement réalisable parce que des carractères comme ceux là, il y en a plusieurs...

je reste convaincu qu'une expression régulière est ce qu'il y a de mieux parce que je pourai inclure tout les cas de figures tout en gardant un code propre...

mais merci pour ton conseil

Autodidact, je ne demande qu'à apprendre... Merci de votre aide
lundi 21 janvier 2008 à 17:30:53 | Re : probleme simple avec un RegExp

codefalse

Administrateur CodeS-SourceS
En effet si tu ne sais pas à quoi t'attendre (juste une balise a, une balise a, font, div, etc), il vaut mieux utiliser les expressions régulieres.

Dans ce cas celle qui me vient à l'esprit, au niveau algorithmique, c'est de faire un :
j'enleve toutes les balises ouvrantes, puis les balises fermantes (en gros tant que t'a des <....> tu les enleves, ensuite tant que tu a des </....> tu les enleves) et tu récuperera le message.
Encore faut-il que tu ne commence pas à partir de <body></body> :p

Ca dépend beaucoup de comment tu t'y prends en fait !

tu peux récupérer tous tes a, et ensuite faire la méthode que je viens d'expliquer, ca devrait marcher


Cette discussion est classée dans : probleme, preg, match, regexp, matchesb


Répondre à ce message

Sujets en rapport avec ce message

Probleme avec FULLTEXT (wher match... against) [ par mikito ] Bonjour tout le monde voila mon probleme :quand j'effectue une requete telle que : $requete = "SELECT * FROM `produit` WHERE MATCH (nom) AGAINST ('$mo Masque pour preg_match() ... Aidez-moi ! [ par LocalStone ] Alors, j'expose le problème : J'ai 1 fichier texte qui contient des ligne du style : 0004 - Chu Chu Rocket (J)Donc le masque approprié pour sépare Problème avec preg_match_all [ par Bountard ] Salut à tous, j'ai un petit problème avec l'utilisation de preg_match_all. Pour faire plus simple voila mon bout de code d'essai :   $html = ' un Preg_match_all , soucis d'utilisation [ par Bountard ] Bonjour à tous, j'ai un problème depuis quelques jours avec preg_match_all. Voila mon code : $html = ' un deux un bis Preg_match [ par w_minisplash_w ] Bonjour à tous,Voici mon problème :J'ai une chaine './dossier_1/dossier_2/....../dossier_n'Je veux en extraire dossier_nJ'ai donc essayé avec preg_mat utilisation de preg_match [ par joebuz ] bonjour, voila j'ai 4 type de phrases (pour l'instant) et je veux en extraire le morceau compris entre // et //1- $phrase = "salut visiteur //act_001. Interpreter du php avec une fonction preg_match [ par cedriclomb ] Bonjour,Voila le probleme        function traiter_php()            {             $pattern = "()";             $recherche="";            preg_match($pa Métacaractères... [ par mfaraday ] Salut...Est-ce que quelqu'un pourrait m'expliquer comment utiliser les métacaractères dans un profil de recherche pour la fonction preg_match par exem preg_match_all comment faire ? [ par Steph115 ] Bonjour,Je ne suis pas très a l'aise dans les preg_match_all et je bloque un peu sur cette idée :J'ai une chaîne définit comme cela :!view_client:*,vi preg_replace / eregi_replace petit probleme [ par nem02004 ] Salut, je voudrais faire:echo preg_replace("`]+?>.*?`", urlencode("\\1"), $message);mais le url_encode n'est pas pris en comtpe, comment peux ton fair


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,076 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales