在SEO的优化中,通过判定会见者是否为搜索引擎的蜘蛛,可以做许多的工作。虽然SEO这方面今后有时间了再写写,这篇博文主要是说一说在PHP中,如何去判定网站的会见者是否为搜索引擎的蜘蛛。
每个搜索引擎的蜘蛛在会见网站时,其 UA(User-Agent)城市携带本身的标识,我们可以通过获取访客欣赏器的 UA,并查找个中是否含有蜘蛛标示的形式来判定访客是否为搜索引擎的蜘蛛。
PHP 判定是否为搜索引擎的蜘蛛示例1:
<?php $useragent = addslashes(strtolower($_SERVER['HTTP_USER_AGENT'])); if (strpos($useragent, 'googlebot')!== false){ $bot = 'Google Spider'; }elseif (strpos($useragent,'baiduspider') !== false){ $bot = 'Baidu Spider'; }elseif (strpos($useragent,'sogou spider') !== false){ $bot = 'Sogou Spider'; }elseif (strpos($useragent,'sosospider') !== false){ $bot = 'SOSO Spider'; }elseif (strpos($useragent,'360spider') !== false){ $bot = '360 Spider'; }elseif (strpos($useragent,'yahoo') !== false){ $bot = 'Yahoo Spider'; }elseif (strpos($useragent,'msn') !== false){ $bot = 'MSN Spider'; }elseif (strpos($useragent,'sohu') !== false){ $bot = 'Sohu Spider'; }elseif (strpos($useragent,'yodaoBot') !== false){ $bot = 'Yodao Spider'; }else{ $bot = 'NO Spider'; } echo $bot; ?>留意:
1、以上代码只对几个常见的搜索引擎的蜘蛛作了判定,假如需要判定的更全面,那就本身搜索一些蜘蛛的标示了
2、strtolower() 将UA中的大写字母转成小写,可以提示代码的查找准确度
3、addslashes() 函数可以在预界说字符之前添加反斜杠的字符串,以提高匹配的准确度
示例2:
除了上面的直接判定外,我们可以把这个判定逻辑封装成为一个函数,在判定是否搜索引擎的蜘蛛时,直接挪用函数即可。
function is_spider(){ $userAgent = strtolower($_SERVER['HTTP_USER_AGENT']); $spiders = array( 'Googlebot', 'Baiduspider', 'Yahoo! Slurp', 'YodaoBot', 'msnbot' //这里可以插手更多的蜘蛛标示 ); foreach ($spiders as $spider) { $spider = strtolower($spider); if (strpos($userAgent, $spider) !== false) { return true; } } return false; }函数挪用要领:
if(is_spider()){ echo '我是蜘蛛'; }else{ echo '我不是蜘蛛'; } 蜘蛛标识:以下是收集而来较量常见的蜘蛛标识,假如有错误可能没有收集到的,可以在下面的评论区留言哦。
百度蜘蛛:Baiduspider
百度图片:Baiduspider-image
百度WAP:Baiduspider-mobile
百度视频:Baiduspider-video
百度新闻:Baiduspider-news
谷歌蜘蛛:Googlebot
360蜘蛛:360Spider
SOSO蜘蛛:Sosospider
雅虎蜘蛛:Yahoo
有道蜘蛛:YoudaoBot,YodaoBot
搜狗蜘蛛:Sogou News Spider,Sogou web spider、Sogou inst spider、Sogou blog、Sogou Orion spider
必应蜘蛛:bingbot
MSN蜘蛛:msnbot,msnbot-media
一搜蜘蛛:YisouSpider
Alexa蜘蛛:ia_archiver
宜搜蜘蛛:EasouSpider
立刻蜘蛛:JikeSpider
一淘网蜘蛛:EtaoSpider