PHP判斷搜索引擎機器人Robot_PHP教程

      編輯Tag賺U幣
      教程Tag:暫無Tag,歡迎添加,賺取U幣!

      推薦:PHP的print函數
      PHP的print函數,姑且說是函數吧

      有朋友問到如何使用PHP去判斷是否是搜索引擎,其實PHP有個很簡單的方式去實現,通過_SERVER這個預定義變量中的_SERVER['HTTP_USER_AGENT']可以取得訪問者的屬性,具體可以看下Diiscuz!是如何判斷搜索引擎的,函數代碼如下:
      function getrobot() {
      if(!defined('IS_ROBOT')) {
      kw_spiders = 'Bot|Crawl|Spider|slurp|sohu-search|lycos|robozilla';
      kw_browsers = 'MSIE|Netscape|Opera|Konqueror|Mozilla';
      if(preg_match("/(kw_browsers)/", _SERVER['HTTP_USER_AGENT'])) {
      define('IS_ROBOT', FALSE);
      } elseif(preg_match("/(kw_spiders)/", _SERVER['HTTP_USER_AGENT'])) {
      define('IS_ROBOT', TRUE);
      } else {
      define('IS_ROBOT', FALSE);
      }
      }
      return IS_ROBOT;
      }

      根據上面還可以精簡如下:
      if(preg_match("/(Bot|Crawl|Spider|slurp|sohu-search|lycos|robozilla)/i", _SERVER['HTTP_USER_AGENT'])) {
      echo 'robot';
      }

      如果你需要返回詳細的搜索引擎名稱,而不是是否是搜索引擎機器人的話,請看下面的代碼:
      function get_naps_bot() {
      useragent = strtolower(_SERVER['HTTP_USER_AGENT']);

      if (strpos(useragent, 'googlebot') !== false){
      return 'Googlebot';
      }

      if (strpos(useragent, 'msnbot') !== false){
      return 'MSNbot';
      }

      if (strpos(useragent, 'slurp') !== false){
      return 'Yahoobot';
      }

      if (strpos(useragent, 'baiduspider') !== false){
      return 'Baiduspider';
      }

      if (strpos(useragent, 'sohu-search') !== false){
      return 'Sohubot';
      }

      if (strpos(useragent, 'lycos') !== false){
      return 'Lycos';
      }

      if (strpos(useragent, 'robozilla') !== false){
      return 'Robozilla';
      }
      return false;
      }

      這段代碼返回了詳細的搜索引擎機器人的名稱,呵呵大家看那種好用就用哪種吧!

       

      分享:PHP生成隨機字符串
      PHP生成隨機字符串的函數,下面是我在網上找到的2個關于PHP隨機字符串的函數,希望大家喜歡。 ?php function genRandomString(len) { chars = array( a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t,

      來源:模板無憂//所屬分類:PHP教程/更新時間:2010-04-11
      相關PHP教程