一個網站最重要的組成部分可能就是與你鏈接的站點的個數。這個教程將向你顯示一個使用AltaVista
搜索引擎來實現的簡單方法。
首先,我們需要准備在腳本中使用的URL 。這個可以使用:
http://www.altavista.com/cgi-bin/query?kl=XX&pg=q&text=yes&q=link%3A<待查的URL>&search=Search。
應該知道這是AltaVista的一個文本版本。這樣可以節省我們大量的需要解析HTML的代碼。接著,我們
需要確切的URL。我們應該使用rawurlencode()來處理URL保證Altavista能夠正確地處理它。
$url = http://www.php.net;
$url_encoded = rawurlencode($url);
$url_to_check = "http://www.altavista.com/cgi-bin/query?
kl=XX&pg=q&text=yes&q=link%3A$url_encoded&search=Search";
?>
現在我們有了我們需要的全部的URL 。到了我們抓回URL 的時候了。這步工作是通過使用file()函數。
$url = http://www.php.net;
$url_encoded = rawurlencode($url);
$url_to_check = "http://www.altavista.com/cgi-bin/query?
kl=XX&pg=q&text=yes&q=link%3A$url_encoded&search=Search";
$alta_search = file($url_to_check);
?>
現在我們所抓回的文件已經存放在數組$alta_search中。我們現在要在數組中查找我們想要的文本。我們想要的文本就是"About (.*) pages found. "。(.*)表示在兩個單詞之間的任何東西。而且,如果沒有人鏈接我們的URL,AltaVista將顯示"AltaVista found no document matching your query."。因為我們想知道多少個人正在與我們的URL進行著鏈接,那段文本將被看作0個人鏈接。
$url = http://www.php.net;
$url_encoded = rawurlencode($url);
$url_to_check =
"http://www.altavista.com/cgi-bin/query?kl=XX&pg=q&text=yes&q=link%3A$url_encoded&search=Search";
$alta_search = file($url_to_check);
for ($i = 0; $i < count($alta_search); $i++) {
if(eregi( "About (.*) pages found.", $alta_search[$i])){
$how_many = eregi_replace( "
About (.*) pages found.", "1", $alta_search
[$i]);
}elseif(eregi( "AltaVista found no document matching your query.", $alta_search
[$i])){
$how_many = 0;
}
}
?>
為了使用上面的處理結果,你可以加入這句代碼來打印我們的查找結果:
echo "$how_many people are linking to $url";