今回も今さら情報で更新である。

「今の時代、UA でデバイスを振り分けるのはもう限界だなあ」と感じ、10日ほど前に「javascript や cssで、デバイスがマウスか?タッチパネルか?を判断する」という記事をアップした。

そう。アップしたのだが・・・、「現時点で AI に端末の振り分けコードを php で書かせたら、どんなコードを書くのだろう?」と、ふと思ったので、試してみた。ただそれだけのページ。

まずは、自分で書いたコード。

以下は、2008~2009年頃に私が書いたコード。その後、アルゴリズムの改良をすることなく、延々と継ぎ足しながら今でも使っているヤツ。

以前、自分で書いた 端末振り分けコード

<?php 
if(isset($_SERVER["HTTP_USER_AGENT"])) {$ua = $_SERVER["HTTP_USER_AGENT"];} else { $ua = "";}
 if ((strpos($ua, 'Phone') !== false) || (strpos($ua, 'iPod') !== false)) {
 // スマートフォンからアクセスされた場合↑は「2」  
$isMobile = 2;
 } elseif ((strpos($ua, 'Android') !== false) || (strpos($ua, 'Mobile') !== false) || (strpos($ua, 'tablet') !== false) || (strpos($ua, 'iPad') !== false)) {
 // タブレットからアクセスされた場合↑は「1」  
$isMobile = 1;
 } elseif ((strpos($ua, 'DoCoMo') !== false) || (strpos($ua, 'KDDI') !== false) || (strpos($ua, 'SoftBank') !== false) || (strpos($ua, 'Vodafone') !== false) || (strpos($ua, 'J-PHONE') !== false)) {
 // 携帯からアクセスされた場合↑は「2」 
$isMobile = 2;
 } else {
 // その他(PC)からアクセスされた場合
$isMobile = 0;
 }
?>

かなり拙いコードだ。

AI に書いてもらったコード。

以下が今回 AI に書いてもらったコード。(お相手は Gemini)
古い端末のUAも、最新の端末も、出来るだけカバーできるようお願いしてみた。

2026年2月に AI が書いた 端末振り分けコード

<?php
$ua = $_SERVER['HTTP_USER_AGENT'];
$isMobile = 0; // デフォルトはPC(0)

// スマホ・ガラケーの判定(isMobile = 2)
if (
    preg_match('/(iPhone|Android.*Mobile|Windows Phone|IEMobile|BlackBerry|Nokia|DoCoMo|SoftBank|UP\.Browser|J-PHONE|Vodafone)/i', $ua)
) {
    $isMobile = 2;
} 
// タブレットの判定(isMobile = 1)
// ※iPadやAndroidタブレット(Mobileの文字を含まないもの)を想定
elseif (
    preg_match('/(iPad|Android|Kindle|Silk|PlayBook)/i', $ua)
) {
    $isMobile = 1;
}

// 判定結果の利用例
if ($isMobile === 0) {
    // PC用のコードをここに記述
    echo '<!-- PC用 コード -->';
} elseif ($isMobile === 1) {
    // タブレット用のコードをここに記述
    echo '<!-- タブレット用 コード -->';
} else {
    // スマホ・ガラケー用のコードをここに記述
    echo '<!-- スマホ・ガラケー用のコード -->';
}
?>

う~ん。。。色々と自分で書いたコードより、かなり洗練されてはいるけれど、ビックリするような真新しいコードは出てこなかった。残念。
(それでも、いくらかはお勉強になった!)

お勉強になった点

とまあ、こんな感じ。
過去に自分が書いたコードを、もう一回 AI にイチから書かせてみるのも面白いなあ、と感じたのが今日の収穫。

しかし同時に、10日ほど前に「もう デバイスの振り分けは UA 判定じゃなく css か javascript で タッチデバイスを検出するのが正しいな」と直感したのが正しい判断だったっぽいな・・・・と、改めて実感してしまった。
(UA 判定の方法にも新しい発見が欲しかったのに...寂しい。)

今回の更新は以上。