LoginSignup
22
26

More than 5 years have passed since last update.

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

Posted at

やりたいこと

スマホにはアレ、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; ?>
22
26
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
22
26