今天有个主题的用户发来一段关于判断网页是否被搜索引擎收录的PHP代码,问是否可以集成到主题中去,集成不集成到主题暂时不说,这篇文章说一说这段代码的作用。
PHP判断网页是否被百度收录
函数代码:
<?php function okBAIdu($url){ $url='http://www.baidu.com/s?wd='.$url; $curl=curl_init(); curl_setopt($curl,CURLOPT_URL,$url); curl_setopt($curl,CURLOPT_RETURNTRANSFER,1); $rs=curl_exec($curl); curl_close($curl); if(!strpos($rs,'提交网址')){ echo "已收录"; }else{ echo "未收录"; } } ?>
调用函数:
$url="https://www.freexyz.cn"; echo okBaidu($url);
代码实现原理:
判断网页是否被百度收录,只需要在百度搜索引擎中搜索一下网页的网址即可,如果未被收录到,就会出现“提交网址”的链接。我们可以利用这一点来判断网页是否被百度收录。
1、组合百度搜索的网址,
百度搜索的网址,wd的参数可以是搜索的关键字
http://www.baidu.com/s?wd=
组合要被搜索的网页地址,如下
http://www.baidu.com/s?wd=https://www.freexyz.cn
2、利用cURL抓取搜索页面的文档流
3、判断文档流中,是否含有“提交网址”的关键字,如果有则未被收录,如果没有则被收录
4、关于cURL使用方法,可以百度,也可以搜索本博客的相关文章
PHP判断网页是否被搜索引擎收录
根据以上的代码,做了一些改动,可以判断百度,360,搜狗,以及必应是否收录了要查询的网址
函数代码
<?php function ifurl($s,$url){ $array = array( 'Baidu' => array('http://www.baidu.com/s?wd=','提交网址'), '360' => array('https://www.so.com/s?q=','提交网址'), 'Bing' => array('https://cn.bing.com/search?q=',$url), 'Sogou' => array('https://www.sogou.com/web?query=','点击此处提交'), ); $urls = $array[$s][0].$url; $str = $array[$s][1]; $curl=curl_init(); curl_setopt($curl,CURLOPT_URL,$urls); curl_setopt($curl,CURLOPT_RETURNTRANSFER,1); $rs=curl_exec($curl); curl_close($curl); if(!strpos($rs,$str)){ return '已收录'; }else{ return '未收录'; } } ?>
调用代码:
echo '百度:'.ifurl('Baidu','https://www.freexyz.cn'); echo '360:'.ifurl('360','https://www.freexyz.cn'); echo '必应:'.ifurl('Bing','https://www.freexyz.cn'); echo '搜狗:'.ifurl('Sogou','https://www.freexyz.cn');
PS:个人不建议在主题模版中添加这种判断网页是否被搜索引擎收录的动态代码,具体原因我想会PHP的都应该明白。如果非要给主题模版加入判断网页是否被搜索引擎收录功能话,可以使用JS代码实现,把判断逻辑放到用户的浏览器中去执行,也可以使用API的形式实现。