网站当前在线人数的实现
一个网站最重要的组成部分可能就是与你链接的站点的个数。这个教程将向你显示一个使用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";
补充:Web开发 , php ,