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:
- // Holen Sie sich den HTML-Code des Links
- $html = file_get_contents('http://www.111cn.net');
- $dom = new DOMDocument();
- @$dom->loadHTML($html);
- $xpath = new DOMXPath($dom);
- $hrefs = $xpath->evaluate('/html/body//a');
- for ($i = 0; $i < $hrefs->length; $i ) {
- $href = $hrefs->item($i);
- $url = $href->getAttribute('href');
- echo $url.'
';
- }
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:
- //Holen Sie sich den HTML-Code des Links
- $html = file_get_contents('http://www.111cn.net');
- $dom = new DOMDocument();
- @$dom->loadHTML($html);
- $xpath = new DOMXPath($dom);
- $hrefs = $xpath->evaluate('/html/body//a');
- for ($i = 0; $i < $hrefs->length; $i ) {
- $href = $hrefs->item($i);
- $url = $href->getAttribute('href');
-
- // Behalten Sie bei, dass Links mit http beginnen
- if(substr($url, 0, 4) == 'http')
- echo $url.'
';
- }
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:
- if(empty($url))$url = "http://www.baidu.com/";//URL-Adresse, an der der Link gesammelt werden muss
- $site=substr($url,0,strpos($url,"/",8));
- $base=substr($url,0,strrpos($url,"/") 1);//Verzeichnis, in dem sich die Datei befindet
- $fp = fopen($url, "r" );//Öffnen Sie die URL-Adressseite
- while(!feof($fp))$contents.=fread($fp,1024);
- $pattern="|href=['"]?([^ '"] )['" ]|U";
- preg_match_all($pattern,$contents, $regArr, PREG_SET_ORDER);//Regulären Ausdruck verwenden, um alles abzugleichen href=
- for($i=0;$i
- if(!eregi("://",$regArr[$i][1]))//Bestimmen Sie, ob es sich um einen relativen Pfad handelt, d. h. ob es noch ://
gibt
- if(substr($regArr[$i][1],0,1)=="/")//Ist es das Stammverzeichnis der Site
- echo "link".($i 1).":".$site.$regArr[$i][1]."
";//Stammverzeichnis
- sonst
- echo "link".($i 1).":".$base.$regArr[$i][1]."
";//Aktuelles Verzeichnis
- sonst
- echo "link".($i 1).":".$regArr[$i][1]."
";//relativer Pfad
- }
- fclose($fp);
- ?>
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.