ユーザーエージェントでスマホとPCを判別し、処理を変化させるPHPネタ

  • 1
    いいね
  • 2
    コメント

やりたいこと

スマホにはアレ、PCにはコレ
っていうのをPHPでやる。

Web担なので、HTMLの内容を端末によってちょこっと変えたいときに使う。
(できればやりたくないが…)

コード

最初にPHPでこう定義すればOK

function ua_smt (){
//ユーザーエージェントを取得
$ua = $_SERVER['HTTP_USER_AGENT'];
//スマホと判定する文字リスト
$ua_list = array('iPhone','iPad','iPod','Android');
 foreach ($ua_list as $ua_smt) {
//ユーザーエージェントに文字リストの単語を含む場合はTRUE、それ以外はFALSE
  if (strpos($ua, $ua_smt) !== false) {
   return true;
  }
 } return false;
}

使い方

PHP
if (ua_smt() == true) {
 //スマホの場合の処理
} else {
 //それ以外の場合の処理
}

サイトで使うときはこういう感じで使っている

HTML+PHP
<html>
<body>
あなたは…<br>

<?php if (ua_smt() == true): ?>
  <!-- スマホの場合 -->
  <p>スマホで閲覧中です。</p>

<?php else: ?>
  <!-- それ以外の場合 -->
  <p>PCで閲覧中です。</p>

<?php endif; ?>

</body>
</html>

これと組み合わせて使ったりなど
PHP条件分岐と文字列検索を使ってHTMLを出し分けする

コピペ用

コピペ用
<?php
function ua_smt (){
$ua = $_SERVER['HTTP_USER_AGENT'];
$ua_list = array('iPhone','iPad','iPod','Android');
foreach ($ua_list as $ua_smt) {
if (strpos($ua,$ua_smt) !== false){return true;}
} return false;
}
?>


<?php if (ua_smt() == true): ?>

<?php else: ?>

<?php endif; ?>