2010-08-15 8 views
0

Possible en double:
Finding and Printing all Links within a DIVphp trouver des liens externes et obtenir des données

Je suis en train de faire un mini crawler..when i spécifier un site .. il ne file_get_contents () .. puis obtenir les données que je veux .. que j'ai déjà fait .. maintenant je veux ajouter du code qui permet de trouver .. tous les liens externes sur le site, il est sur .. et obtenir les données ..

fondamentalement .. au lieu de moi en spécifiant un site..it suit juste les liens externes et obtenir les données si elles sont disponibles ...

voici ce que j'ai ..

merci d'avance ..

 <?php 

     $link = strip_tags($_GET['s']); 

     $path_info = parse_url($link); 
     $name= $path_info['host']; 
     $name= str_replace('www.','', $name); 


     $original_file = @file_get_contents($link); 

      if($original_file === false) { 
    die("$link does not exist"); 
    } 
     $data= preg_match("stuff", $original_file, $m); 
echo $data; 

Répondre

2

utilisation HTML DOM PARSER

// Create DOM from URL 
$html = file_get_html('http://www.example.com/'); 

// Find all links 
$allURLs = array(); 
foreach($html->find('a') as $element) 
     $allURLs[] = $element->href; 

Maintenant $ allURLs contient toutes les URL de la page Web et vous pouvez file_get_contents() pour chaque lien utilisant la boucle.

0

si je devais ui aurait cassé le code en deux parties


Première partie: ---

will fetch the content and display the link 

Deuxième partie: ---

 Second part will be called when I specify which link i want to display 
     i will specify this external link back to same file recursively. 

si fondamentalement votre code ressemblera à ceci


 first part --> 1)get the data 
        2)parse the link 
        if(link is chosen) 
        { 
         run current file again with selected link passed 
        }