インフラエンジニアを募集中です。詳細はこちらユーザーエージェントってもっとわかりやすくしてくれないかなあと思った話PHPyamashita2018.02.22みなさんこんにちは。今日はボーイスカウトの創始者ベーデンパウエルの誕生日でBP祭ですね。yamashitaです。今日はユーザーエージェントについて書きたいと思います。パソコン、フィーチャーフォン、スマートフォンをそれぞれ分けて適切な表示にする処理を実装する時に困った話です。振り分けてみましょうまずわかりやすそうなところでiPhoneかAndroidのスマートフォンかです。これは簡単で"iPhone"か"Android"の文字が入っているかどうかを見ればいいのです。//スマホの時の処理}ちなみにiPadも同じ感じで'iPad'があるかどうか判定できるそうです。次は各キャリア各キャリア名で振り分ければスマホではないのでガラケーという事になります。PhoneとかまだAndroidに支配されていないBlackBerryとかの処理も必要なんでしょうけど、この記事ではとりあえず置いときます。こんな感じで処理を進めて実装までこぎつけようとしてたのですが、一つ問題がありました。DoCoMoのフルブラウザやSoftBankのPCブラウザです。「"Android"でも"iPhone"でもない」かつ「各キャリア名を保持している」ためガラケー向けのサイトに誘導されます。それはガラケーに厳しすぎるのでちゃんとPCと同等の扱いをしたいと思います。大雑把な振り分けだとあとはPCの処理}こんな感じでPCブラウザやフルブラウザを除外すればいいのではないでしょうか。MozillaってなんだFirefoxじゃないか今回言いたかったのはこれです。Navigatorのコードネーム「Mozilla」をユーザーエージェントに組み込んで偽装してたみたいですね。Navigator用の内容も受け取ろうとしていたとの事。その後IEがシェアをどんどん増やしていって定型文的な物になったみたいです。「そんな堂々と偽装してもいいのか」とか「そのまま一般的になっちゃうのか」とか色々もやっとしてしまいました。最後にユーザーエージェントを参照したページを記載しておきます。・ソフトバンク、機種内でブラウザやアプリに振り分けてあって見やすいです。http://creation.mb.softbank.jp/mc/terminal/terminalinfo/terminaluseragent.html・auはガラホになったからなのかガラケーのユーザーエージェントが乗ってるページは404でした。https://www.au.com/developer/android/kishu/ua/・DoCoMo、パターンを紹介してるので何の文字が何を表してるのかわかるのがいいですね。見てさっと結果を知りたかっただけなのでしんどかったです。スプレッドシートにデータを保存するPHPfujihara2019.04.12はてブ【WordPress】メディアアップロードのサイズ上限を変更する方法PHPyamashita2019.03.18はてブバシャログ。Web制作スタッフによるブログです。「現場で使えるテクニック」をモットーに、Web制作全般についてお届けします。