php – 使用HTTP_ACCEPT_LANGUAGE进行Google抓取错误
发布时间:2020-12-13 22:05:41 所属栏目:PHP教程 来源:网络整理
导读:在我的Codeigniter应用程序中,我使用$_SERVER [‘HTTP_ACCEPT_LANGUAGE’]来确定用户浏览器语言,以便根据它设置应用程序语言,如下所示: public function __construct(){parent::__construct();/* set session language if not set. "hu" if browser languag
在我的Codeigniter应用程序中,我使用$_SERVER [‘HTTP_ACCEPT_LANGUAGE’]来确定用户浏览器语言,以便根据它设置应用程序语言,如下所示:
public function __construct() { parent::__construct(); /* set session language if not set. "hu" if browser language "hu",else "en" */ if(!($this->session->userdata("lang"))) { $browserlang = substr($_SERVER["HTTP_ACCEPT_LANGUAGE"],2); if ($browserlang == "hu") { $this->config->set_item("language","hu"); $this->session->set_userdata("lang","hu"); $this->lang->load("bh_hu","hungarian"); } else { $this->config->set_item("language","en"); $this->session->set_userdata("lang","en"); $this->lang->load("bh_en","english"); } } else { switch ($this->session->userdata("lang")) { case "hu": $this->lang->load("bh_hu","hungarian"); break; case "en": $this->lang->load("bh_en","english"); break; } } .... } 一切正常,但由于Google抓取工具不发送任何HTTP_ACCEPT_LANGUAGE,因此在抓取所有网页时会返回php错误未定义索引:HTTP_ACCEPT_LANGUAGE. 这真的很讨厌,因为php错误甚至填满了我的整个谷歌搜索片段. 有没有办法让google bot忽略HTTP_ACCEPT_LANGUAGE操作? 提前致谢! 解决方法$browser_lang = !empty($_SERVER['HTTP_ACCEPT_LANGUAGE']) ? strtok(strip_tags($_SERVER['HTTP_ACCEPT_LANGUAGE']),',') : ''; $browser_lang = substr($browser_lang,2); // Now check if you support this language and set it if(array_key_exists($browser_lang,$this->languages /* define this array to compare */)) return $browser_lang; else{ // return default lang } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |