[Réglé]Expression régulière

Statut
N'est pas ouverte pour d'autres réponses.

null

ose();
Salut à tous,

Tout le monde sait que je suis nul en ce qui concerne les expressions régulière et c'est là que j'ai besoin de votre aide !

Je me connecte et j'ai le contenu HTML dans une variable. Je voudrais à partir de là, stocké tout les pages qui sont dans des liens.

Donc par exemple :

<a href="moi.html">ici une page de moi</a> et là je vais aller me promener jusque chez ma copine après ce <a href="post.html" onMouseOver="cool();":pfrt:ost.html</a>

Donc vous pouvez répondre via <a href="ici.html">ici</a>
Le script va me retourner (dans un tableau) :

- moi.html
- post.html
- ici.html

Si quelqu'un sait le faire, ça serait génial !
 

noLain

www.wearewise.be
Voila un début, le script pose des problemes avec certains code, notamment quand il y a plusieurs liens sur la même ligne :roll: .
Mais ca pourra toujours t'aider peut-etre:

Code:
<?
if(isset($_POST['submit'])){
 if( !($handle = @fopen($_POST['page'],"r")) ){
  die("L'url specifiée n'existe pas !!");
  $ok=0;
 }else{
  $ok=1;
 }

 $i=0;
 while (!feof($handle)) {
   $content[$i++] = fgets($handle);
 }
 fclose($handle);
}
?>
<html>
<head>
<style type=text/css>
body,td{
 font-family: arial;
 font-size: 12px;
}
input{
 border: 1px solid gray;
 font-family: arial;
 font-size: 12px;
}
</style>
</head>
<body>
<br>
<form method=post action=?>
<b>Url: </b>  <input type=text name=page value='http://'>
  <input type=submit name='submit' value='analyser'>
</form>
<?
 if($ok==1){
?>

<b>Page:</b><br>
<table border=0 cellpadding=0 cellspacing=0>
<tr><td width=60 align=center><b>Ligne</b></td>
<td width=400><b>Code</b></td></tr>
<?
for($i=0; $i<sizeof($content); $i++){
 echo "<tr><td align=center bgcolor=lightgreen>".($i+1)."</td>";
echo "<td bgcolor=beige> ".
htmlspecialchars($content[$i])."</td></tr>";
}
?>
 </table>
<br><br>
<b>Liens:</b><br>
<table border=0 cellpadding=0 cellspacing=0>
<tr><td width=60 align=center><b>Ligne</b></td>
<td width=400><b>Code</b></td></tr>
<?
 $j=0;
 for($i=0; $i<sizeof($content); $i++){
  if(preg_match('!<a(.*)href=(\"|\')(.+)(\"|\')(.*?)>!isUm', $content[$i])){
   $liens[$j++] = preg_replace('!(.*?)<a(.*?)href=(\"|\')(.+)(\"|\')(.*?)>(.*?)</a>(.*?)!isUm',"\$4",$content[$i]);
  }
 }

for($i=0; $i<sizeof($liens); $i++){
if($liens[$i]!="")
 echo "<tr><td align=center bgcolor=lightgreen>".($i+1)."</td><td bgcolor=beige> ".htmlspecialchars($liens[$i])."</td></tr>";
}
?>
</table>
<? } ?>
</body>
</html>
 
1er
OP
null

null

ose();
Merci, ça ma avancé mais pas à fond :oops: Si quelqu'un a quelque chose d'autre :roll:

#edit :

Plus besoin merci
 
Statut
N'est pas ouverte pour d'autres réponses.
Haut