這篇文章主要介紹了php實(shí)現(xiàn)判斷訪問來路是否為搜索引擎機(jī)器人的方法,主要通過過濾$_SERVER['HTTP_USER_AGENT'] 參數(shù)來實(shí)現(xiàn)這一功能,非常簡單實(shí)用,需要的朋友可以參考下
本文實(shí)例講述了php實(shí)現(xiàn)判斷訪問來路是否為搜索引擎機(jī)器人的方法。分享給大家供大家參考。具體分析如下:
很多時(shí)候我們需要對網(wǎng)站訪客來路進(jìn)行識別,針對真實(shí)用戶與搜索引擎作不同動(dòng)作實(shí)現(xiàn),那么首先就需要判斷是否為搜索引擎。
php判斷方法非常簡單,通過過濾$_SERVER['HTTP_USER_AGENT'] 參數(shù)即可進(jìn)行識別,以下是摘錄某開源程序的相關(guān)源碼:
- private function getRobot()
- {
- if (emptyempty($_SERVER['HTTP_USER_AGENT']))
- {
- return false;
- }
- $searchEngineBot = array(
- 'googlebot'=>'google',
- 'mediapartners-google'=>'google',
- 'baiduspider'=>'baidu',
- 'msnbot'=>'msn',
- 'yodaobot'=>'yodao',
- 'youdaobot'=>'yodao',
- 'yahoo! slurp'=>'yahoo',
- 'yahoo! slurp china'=>'yahoo',
- 'iaskspider'=>'iask',
- 'sogou web spider'=>'sogou',
- 'sogou push spider'=>'sogou',
- 'sosospider'=>'soso',
- 'spider'=>'other',
- 'crawler'=>'other',
- );
- $spider = strtolower($_SERVER['HTTP_USER_AGENT']);
- foreach ($searchEngineBot as $key => $value)
- {
- if (strpos($spider, $key)!== false)
- {
- return $value;
- }
- }
- return false;
- }
- public function isRobot()
- {
- if($this->getRobot()!==false)
- {
- return true;
- }
- return false;
- }
希望本文所述對大家的php程序設(shè)計(jì)有所幫助。
新聞熱點(diǎn)
疑難解答