ホームページ  >  記事  >  バックエンド開発  >  PHPを利用して携帯電話からのアクセスかPCからのアクセスかを判定する関数の例 _php スキル

PHPを利用して携帯電話からのアクセスかPCからのアクセスかを判定する関数の例 _php スキル

韦小宝
韦小宝オリジナル
2017-12-15 13:22:571993ブラウズ

日常業務の開発では、通常、PC とモバイルの 2 つの異なるシステムを開発し、異なるアクセス端末に応じて異なる操作インターフェイスを入力する必要があります。次の記事では、PHP 関数が携帯電話からアクセスされるか PC からアクセスされるかを判断するための PHP の使用に関する関連情報を主に紹介します。PHP の知識を知らない、または必要としない友人は参照してください。それに。

はじめに

最近プロジェクトを開発する際、PC側とモバイル側でそれぞれ実装する必要があります。携帯電話を使用してPC側でWWWドメイン名にアクセスする場合は、携帯サイトに自動でジャンプし、パソコンからMにアクセスします。 ドメイン名を携帯サイトとして使用している場合、自動的にPCサイトにジャンプするため、以下の判定機能があります:

サンプルコード:


/**
 * 移动端判断
 */
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[&#39;HTTP_ACCEPT&#39;], &#39;vnd.wap.wml&#39;) !== false) && (strpos($_SERVER[&#39;HTTP_ACCEPT&#39;], &#39;text/html&#39;) === false || (strpos($_SERVER[&#39;HTTP_ACCEPT&#39;], &#39;vnd.wap.wml&#39;) < strpos($_SERVER[&#39;HTTP_ACCEPT&#39;], &#39;text/html&#39;))))
 {
  return true;
 } 
 } 
 return false;
}


PHP isset function function

isset 関数は、変数が設定されているかどうかを検出します。

形式:

bool isset ( mixed var [, mixed var [, ...]] )

戻り値:

  • 変数が存在しない場合はFALSEを返します

  • 変数が存在し、その値がNULLの場合もFALSEを返します

  • 変数が存在し、その値が NULL でない場合、TRUE が返されます

  • 複数の変数を同時にチェックする場合、各項目が前の要件を満たしている場合にのみ TRUE が返され、それ以外の場合は結果が FALSE になります

  • unset() を使用して変数が解放された場合、それは isset() ではなくなります。 isset() を使用して NULL に設定された変数をテストすると、FALSE が返されます。 NULL バイト ("

以上がPHPを利用して携帯電話からのアクセスかPCからのアクセスかを判定する関数の例 _php スキルの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。