Bonsoir,

Je vous contacte car je suis en légère galère avec les regex.
Je souhaite récupérer dans un document HTML tous les liens qui ont une certaine classe CSS.

Le soucis est qu'il y a l'utilisation de la librairie OVL (overlib) qui permet de créer des popup au survol de la souris (onmouseover). Jusque là, rien de bien terrible, sauf quand bien entendu ces pop-ups contiennent eux mêmes des liens... Et donc, j'n'arrive absolument pas à faire une regexp qui prend le lien

Voici par exemple un lien que j'aimerais récupérer. Il a la classe cl. Je ne suis pas responsable du code HTML que je cherche à récupérer. C'est le code d'un jeu et je cherche à faire un parseur pour créer un outil stratégique (j'ai l'aval des administrateurs, donc aucun problème de ce côté là.)


Code html : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
 
<a class=cl style="left:230;top:300" href=javascript:void(0); onclick="return overlib('<b>Action :</b><LI><a href=soigner.php?xc=77&yc=101&t=p&idc=14641 target=f2>Soigner (9 PA)</a><LI><a href=choix_ench.php?t=1&d=2&xc=77&yc=101&idc=14641 target=f2>Enchanter</a><li><a href=msg_frame.php?x=2&dest=Kezar target=f2>Message</a><li><a href=rp_show.php?idc=14641 target=f2>Consulter son profil</a>',STICKY, CAPTION,'77 / 101 &nbsp;&nbsp;&nbsp;&nbsp; distance : 2',FGCOLOR,'#CCCCFF');" onmouseover="return overlib('&nbsp;&nbsp;&nbsp;&nbsp;<b>77 / 101 </b>&nbsp;&nbsp;&nbsp;&nbsp; distance : 2<br><hr><b>Kezar</b>, Nécromant Elfe <br><u>Niveau :</u> <b>27</b><br><u>Escouade :</u> Oskorei<br><u>Pv :</u> 517 / 517<hr><u>Enchantement(s) actif(s) :</u> <br><img src=img/s/feline.gif>&nbsp;03/07 à 20:12<br><img src=img/s/resist.gif>&nbsp;03/07 à 18:40<br><img src=img/s/a12.gif>&nbsp;02/07 à 12:31<hr><b>Message allié :</b> yobb 1po Kael 4p Coks1 Ryujinn2 nausica 1 vreanor 1  benio 2 Silgalind2 Shandor1cromagnon 3 nempite2',FGCOLOR, '#CCFFFF');" onmouseout="return nd();"><img class=bg src="img/t/0.gif"/><img class=pj src="img/p/0/2/0_29.gif" width=40/><img class=ov src="img/n/n0.png"/></a>

J'aimerais donc réussir dans un premier temps à capturer tous les liens de cette forme.

J'ai essayé quelque chose comme ça...

Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
$Code = $_POST['codehtml'];
unset($_POST);
 
//tentative de recup de tous les liens de la page
$motif='#<a class=cl(.*?)>(.*?)</a>#is';
 
preg_match_all($motif,$Code,$out,PREG_PATTERN_ORDER);
 
foreach ($out[1] as $link)
{
  echo "$link<br />";
}

Bien entendu, ça ne marche pas... et rien que sur ce lien de test... voilà là réponse qu'l me retourne :

style="left:230;top:300" href=javascript:void(0); onclick="return overlib('

Je ne vois absolument pas comment faire...
Avez-vous une idée ?