更新:2024/11/17
phpでスマホかPCか判定する方法 ~ユーザーエージェント~
今回は、phpでスマホかPCか判定するために、ユーザーエージェントを用います。
1. 関数
1.1. ユーザーエージェントを判定する関数
function is_mobile() {
$user_agent = $_SERVER['HTTP_USER_AGENT'];
$mobile_agents = array('Mobile', 'Android', 'Silk/', 'Kindle', 'BlackBerry', 'Opera Mini', 'Opera Mobi');
foreach ($mobile_agents as $agent) {
if (strpos($user_agent, $agent) !== false) {
return true;
}
}
return false;
}
まず、ユーザーエージェントをチェックする関数を作成します。
$_SERVER[‘HTTP_USER_AGENT’]は、PHPのスーパーグローバル変数の一つです。この変数は、クライアントがサーバーに送信するユーザーエージェント文字列を返します。ユーザーエージェント文字列は、クライアントのブラウザ、オペレーティングシステム、その他の情報を識別するための文字列です。この文字列に対して、スマホの場合に含まれる可能性のある文字列の配列mobile_agentsを作り、strposを使い、部分的に文字列が一致するかどうか判定し、ユーザーエージェントからスマホかPCか判定します。
1.2. _SERVER[‘HTTP_USER_AGENT’]の中身
_SERVER[‘HTTP_USER_AGENT’]の中身をechoを使って実際に確認してみましょう。
echo $_SERVER['HTTP_USER_AGENT']
- ブラウザはMozilla互換(実際にはGoogle Chrome)です。
- オペレーティングシステムはWindows 10です。
- ブラウザのエンジンはWebKitをベースにしています。
- ChromeのバージョンはChrome/115.0.0.0です。
開発者ツールでスマホにして表示した場合
2. 実行
以下のように、関数を使ってユーザーエージェントから、PCかスマホか判定します。
if (is_mobile()) {
// スマホ用のコンテンツを表示
echo "スマホかも";
} else {
// PC用のコンテンツを表示
echo "PCかも";
}
PR