最近、モバイルインターネットが非常に普及しています。ユーザーがコンピュータから WAP サイトにアクセスすると、自動的に PC サイトにアクセスすることを実現するために、PC サイトと WAP サイトを構築する必要があります。以下にいくつかのコードを示しますので、ご覧ください。
方法 1: HTTP_USER_AGENT を決定する
コードは次のとおりです |
コードをコピー |
$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("場所:####");
}
|
方法 2: HTTP_ACCEPT を決定する
コードは次のとおりです
コードをコピー
|
| 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つの方法を組み合わせて判断してみましょう
コードは次のとおりです |
コードをコピー |
関数 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 を返します。
}
|
上記の方法にはいくつかの小さな問題もあります。ここでは、HTTP_USER_AGENT 情報が上記で定義されていない場合があるため、画面幅を使用してマシンタイプを追加できることを私自身の経験に基づいて説明します。主流の携帯電話と互換性があります。
jsも使用できます
関数 browserRedirect() {
var sUserAgent = navigator.userAgent.toLowerCase();
var bIsIpad = sUserAgent.match(/ipad/i) == "ipad";
var bIsIphoneOs = sUserAgent.match(/iphone os/i) == "iphone os";
var bIsMidp = sUserAgent.match(/midp/i) == "midp";
var bIsUc7 = sUserAgent.match(/rv:1.2.3.4/i) == "rv:1.2.3.4";
var bIsUc = sUserAgent.match(/ucweb/i) == "ucweb";
var bIsAndroid = sUserAgent.match(/android/i) == "アンドロイド";
var bIsCE = sUserAgent.match(/windows ce/i) == "windows ce";
var bIsWM = sUserAgent.match(/windows mobile/i) == "windows mobile";
if (bisIpad || bIsIphoneOs || bIsMidp || bIsUc7 || bIsUc || bIsAndroid || bIsCE || bIsWM) {
window.location.href = 'http://url/mobile.html';
} その他 {
window.location = 'http://url/pc.html';
}
}
ブラウザリダイレクト();
スクリプト>
|