Aide sur Expression eregi en PHP

Aide sur Expression eregi en PHP - PHP - Programmation

Marsh Posté le 18-03-2009 à 22:35:01    

Bonjour à tous,
 
J'essaie actuellement de faire un script qui récupère le premier lien d'une page web.  
Les liens sont du type: http://www.monlien.fr/mapage1.html
Pour cela j'utilise les expressions régulières. J'utilise la fonction php eregi mais je n'obtiens pas exactement ce que je veux.
 
Voici mon instruction:
Code :
 
  $string = '<a href="http://www.monlien.fr/mapage1.html" class="selectVdo" target="_PARENT" >Nom lien du 16/1/09</a><br/><a href="http://www.monlien.fr/mapage1.html" class="selectVdo" target="_PARENT" >Nom lien du 17/03/09</a>';
 
dans la string j'ai deux liens qui sont constitué presque pareil .... moi je voudrais retourner le premier lien ... à savoir : http://www.monlien.fr/mapage1.html
 
j'ai pensé utiliser eregi(" a href=\"(.*)class",$string,$regs);
 
prendre tout ce qui est entre a href=" et class mais vu que les balise href=" & class sont présentent plusieurs fois dans la chaine, il faudrait qu'il s'applique à la première itération .....
 
et là ca coince
 
Si je code ça :  

Citation :


<?php
$string = '<a href="http://www.monlien.fr/mapage1.html" class="selectVdo" target="_PARENT" >Nom lien du 16/1/09</a><br/><a href="http://www.monlien.fr/mapage1.html" class="selectVdo" target="_PARENT" >Nom lien du 17/03/09</a>';
 
$toto = eregi("a href=\"(.*)class",$string,$regs);
echo "$regs[1]";
?>


 
j'ai ça comme résultat :

Citation :


http://www.monlien.fr/mapage1.html" class="selectVdo" target="_PARENT" >Nom lien du 16/1/09


 
par contre je je rajoute une balise par exemple font-style="2px" (!!! attentionc'est juste pour l'exemple)

Citation :


<?php
$string = '<a href="http://www.monlien.fr/mapage1.html" font-style="2px" class="selectVdo" target="_PARENT" >Nom lien du 16/1/09</a><br/><a href="http://www.monlien.fr/mapage1.html" class="selectVdo" target="_PARENT" >Nom lien du 17/03/09</a>';
 
$toto = eregi("a href=\"(.*)\" font",$string,$regs);
echo "$regs[1]";
?>


en retour j'ai bien mon lien 1 isolé.


 
 
Je sollicite votre aide pour résoudre mon problème et avoir une petite explication du pourquoi çà ne marche pas .... si ce n'est pas trop demandé
J'ai épluché tout ce que je pouvais sur les forums, phpnet et compagnie, mais sans grand succès ....
 
Merci beaucoup par avance.

Reply

Marsh Posté le 18-03-2009 à 22:35:01   

Reply

Marsh Posté le 18-03-2009 à 22:41:37    

avec la class DOMDocument ca devrai se faire plus facilement

Reply

Marsh Posté le 18-03-2009 à 23:06:12    

euhhh j'connais pas ...

Reply

Marsh Posté le 19-03-2009 à 08:29:53    

qq peut il me doner un coup de pouce sur mon pb ??

Reply

Marsh Posté le 19-03-2009 à 09:20:14    

A defaut, tu peux utiliser la regex suivante :  
href=\"([^\"]*)\"

Reply

Marsh Posté le 19-03-2009 à 10:37:35    

Code :
  1. $string = '<a href="http://www.monlien.fr/mapage1.html" class="selectVdo" target="_PARENT" >Nom lien du 16/1/09</a><br/><a href="http://www.monlien.fr/mapage1.html" class="selectVdo" target="_PARENT" >Nom lien du 17/03/09</a>';
  2. $doc = new DOMDocument;
  3. $doc->loadHTML($string);
  4. $link = $doc->getElementsByTagName('a');
  5. echo $link ->item(0)->getAttribute('href');


Message édité par stealth35 le 19-03-2009 à 10:38:29
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed