ホームページ  >  記事  >  バックエンド開発  >  PHP がユーザーの動作を取得する [IP/OS/URL/ブラウザ] 参照コード

PHP がユーザーの動作を取得する [IP/OS/URL/ブラウザ] 参照コード

不言
不言オリジナル
2018-04-20 12:15:232256ブラウズ

この記事では、PHP でユーザーの行動 [IP/OS/URL/Browser] を取得するためのリファレンス コードを紹介します。必要な友達に参照してもらえるように共有します。

よく確立されたウェブサイトでは、ユーザーがどのページを閲覧するか、どの製品を閲覧するかなど、ユーザーの嗜好行動をカウントする必要があることがよくあります。このとき、ユーザーの行動を記録し、データ分析を行ってデータを取得する必要があります。マーチャントの戦略的方向性を促進するための貴重な情報

  • 以下は私自身のテスト後のコードの一部であり、開発者がユーザーの IP、オペレーティング システム、アクセス URL、ブラウザー、その他の主要な情報を参照するのに役立ちます。

  • ♪ メインメソッドの表示

  • ⑴. PHP はユーザーの IP アドレスを取得します
/**
* 此方法返回用户的IP地址,同时如果拥有代理IP,将会以逗号追加在后面
* 如果只取用当前IP,可参考 :
* $ips = explode(',', $bargainModel->get_real_ips());
* $ip = $ips[0];
*/public function get_real_ips()
    {        global $ip;        if (getenv("HTTP_CLIENT_IP")) {            $ip = getenv("HTTP_CLIENT_IP");
        } else if (getenv("HTTP_X_FORWARDED_FOR")) {            $ip = getenv("HTTP_X_FORWARDED_FOR");
        } else if (getenv("REMOTE_ADDR")) {            $ip = getenv("REMOTE_ADDR");
        } else {            $ip = "NULL";
        }        return $ip;
    }

この取得メソッドも参照できます: 現在のユーザーの実際の IP を取得するための PHP メソッド
  1. IP ストレージの場合、記事を参照することをお勧めします:

  2. ip2long および long2ip
  3. ⑵。PHP は現在のページの URL を取得します
  4. /**
     * PHP 获取当前页面 URL
     * @return string
     */function currPageURL(){
        $pageURL = 'http';    if (!empty($_SERVER['HTTPS'])) {        $pageURL .= "s";
        }    $pageURL .= "://";    if ($_SERVER["SERVER_PORT"] != "80") {        $pageURL .= $_SERVER["SERVER_NAME"] . ":" . $_SERVER["SERVER_PORT"] . $_SERVER["REQUEST_URI"];
        } else {        $pageURL .= $_SERVER["SERVER_NAME"] . $_SERVER["REQUEST_URI"];
        }    return $pageURL;
    }
得られる結果は次のとおりです: https://sinia.com/ car/show/id/292.html?ord_id=43

⑶。PHP はオペレーティング システム情報を取得します

/**
     * 获取客户端操作系统信息包括 win10
     * @param  null
     * @author  Jea杨
     * @return string
     */
    function getOS()
    {
        $agent = $_SERVER['HTTP_USER_AGENT'];        $os = false;        if (preg_match('/win/i', $agent) && strpos($agent, '95')) {            $os = 'Windows 95';
        } else if (preg_match('/win 9x/i', $agent) && strpos($agent, '4.90')) {            $os = 'Windows ME';
        } else if (preg_match('/win/i', $agent) && preg_match('/98/i', $agent)) {            $os = 'Windows 98';
        } else if (preg_match('/win/i', $agent) && preg_match('/nt 6.0/i', $agent)) {            $os = 'Windows Vista';
        } else if (preg_match('/win/i', $agent) && preg_match('/nt 6.1/i', $agent)) {            $os = 'Windows 7';
        } else if (preg_match('/win/i', $agent) && preg_match('/nt 6.2/i', $agent)) {            $os = 'Windows 8';
        } else if (preg_match('/win/i', $agent) && preg_match('/nt 10.0/i', $agent)) {            $os = 'Windows 10';#添加win10判断  
        } else if (preg_match('/win/i', $agent) && preg_match('/nt 5.1/i', $agent)) {            $os = 'Windows XP';
        } else if (preg_match('/win/i', $agent) && preg_match('/nt 5/i', $agent)) {            $os = 'Windows 2000';
        } else if (preg_match('/win/i', $agent) && preg_match('/nt/i', $agent)) {            $os = 'Windows NT';
        } else if (preg_match('/win/i', $agent) && preg_match('/32/i', $agent)) {            $os = 'Windows 32';
        } else if (preg_match('/linux/i', $agent)) {            $os = 'Linux';
        } else if (preg_match('/unix/i', $agent)) {            $os = 'Unix';
        } else if (preg_match('/sun/i', $agent) && preg_match('/os/i', $agent)) {            $os = 'SunOS';
        } else if (preg_match('/ibm/i', $agent) && preg_match('/os/i', $agent)) {            $os = 'IBM OS/2';
        } else if (preg_match('/Mac/i', $agent) && preg_match('/PC/i', $agent)) {            $os = 'Macintosh';
        } else if (preg_match('/PowerPC/i', $agent)) {            $os = 'PowerPC';
        } else if (preg_match('/AIX/i', $agent)) {            $os = 'AIX';
        } else if (preg_match('/HPUX/i', $agent)) {            $os = 'HPUX';
        } else if (preg_match('/NetBSD/i', $agent)) {            $os = 'NetBSD';
        } else if (preg_match('/BSD/i', $agent)) {            $os = 'BSD';
        } else if (preg_match('/OSF1/i', $agent)) {            $os = 'OSF1';
        } else if (preg_match('/IRIX/i', $agent)) {            $os = 'IRIX';
        } else if (preg_match('/FreeBSD/i', $agent)) {            $os = 'FreeBSD';
        } else if (preg_match('/teleport/i', $agent)) {            $os = 'teleport';
        } else if (preg_match('/flashget/i', $agent)) {            $os = 'flashget';
        } else if (preg_match('/webzip/i', $agent)) {            $os = 'webzip';
        } else if (preg_match('/offline/i', $agent)) {            $os = 'offline';
        } else {            $os = 'Unknown';
        }        return $os;
    }
https://sinia.com/cart/show/id/292.html?ord_id=43

⑶. PHP 获取操作系统信息

/**
     * 获取客户端浏览器信息
     * @param  null
     * @author  Jea杨
     * @return string
     */public function getBroswer()
    {
        $user_OSagent = $_SERVER['HTTP_USER_AGENT'];        if (strpos($user_OSagent, "Maxthon") && strpos($user_OSagent, "MSIE")) {            $visitor_browser = "Maxthon(Microsoft IE)";
        } elseif (strpos($user_OSagent, "Maxthon 2.0")) {            $visitor_browser = "Maxthon 2.0";
        } elseif (strpos($user_OSagent, "Maxthon")) {            $visitor_browser = "Maxthon";
        } elseif (strpos($user_OSagent, "Edge")) {            $visitor_browser = "Edge";
        } elseif (strpos($user_OSagent, "Trident")) {            $visitor_browser = "IE";
        } elseif (strpos($user_OSagent, "MSIE")) {            $visitor_browser = "IE";
        } elseif (strpos($user_OSagent, "MSIE")) {            $visitor_browser = "MSIE";
        } elseif (strpos($user_OSagent, "NetCaptor")) {            $visitor_browser = "NetCaptor";
        } elseif (strpos($user_OSagent, "Netscape")) {            $visitor_browser = "Netscape";
        } elseif (strpos($user_OSagent, "Chrome")) {            $visitor_browser = "Chrome";
        } elseif (strpos($user_OSagent, "Lynx")) {            $visitor_browser = "Lynx";
        } elseif (strpos($user_OSagent, "Opera")) {            $visitor_browser = "Opera";
        } elseif (strpos($user_OSagent, "MicroMessenger")) {            $visitor_browser = "WeiXinBrowser";
        } elseif (strpos($user_OSagent, "Konqueror")) {            $visitor_browser = "Konqueror";
        } elseif (strpos($user_OSagent, "Mozilla/5.0")) {            $visitor_browser = "Mozilla";
        } elseif (strpos($user_OSagent, "Firefox")) {            $visitor_browser = "Firefox";
        } elseif (strpos($user_OSagent, "U")) {            $visitor_browser = "Firefox";
        } else {            $visitor_browser = "Other Browser";
        }        return $visitor_browser;
    }
  1. 当然,也可以使用内置的参数获取 eaf0f186263cc203ecf2e3ef4a1c8846

  2. もちろん、組み込みパラメータを使用して を取得することもできます。 a9d0719520023b2ddc15f2eeed27b83f

    次の記事を参照してください: PHP はサーバーのオペレーティング システムとその他の情報を取得します

⑷。

♫ テストリファレンス:
  • 実際の開発を考えると、一般的に各ページは特定のパブリッククラスを継承するように設計されており、パブリッククラスの初期メソッドまたはコンストラクタで以下のようなロジック処理を行い、ユーザーの行動や記録を取得します。それをデータベースに保存し、データを読み込んだ後に表示デザインを実行します...
    /**
    * 仅供参考而已
    */
            $ips = explode(',', $this->get_real_ips());        $ip = $ips[0];        $browser = $this->getBroswer();        $os = $this->getOS();        $addData = [            'uid' => $user_id,            'curr_url' => $this->currPageURL(),            'user_ip' => $ip,            'os' => $os,            'browser' => $browser,            'add_time' => time(),
            ];
            M('user_behavior')
                ->add($addData);

  • データベース内のレコード参照:

  • 参照のみのため、See You!


🎜

以上がPHP がユーザーの動作を取得する [IP/OS/URL/ブラウザ] 参照コードの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。