今日のモバイル デバイスが注目を集めている時代では、Web フロントエンド開発を行うときにモバイル デバイスのページ マッチングを使用する必要が生じることがよくあります。もちろん、レスポンシブ ページ デザインを使用してフロントエンドのマッチングの問題に対処することもできますが、レスポンシブ ページは特定のコードを表示しないだけで、ユーザーのモバイル デバイスに読み込まれます。ユーザーのモバイル ブラウジング エクスペリエンスをより適切に考慮し、不必要な読み込みを減らすため。その後、PHP を使用してユーザーのコード読み込みを軽減し、ページを閲覧するときのユーザー エクスペリエンスを向上させることができます。現在ではモバイルデバイスの種類もブラウザも多種多様なため、User-Agentだけで判断するだけでは問題を完全に解決することはできません。
関数はMobile()
{
// HTTP_X_WAP_PROFILE がある場合、それはモバイルデバイスである必要があります
if (isset ($_SERVER['HTTP_X_WAP_PROFILE']))
{
true を返す;
}
// via 情報に wap が含まれている場合、それはモバイル デバイスである必要があります。一部のサービス プロバイダーはこの情報をブロックします。
if (isset ($_SERVER['HTTP_VIA'])){
// 見つからない場合は false、それ以外の場合は true
return stristr($_SERVER['HTTP_VIA'], "wap") ? true : false;
}
// 携帯電話によって送信されたクライアントフラグを決定します。互換性を改善する必要があります
if (isset ($_SERVER['HTTP_USER_AGENT']))
{
$clientkeywords = array ('ノキア',
「ソニー」、
「エリクソン」、
「モット」、
「サムスン」、
「htc」、
'sgh'、
「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 を返す;
}
?>
現在、この方法はほとんどのモバイルデバイスでの判定に使用できます。使用する場合は、必要に応じて UA 判定パラメータを追加することもできます。