CodeIgniter4 用戶代理類

2020-08-17 17:11 更新

用戶代理類提供的功能可幫助識(shí)別有關(guān)瀏覽器,移動(dòng)設(shè)備或機(jī)器人訪問(wèn)您的站點(diǎn)的信息。

使用用戶代理類

初始化課程

用戶代理類始終可以直接從當(dāng)前IncomingRequest實(shí)例獲得。默認(rèn)情況下,您的控制器中將有一個(gè)請(qǐng)求實(shí)例,您可以從以下實(shí)例中檢索User Agent類:

  1. $agent = $this->request->getUserAgent();

用戶代理定義

用戶代理名稱定義位于以下配置文件中: app / Config / UserAgents.php。如果需要,您可以將項(xiàng)目添加到各種用戶代理陣列中。

例子

初始化用戶代理類后,它將嘗試確定瀏覽您站點(diǎn)的用戶代理是Web瀏覽器,移動(dòng)設(shè)備還是機(jī)器人。如果可用,它還將收集平臺(tái)信息:

  1. $agent = $this->request->getUserAgent();
  2. if ($agent->isBrowser())
  3. {
  4. $currentAgent = $agent->getBrowser().' '.$agent->getVersion();
  5. }
  6. elseif ($agent->isRobot())
  7. {
  8. $currentAgent = $this->agent->robot();
  9. }
  10. elseif ($agent->isMobile())
  11. {
  12. $currentAgent = $agent->getMobile();
  13. }
  14. else
  15. {
  16. $currentAgent = 'Unidentified User Agent';
  17. }
  18. echo $currentAgent;
  19. echo $agent->getPlatform(); // Platform info (Windows, Linux, Mac, etc.)

類參考

  1. CodeIgniter\HTTP\UserAgent

isBrowser([$key = NULL])

參數(shù): $key (string) – Optional browser name
返回: TRUE if the user agent is a (specified) browser, FALSE if not
返回類型: bool

如果用戶代理是已知的Web瀏覽器,則返回TRUE / FALSE(boolean)。

  1. if ($agent->isBrowser('Safari'))
  2. {
  3. echo 'You are using Safari.';
  4. }
  5. elseif ($agent->isBrowser())
  6. {
  7. echo 'You are using a browser.';
  8. }

注解

在此示例中,字符串“ Safari”是瀏覽器定義列表中的數(shù)組鍵。 如果要添加新的瀏覽器或更改字符串,可以在 app / Config / UserAgents.php 中找到此列表。

isMobile([$key = NULL])

參數(shù): $key (string) – Optional mobile device name
返回: TRUE if the user agent is a (specified) mobile device, FALSE if not
返回類型: bool

如果用戶代理是已知的移動(dòng)設(shè)備,則返回TRUE / FALSE(boolean)。

  1. if ($agent->isMobile('iphone'))
  2. {
  3. echo view('iphone/home');
  4. }
  5. elseif ($agent->isMobile())
  6. {
  7. echo view('mobile/home');
  8. }
  9. else
  10. {
  11. echo view('web/home');
  12. }

isRobot([$key = NULL])

參數(shù): $key (string) – Optional robot name
返回: TRUE if the user agent is a (specified) robot, FALSE if not
返回類型: bool

如果用戶代理是已知的機(jī)械手,則返回TRUE / FALSE(boolean)。

注解

用戶代理庫(kù)僅包含最常見(jiàn)的機(jī)械手定義。 它不是機(jī)器人的完整列表。 它們有數(shù)百個(gè),因此搜索每個(gè)對(duì)象將不是很有效。 如果您發(fā)現(xiàn)列表中缺少一些經(jīng)常訪問(wèn)您網(wǎng)站的漫游器,則可以將它們添加到您的app / Config / UserAgents.php文件中。

isReferral()

返回: TRUE if the user agent is a referral, FALSE if not
返回類型: bool

如果從另一個(gè)站點(diǎn)引用了用戶代理,則返回TRUE / FALSE(boolean)。

getBrowser()

返回: Detected browser or an empty string
返回類型: string

返回一個(gè)字符串,其中包含查看您的網(wǎng)站的Web瀏覽器的名稱。

getVersion()

返回: Detected browser version or an empty string
返回類型: string

返回一個(gè)字符串,其中包含查看您的網(wǎng)站的Web瀏覽器的版本號(hào)。

getMobile()

返回: Detected mobile device brand or an empty string
返回類型: string

返回一個(gè)字符串,其中包含查看您的站點(diǎn)的移動(dòng)設(shè)備的名稱。

getRobot()

返回: Detected robot name or an empty string
返回類型: string

返回一個(gè)字符串,其中包含查看您的網(wǎng)站的機(jī)器人的名稱。

getPlatform()

返回: Detected operating system or an empty string
返回類型: string

返回一個(gè)字符串,其中包含查看您的網(wǎng)站的平臺(tái)(Linux,Windows,OS X等)。

getReferrer()

返回: Detected referrer or an empty string
返回類型: string

引薦來(lái)源網(wǎng)址(如果用戶代理是從另一個(gè)站點(diǎn)引薦的)。 通常,您將對(duì)此進(jìn)行如下測(cè)試:

  1. if ($agent->isReferral())
  2. {
  3. echo $agent->referrer();
  4. }

getAgentString()

返回: Full user agent string or an empty string
返回類型: string

返回包含完整用戶代理字符串的字符串。 通常情況如下:

  1. Mozilla/5.0 (Macintosh; U; Intel Mac OS X; en-US; rv:1.8.0.4) Gecko/20060613 Camino/1.0.2

parse($string)

參數(shù): $string (string) – A custom user-agent string
返回類型: void

解析自定義用戶代理字符串,該字符串不同于當(dāng)前訪問(wèn)者報(bào)告的字符串。

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)