ホームページ > バックエンド開発 > PHPチュートリアル > PHP は訪問者がモバイル クライアント インスタンスであるかどうかを判断します_PHP チュートリアル

PHP は訪問者がモバイル クライアント インスタンスであるかどうかを判断します_PHP チュートリアル

WBOY
リリース: 2016-07-13 10:49:08
オリジナル
901 人が閲覧しました

最近、モバイルインターネットが非常に普及しています。ユーザーがコンピュータから WAP サイトにアクセスすると、自動的に PC サイトにアクセスすることを実現するために、PC サイトと WAP サイトを構築する必要があります。以下にいくつかのコードを示しますので、ご覧ください。

方法 1: HTTP_USER_AGENT を決定する

方法 2: HTTP_ACCEPT を決定する
コードは次のとおりです コードをコピー

$agent = strto lower($_SERVER['HTTP_USER_AGENT']); if(strpos($agent,"netfront") || strpos($agent,"iphone") || strpos($agent,"midp-2.0") || strpos($agent,"opera mini") || strpos ($agent,"ucweb") || strpos($agent,"windows ce") || strpos($agent,"symbianos") {
Header("HTTP/1.1 301 が完全に移動されました"); header("場所:####"); }



コードは次のとおりですコードをコピーif (isset($_SERVER['HTTP_ACCEPT']) && (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')) )) {//モバイル アクセス Header("HTTP/1.1 301 が完全に移動されました"); header("場所:####"); }



上記 2 つの方法には制限があります。

この2つの方法を組み合わせて判断してみましょう

上記の方法にはいくつかの小さな問題もあります。ここでは、HTTP_USER_AGENT 情報が上記で定義されていない場合があるため、画面幅を使用してマシンタイプを追加できることを私自身の経験に基づいて説明します。主流の携帯電話と互換性があります。
コードは次のとおりです コードをコピー

関数 isMobile() {
If(isset($_SERVER['HTTP_X_WAP_PROFILE'])) {
true を返します
}
If(isset ($_SERVER['HTTP_VIA'])) {
//見つからない場合は false、それ以外の場合は true
戻り stristr($_SERVER['HTTP_VIA'], "wap") true : false
}
If(isset($_SERVER['HTTP_USER_AGENT'])) {
//この配列は改善する必要があります
$clientkeywords = 配列 (
「ノキア」、
「ソニー」、
「エリクソン」、
「モット」、
「サムスン」、
'htc'、
「ガッ」、
'lg'、
「鋭い」、
「しー」、
「フィリップス」、
「パナソニック」、
「アルカテル」、
「レノボ」、
「iPhone」、
「iPod」、
「ブラックベリー」、
「めいず」、
「アンドロイド」、
「ネットフロント」、
「シンビアン」、
「ucweb」、
'windowsce'、
「手のひら」、
「オペラミニ」、
「オペラモビ」、
「オープンウェーブ」、
「ネクソン」、
'cldc'、
'midp'、
「わっ」、
「モバイル」
); // HTTP_USER_AGENT からモバイル ブラウザのキーワードを検索します
If(preg_match("/(" . implode('|', $clientkeywords) . ")/i", strto lower($_SERVER['HTTP_USER_AGENT']))) {
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'))) {
true を返します。 }
}

false を返します。 }

jsも使用できます

最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート