關於php判斷是否移動端訪問訪問的信息

  • 1、php 判斷是否是手機瀏覽器訪問
  • 2、怎麼用php判斷用戶的訪問是否是來自移動端
  • 3、php判斷是不是移動端設備訪問

該功能的實現思路是通過HTTP_X_WAP_PROFILE、HTTP_VIA、HTTP_USER_AGENT等信息來判斷訪客是否通過移動端瀏覽器訪問PHP網站。以下是PHP代碼:

/**

* 是否移動端訪問訪問

*

* @return bool

*/

function isMobile()

{

// 如果有HTTP_X_WAP_PROFILE則一定是移動設備

if (isset ($_SERVER[‘HTTP_X_WAP_PROFILE’]))

{

return true;

}

// 如果via信息含有wap則一定是移動設備,部分服務商會屏蔽該信息

if (isset ($_SERVER[‘HTTP_VIA’]))

{

// 找不到為flase,否則為true

return stristr($_SERVER[‘HTTP_VIA’], “wap”) ? true : false;

}

// 腦殘法,判斷手機發送的客戶端標誌,兼容性有待提高

if (isset ($_SERVER[‘HTTP_USER_AGENT’]))

{

$clientkeywords = array (‘nokia’,

‘sony’,

‘ericsson’,

‘mot’,

‘samsung’,

‘htc’,

‘sgh’,

‘lg’,

‘sharp’,

‘sie-‘,

‘philips’,

‘panasonic’,

‘alcatel’,

‘lenovo’,

‘iphone’,

‘ipod’,

‘blackberry’,

‘meizu’,

‘android’,

‘netfront’,

‘symbian’,

‘ucweb’,

‘windowsce’,

‘palm’,

‘operamini’,

‘operamobi’,

‘openwave’,

‘nexusone’,

‘cldc’,

‘midp’,

‘wap’,

‘mobile’

);

// 從HTTP_USER_AGENT中查找手機瀏覽器的關鍵字

if (preg_match(“/(” . implode(‘|’, $clientkeywords) . “)/i”, strtolower($_SERVER[‘HTTP_USER_AGENT’])))

{

return true;

}

}

// 協議法,因為有可能不準確,放到最後判斷

if (isset ($_SERVER[‘HTTP_ACCEPT’]))

{

// 如果只支持wml並且不支持html那一定是移動設備

// 如果支持wml和html但是wml在html之前則是移動設備

if ((strpos($_SERVER[‘HTTP_ACCEPT’], ‘vnd.wap.wml’) !== false) (strpos($_SERVER[‘HTTP_ACCEPT’], ‘text/html’) === false || (strpos($_SERVER[‘HTTP_ACCEPT’], ‘vnd.wap.wml’) strpos($_SERVER[‘HTTP_ACCEPT’], ‘text/html’))))

{

return true;

}

}

return false;

}

function isMobile()

{

// 如果有HTTP_X_WAP_PROFILE則一定是移動設備

if (isset ($_SERVER[‘HTTP_X_WAP_PROFILE’]))

{

return true;

}

// 如果HTTP_VIA含有wap則一定是移動設備,部分服務商會屏蔽該信息

if (isset ($_SERVER[‘HTTP_VIA’]))

{

// 找不到為flase,否則為true

return stristr($_SERVER[‘HTTP_VIA’], “wap”) ? true : false;

}

// 判斷手機發送的客戶端標誌

if (isset ($_SERVER[‘HTTP_USER_AGENT’]))

{

$clientkeywords = array (‘nokia’,

‘sony’,

‘ericsson’,

‘mot’,

‘samsung’,

‘htc’,

‘sgh’,

‘lg’,

‘sharp’,

‘sie-‘,

‘philips’,

‘panasonic’,

‘alcatel’,

‘lenovo’,

‘iphone’,

‘ipod’,

‘blackberry’,

‘meizu’,

‘android’,

‘netfront’,

‘symbian’,

‘ucweb’,

‘windowsce’,

‘palm’,

‘operamini’,

‘operamobi’,

‘openwave’,

‘nexusone’,

‘cldc’,

‘midp’,

‘wap’,

‘mobile’

);

// 從HTTP_USER_AGENT中查找手機瀏覽器的關鍵字

if (preg_match(“/(” . implode(‘|’, $clientkeywords) . “)/i”, strtolower($_SERVER[‘HTTP_USER_AGENT’])))

{

return true;

}

}

// 協議法,因為有可能不準確,放到最後判斷

if (isset ($_SERVER[‘HTTP_ACCEPT’]))

{

// 如果只支持wml並且不支持html那一定是移動設備

// 如果支持wml和html但是wml在html之前則是移動設備

if ((strpos($_SERVER[‘HTTP_ACCEPT’], ‘vnd.wap.wml’) !== false)  (strpos($_SERVER[‘HTTP_ACCEPT’], ‘text/html’) === false || (strpos($_SERVER[‘HTTP_ACCEPT’], ‘vnd.wap.wml’)  strpos($_SERVER[‘HTTP_ACCEPT’], ‘text/html’))))

{

return true;

}

}

return false;

}

複製粘貼

/**

 * 判斷是否手機訪問

 */

function is_mobile()

{

  static $is_mobile;

  if (isset($is_mobile)) return $is_mobile;

  if (empty($_SERVER[‘HTTP_USER_AGENT’])) {

    $is_mobile = false;

  } elseif (strpos($_SERVER[‘HTTP_USER_AGENT’], ‘Mobile’) !== false // many mobile devices (all iPhone, iPad, etc.)

    || strpos($_SERVER[‘HTTP_USER_AGENT’], ‘Android’) !== false

    || strpos($_SERVER[‘HTTP_USER_AGENT’], ‘Silk/’) !== false

    || strpos($_SERVER[‘HTTP_USER_AGENT’], ‘Kindle’) !== false

    || strpos($_SERVER[‘HTTP_USER_AGENT’], ‘BlackBerry’) !== false

    || strpos($_SERVER[‘HTTP_USER_AGENT’], ‘Opera Mini’) !== false

    || strpos($_SERVER[‘HTTP_USER_AGENT’], ‘Opera Mobi’) !== false

  ) {

    $is_mobile = true;

  } else {

    $is_mobile = false;

  }

  return $is_mobile;

}

原創文章,作者:JANW8,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/126168.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
JANW8的頭像JANW8
上一篇 2024-10-03 23:06
下一篇 2024-10-03 23:06

相關推薦

  • PHP和Python哪個好找工作?

    PHP和Python都是非常流行的編程語言,它們被廣泛應用於不同領域的開發中。但是,在考慮擇業方向的時候,很多人都會有一個問題:PHP和Python哪個好找工作?這篇文章將從多個方…

    編程 2025-04-29
  • PHP怎麼接幣

    想要在自己的網站或應用中接受比特幣等加密貨幣的支付,就需要對該加密貨幣擁有一定的了解,並使用對應的API進行開發。本文將從多個方面詳細闡述如何使用PHP接受加密貨幣的支付。 一、環…

    編程 2025-04-29
  • Java 監控介面返回信息報錯信息怎麼處理

    本文將從多個方面對 Java 監控介面返回信息報錯信息的處理方法進行詳細的闡述,其中包括如何捕獲異常、如何使用日誌輸出錯誤信息、以及如何通過異常處理機制解決報錯問題等等。以下是詳細…

    編程 2025-04-29
  • 使用Python爬蟲獲取電影信息的實現方法

    本文將介紹如何使用Python編寫爬蟲程序,來獲取和處理電影數據。需要了解基本的Python編程語言知識,並使用BeautifulSoup庫和Requests庫進行爬取。 一、準備…

    編程 2025-04-28
  • 使用PHP foreach遍歷有相同屬性的值

    本篇文章將介紹如何使用PHP foreach遍歷具有相同屬性的值,並給出相應的代碼示例。 一、基礎概念 在講解如何使用PHP foreach遍歷有相同屬性的值之前,我們需要先了解幾…

    編程 2025-04-28
  • Python爬取網頁信息

    本文將從多個方面對Python爬取網頁信息做詳細的闡述。 一、爬蟲介紹 爬蟲是一種自動化程序,可以模擬人對網頁進行訪問獲取信息的行為。通過編寫代碼,我們可以指定要獲取的信息,將其從…

    編程 2025-04-28
  • 如何使用Python執行Shell命令並獲取執行過程信息

    本文將介紹如何使用Python執行Shell命令並獲取執行過程信息。我們將從以下幾個方面進行闡述: 一、執行Shell命令 Python內置的subprocess模塊可以方便地執行…

    編程 2025-04-28
  • Python實現身份信息模擬生成與查驗

    本文將從以下幾個方面對Python實現身份信息模擬生成與查驗進行詳細闡述: 一、身份信息生成 身份信息生成是指通過代碼生成符合身份信息規範的虛假數據。Python中,我們可以使用f…

    編程 2025-04-27
  • PHP獲取301跳轉後的地址

    本文將為大家介紹如何使用PHP獲取301跳轉後的地址。301重定向是什麼呢?當我們訪問一個網頁A,但是它已經被遷移到了另一個地址B,此時若伺服器端做了301重定向,那麼你的瀏覽器在…

    編程 2025-04-27
  • Dapper使用getschema獲取表信息

    本文旨在介紹Dapper中使用getschema獲取表信息的方法和注意事項。 一、獲取某張表的所有列信息 使用Dapper獲取某張表信息,可以使用 `IDbConnection.G…

    編程 2025-04-27

發表回復

登錄後才能評論