>  기사  >  백엔드 개발  >  PHP는 사용자 행동 [IP/OS/URL/브라우저] 참조 코드를 가져옵니다.

PHP는 사용자 행동 [IP/OS/URL/브라우저] 참조 코드를 가져옵니다.

不言
不言원래의
2018-04-20 12:15:232245검색

이 글은 PHP에서 사용자 행동 [IP/OS/URL/Broswer]을 얻기 위한 참조 코드를 소개합니다. 이제 필요한 친구들이 참조할 수 있도록 공유하겠습니다.

♩ 배경

  • 잘 구축된 웹사이트에서는 사용자가 어떤 페이지를 보고 싶어하는지, 어떤 제품을 검색하는지 등 사용자의 선호 행동을 계산해야 하는 경우가 많습니다. 이때 사용자 행동을 기록하고 데이터 분석을 수행하여 정보를 얻어야 합니다.

  • 다음은 개발자가 참조용으로 사용자의 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;
    }
  1. 다음 획득 방법도 참조할 수 있습니다. 현재 사용자의 실제 IP를 가져오는 PHP 방법

  2. IP 저장소의 경우, 기사를 참조하는 것이 좋습니다: ip2long 및 long2ip

⑵ PHP는 현재 페이지 URL

/**
 * 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/입니다. cart/show/id/292.html?ord_id=43https://sinia.com/cart/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;
    }
  1. 当然,也可以使用内置的参数获取 eaf0f186263cc203ecf2e3ef4a1c8846

  2. ⑶. PHP는 운영 체제 정보를 가져옵니다
  3. /**
         * 获取客户端浏览器信息
         * @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;
        }

    물론 내장 매개변수를 사용하여 를 가져올 수도 있습니다. eaf0f186263cc203ecf2e3ef4a1c8846

다음 기사를 참조하세요.

PHP는 서버 운영 체제 및 기타 정보를 가져옵니다

  • ⑷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);
    .
♫ 테스트 참고사항:

  • 실제 개발을 고려하면 각 페이지는 일반적으로 특정 공개 클래스를 상속하도록 설계되었으며, 이후 공개 클래스의 초기 메소드 또는 생성자는 다음과 유사한 논리 처리를 수행하여 사용자 행동 및 기록을 얻습니다. 데이터를 읽어온 후 디스플레이 디자인을 수행합니다...

  • rrreee
  • 데이터베이스 내 기록 참조:


🎜참고용으로 See You! 🎜🎜🎜🎜🎜🎜

위 내용은 PHP는 사용자 행동 [IP/OS/URL/브라우저] 참조 코드를 가져옵니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.