Heim > Backend-Entwicklung > PHP-Tutorial > PHP ruft alle Links auf der angegebenen URL-Seite ab

PHP ruft alle Links auf der angegebenen URL-Seite ab

WBOY
Freigeben: 2016-08-08 09:25:58
Original
954 Leute haben es durchsucht

Formular:http://www.uphtm.com/php/253.html

Dieses Ding wird tatsächlich häufig von uns Entwicklern verwendet, als wir ein Projekt erstellten, um benutzerfreundliche Links von anderen Websites zu erfassen. Heute habe ich gesehen, wie ein Freund eine PHP-Funktion kompiliert hat, um alle Linkfunktionen auf der angegebenen URL-Seite abzurufen . Wir haben es geklärt. Steh auf und schau es dir an.

Der folgende Code kann alle Links auf der angegebenen URL-Seite abrufen, d. h. das href-Attribut aller a-Tags:

  1. // Holen Sie sich den HTML-Code des Links
  2. $html = file_get_contents('http://www.111cn.net');
  3. $dom = new DOMDocument();
  4. @$dom->loadHTML($html);
  5. $xpath = new DOMXPath($dom);
  6. $hrefs = $xpath->evaluate('/html/body//a');
  7. for ($i = 0; $i < $hrefs->length; $i ) {
  8. $href = $hrefs->item($i);
  9. $url = $href->getAttribute('href');
  10. echo $url.'
    ';
  11. }

Dieser Code erhält das href-Attribut aller a-Tags, aber der href-Attributwert ist nicht unbedingt ein Link. Wir können ihn filtern und nur die Linkadresse behalten, die mit http beginnt:

  1. //Holen Sie sich den HTML-Code des Links
  2. $html = file_get_contents('http://www.111cn.net');
  3. $dom = new DOMDocument();
  4. @$dom->loadHTML($html);
  5. $xpath = new DOMXPath($dom);
  6. $hrefs = $xpath->evaluate('/html/body//a');
  7. for ($i = 0; $i < $hrefs->length; $i ) {
  8. $href = $hrefs->item($i);
  9. $url = $href->getAttribute('href');
  10. // Behalten Sie bei, dass Links mit http beginnen
  11. if(substr($url, 0, 4) == 'http')
  12. echo $url.'
    ';
  13. }

Die Funktion fopen() liest alle Links auf der angegebenen Webseite und zählt die Anzahl. Dieser Code eignet sich für die Verwendung an einigen Stellen, an denen der Inhalt der Webseite erfasst werden muss. In diesem Beispiel wird Baidu gelesen Die Homepage wird als Beispiel verwendet, um die Links auf der Baidu-Homepage herauszufinden. Alle Linkadressen und Codes wurden getestet und sind vollständig verwendbar:

  1. if(empty($url))$url = "http://www.baidu.com/";//URL-Adresse, an der der Link gesammelt werden muss
  2. $site=substr($url,0,strpos($url,"/",8));
  3. $base=substr($url,0,strrpos($url,"/") 1);//Verzeichnis, in dem sich die Datei befindet
  4. $fp = fopen($url, "r" );//Öffnen Sie die URL-Adressseite
  5. while(!feof($fp))$contents.=fread($fp,1024);
  6. $pattern="|href=['"]?([^ '"] )['" ]|U";
  7. preg_match_all($pattern,$contents, $regArr, PREG_SET_ORDER);//Regulären Ausdruck verwenden, um alles abzugleichen href=
  8. for($i=0;$i
  9. if(!eregi("://",$regArr[$i][1]))//Bestimmen Sie, ob es sich um einen relativen Pfad handelt, d. h. ob es noch ://
  10. gibt
  11. if(substr($regArr[$i][1],0,1)=="/")//Ist es das Stammverzeichnis der Site
  12. echo "link".($i 1).":".$site.$regArr[$i][1]."
    ";//Stammverzeichnis
  13. sonst
  14. echo "link".($i 1).":".$base.$regArr[$i][1]."
    ";//Aktuelles Verzeichnis
  15. sonst
  16. echo "link".($i 1).":".$regArr[$i][1]."
    ";//relativer Pfad
  17. }
  18. fclose($fp);
  19. ?>

Formular:http://www.uphtm.com/php/253.html

Das Obige führt PHP ein, um alle Links auf der angegebenen URL-Seite zu erhalten, einschließlich des Inhalts. Ich hoffe, dass es für Freunde hilfreich ist, die sich für PHP-Tutorials interessieren.

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage