User-Agent 類
用戶代理類提供的功能是,幫助識(shí)別是瀏覽器,還是移動(dòng)設(shè)備或是機(jī)器人訪問(wèn)你的站點(diǎn)。另外,你可以得到referrer信息(譯注:referrer信息就是訪客來(lái)源信息,可以參照一般的統(tǒng)計(jì)系統(tǒng)來(lái)理解),以及語(yǔ)言,和支持的字符集信息。
初始化類
和大多數(shù)其他CI類一樣,User Agent類也是在你的控制器里使用$this->load->library 方法完成初始化工作
$this->load->library('user_agent');
一旦加載, 對(duì)象就可以使用了: $this->agent
用戶代理定義
用戶代理名稱的定義,位于一個(gè)配置文件: application/config/user_agents.php. 如果你需要你可以添加項(xiàng)目到user agent數(shù)組
示例
當(dāng)User Agent 類初始化后,它會(huì)判斷瀏覽你的網(wǎng)站是Web瀏覽器,還是移動(dòng)設(shè)備,還是機(jī)器人。它還收集相關(guān)的操作系統(tǒng)信息
$this->load->library('user_agent');
if ($this->agent->is_browser())
{
????$agent = $this->agent->browser().' '.$this->agent->version();
}
elseif ($this->agent->is_robot())
{
????$agent = $this->agent->robot();
}
elseif ($this->agent->is_mobile())
{
????$agent = $this->agent->mobile();
}
else
{
????$agent = 'Unidentified User Agent';
}
echo $agent;
echo $this->agent->platform(); // Platform info (Windows, Linux, Mac, etc.)
函數(shù)參考
$this->agent->is_browser()
根據(jù)用戶代理是否是一個(gè)已知的web瀏覽器,返回 TRUE/FALSE (boolean)
if ($this->agent->is_browser('Safari'))
{
????echo 'You are using Safari.';
}
else if ($this->agent->is_browser())
{
????echo 'You are using a browser.';
}
Note:? The string "Safari" in this example is an array key in the list of browser definitions. You can find this list in application/config/user_agents.php if you want to add new browsers or change the stings.
$this->agent->is_mobile()
根據(jù)用戶代理是否是一個(gè)已知的移動(dòng)設(shè)備,返回 TRUE/FALSE (boolean)
if ($this->agent->is_mobile('iphone'))
{
????$this->load->view('iphone/home');
}
else if ($this->agent->is_mobile())
{
????$this->load->view('mobile/home');
}
else
{
????$this->load->view('web/home');
}
$this->agent->is_robot()
根據(jù)用戶代理是否是機(jī)器人,返回 TRUE/FALSE (boolean)
注意:? 用戶代理類僅包含了最常見的機(jī)器人定義。它不是一個(gè)完整的機(jī)器人清單。如果你覺得有些經(jīng)常訪問(wèn)你的網(wǎng)站的機(jī)器人不在名單中,你可以將它們添加到你的application/config/user_agents.php 文件中.
$this->agent->is_referral()
根據(jù)用戶代理是否是從另一網(wǎng)站鏈接過(guò)來(lái),返回 TRUE/FALSE (boolean)
$this->agent->browser()
返回一個(gè)字符串,就是瀏覽你的網(wǎng)站的瀏覽器名稱
$this->agent->version()
返回瀏覽器的版本號(hào)
$this->agent->mobile()
返回訪問(wèn)你的站點(diǎn)的移動(dòng)設(shè)備名稱
$this->agent->robot()
返回訪問(wèn)你的站點(diǎn)的機(jī)器人名稱
$this->agent->platform()
返回訪問(wèn)你的站點(diǎn)的操作系統(tǒng)(Linux, Windows, OS X, 等等).
$this->agent->referrer()
如果用戶代理是從其他站點(diǎn)鏈接過(guò)來(lái)的,你可以做如下判斷
if ($this->agent->is_referral())
{
????echo $this->agent->referrer();
}
$this->agent->agent_string()
返回一個(gè)字符串包含所有用戶代理信息。通常它會(huì)是這樣的:
Mozilla/5.0 (Macintosh; U; Intel Mac OS X; en-US; rv:1.8.0.4) Gecko/20060613 Camino/1.0.2
$this->agent->accept_lang()
讓你確認(rèn),用戶代理是否包含一種特定的語(yǔ)言。例:
if ($this->agent->accept_lang('en'))
{
????echo 'You accept English!';
}
注意: 這一功能通常不是很可靠,因?yàn)橛行g覽器不提供語(yǔ)言信息,即使提供了,也不一定準(zhǔn)確
$this->agent->accept_charset()
讓你確認(rèn),用戶代理是否包含一種特定的字符集。例:
if ($this->agent->accept_charset('utf-8'))
{
????echo 'You browser supports UTF-8!';
}
注意: 這一功能通常不是很可靠,因?yàn)橛行g覽器不提供字符集信息,或是提供的信息不一定正確
?