Bonjour à tous,

J'aimerais récupérer tous les liens et leur titres de n'importe quelle page.

Moi j’ai programmé ce code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
 < ?php
$url = "http://www.example.com/";
 
$fp = fopen ($url,"r"); //lecture da la page
 
while (!feof($fp)) //parcours des lignes
{ 
    $page .= fgets($fp,4096); //lecture contenu ligne
}
 
preg_match_all('#<a href="(.*?)"(?:.*)>(.*?)</a>#', $page, $match, PREG_SET_ORDER);
 
?>
    <table border="1">
        <tr>
            <td><h3>Titre du lien</h3></td>
            <td><h3>Lien</h3></td>            
        </tr>
 
<?php
        $i=0;
        foreach($match as $var)
        {
?>
            <tr>
                <td><?php echo $var[2]; ?></td>
                <td><?php echo $var[1]; ?></td>                
            </tr>
<?php
            $i++;
 
        }
?>        
    </table>
<?php
echo "<h3>Il ya ".$i." résultats</h3><br>";
?>
Mais cela n'affiche que les liens qui sont entre guillemet et leur titre. Et sur devélopper.com j’ai trouvé une expression régulière du genre #<a\s.*?(?(?<!\s)\s)href=(["'])?((?(1).*?|\S*))(?(1)\1).*?\>(.*?)</a>#is qui a été fait par loufoque. Mais dans mon programme ça fonctionne pas, il donne une erreur à cause de '.

Pouvez-vous m’aider svp pour que ça affiche tous les liens de la page choisie avec leur titre ?

Merci d'avance.