Laravel・PHP入門

PHPer初心者

【Laravel】ユーザの使用端末がPCかスマホか判定する(PHP)

PCとスマホ
表示項目やバリデーションを場合分けしたかったので。


Requestインスタンス
端末のデータを持ってくれている!
そこから、大概のスマートフォンの情報のみを省いて
場合分けする。

このUser-Agentが持ってるらしい。

 'agent' => $request->header('User-Agent')

なので、これを使って場合分け。

<?php

...

    /**
     * クライアントの使用端末がMobileかPCか判定
     *
     * @param $request
     * @return string
     * @access private
     */
    private function isMobileOrPc($request): string
    {
        $user_agent =  $request->header('User-Agent');
        if ((strpos($user_agent, 'iPhone') !== false)
            || (strpos($user_agent, 'iPod') !== false)
            || (strpos($user_agent, 'Android') !== false)) {
            return 'mobile';
        } else {
            return 'pc';
        }
    }

どうやら、iPoneとiPod(iPadiPodになるそうで)、後Androidを省けば
大体対応できるようです。海外はわかりませんが

以上