こんにちは、WEBエンジニアのきりん(@kikiki_kirin)です。
WEB開発をしていて「スマホの時だけここのHTML要素出したいな・・・」という状況がよくあると思います。
そんな時に使えるコードを書いておきますので、参考にしてください。
そのままでも使える状態にはなっていますので、コピペOKです。
[box02 title=”この記事の内容”]PHPでPC・スマホの処理を分ける方法[/box02]
PHPでPC・スマホの処理を分けるコード
最初にこちらのコードで関数を定義すれば準備OKです。
/**
* UA取得
* @return string
*/
function getUserAgent()
{
$userAgent = isset($_SERVER['HTTP_USER_AGENT'])? $_SERVER['HTTP_USER_AGENT'] : '';
return $userAgent;
}
/**
* スマホかどうか判定
* @return bool
*/
function isSmartPhone()
{
$ua = getuserAgent();
if (stripos($ua, 'iphone') !== false || // iphone
stripos($ua, 'ipod') !== false || // ipod
(stripos($ua, 'android') !== false && stripos($ua, 'mobile') !== false) || // android
(stripos($ua, 'windows') !== false && stripos($ua, 'mobile') !== false) || // windows phone
(stripos($ua, 'firefox') !== false && stripos($ua, 'mobile') !== false) || // firefox phone
(stripos($ua, 'bb10') !== false && stripos($ua, 'mobile') !== false) || // blackberry 10
(stripos($ua, 'blackberry') !== false) // blackberry
) {
$isSmartPhone = true;
} else {
$isSmartPhone = false;
}
return $isSmartPhone;
}
コードの使い方
実際に使う場合はこんな感じになります。
if (isSmartPhone()) {
//スマホの場合の処理
} else {
//それ以外の場合の処理
}
HTMLのなかで使いたいときはこうです。
<?php if (isSmartPhone()): ?>
<p>スマホで閲覧中</p>
<?php else: ?>
<p>PCで閲覧中</p>
<?php endif; ?>
以上です。
もし何かわからないことがあればツイッターでDMいただければお答えできるかと思います!(@kikiki_kirin)
それでは、良いプログラミングライフを!
https://www.suzuco.net/entry/programming-school/