Maison  >  Article  >  développement back-end  >  PHPObtenir le code de référence du comportement de l'utilisateur [IP/OS/URL/Broswer]

PHPObtenir le code de référence du comportement de l'utilisateur [IP/OS/URL/Broswer]

不言
不言original
2018-04-20 12:15:232247parcourir

Cet article présente le code de référence pour obtenir le comportement des utilisateurs [IP/OS/URL/Broswer] en PHP. Il a une certaine valeur de référence. Maintenant, je le partage avec vous. Les amis dans le besoin peuvent s'y référer

<.>♩ Contexte

  • Un site Web bien établi doit souvent compter les comportements de préférence des utilisateurs, tels que les pages qu'ils aiment consulter, les types de produits qu'ils parcourent, etc. temps, le comportement de l'utilisateur doit être enregistré. Analyse pour obtenir des informations précieuses pour faciliter l'orientation stratégique des commerçants

  • Vous trouverez ci-dessous un code compilé par moi-même après test, qui peut aider les développeurs à obtenir celui de l'utilisateur. L'adresse IP, le système d'exploitation et l'URL d'accès, le navigateur et d'autres informations principales sont disponibles pour référence...

♪ Affichage de la méthode principale

⑴ PHP obtient l'adresse IP de l'utilisateur. adresse

/**
* 此方法返回用户的IP地址,同时如果拥有代理IP,将会以逗号追加在后面
* 如果只取用当前IP,可参考 :
* $ips = explode(&#39;,&#39;, $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. Vous pouvez également vous référer à cette méthode d'acquisition : Méthode PHP pour obtenir l'adresse IP réelle de l'utilisateur actuel

  2. Pour Stockage IP, il est recommandé de se référer à l'article :

    ip2long et long2ip

⑵ PHP récupère l'URL de la page actuelle.

/**
 * PHP 获取当前页面 URL
 * @return string
 */function currPageURL(){
    $pageURL = &#39;http&#39;;    if (!empty($_SERVER[&#39;HTTPS&#39;])) {        $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;
}
Les résultats obtenus sont similaires :

https://sinia.com/cart/show/id/292.html?ord_id=43

⑶ PHP récupère les informations du système d'exploitation

/**
     * 获取客户端操作系统信息包括 win10
     * @param  null
     * @author  Jea杨
     * @return string
     */
    function getOS()
    {
        $agent = $_SERVER[&#39;HTTP_USER_AGENT&#39;];        $os = false;        if (preg_match(&#39;/win/i&#39;, $agent) && strpos($agent, &#39;95&#39;)) {            $os = &#39;Windows 95&#39;;
        } else if (preg_match(&#39;/win 9x/i&#39;, $agent) && strpos($agent, &#39;4.90&#39;)) {            $os = &#39;Windows ME&#39;;
        } else if (preg_match(&#39;/win/i&#39;, $agent) && preg_match(&#39;/98/i&#39;, $agent)) {            $os = &#39;Windows 98&#39;;
        } else if (preg_match(&#39;/win/i&#39;, $agent) && preg_match(&#39;/nt 6.0/i&#39;, $agent)) {            $os = &#39;Windows Vista&#39;;
        } else if (preg_match(&#39;/win/i&#39;, $agent) && preg_match(&#39;/nt 6.1/i&#39;, $agent)) {            $os = &#39;Windows 7&#39;;
        } else if (preg_match(&#39;/win/i&#39;, $agent) && preg_match(&#39;/nt 6.2/i&#39;, $agent)) {            $os = &#39;Windows 8&#39;;
        } else if (preg_match(&#39;/win/i&#39;, $agent) && preg_match(&#39;/nt 10.0/i&#39;, $agent)) {            $os = &#39;Windows 10&#39;;#添加win10判断  
        } else if (preg_match(&#39;/win/i&#39;, $agent) && preg_match(&#39;/nt 5.1/i&#39;, $agent)) {            $os = &#39;Windows XP&#39;;
        } else if (preg_match(&#39;/win/i&#39;, $agent) && preg_match(&#39;/nt 5/i&#39;, $agent)) {            $os = &#39;Windows 2000&#39;;
        } else if (preg_match(&#39;/win/i&#39;, $agent) && preg_match(&#39;/nt/i&#39;, $agent)) {            $os = &#39;Windows NT&#39;;
        } else if (preg_match(&#39;/win/i&#39;, $agent) && preg_match(&#39;/32/i&#39;, $agent)) {            $os = &#39;Windows 32&#39;;
        } else if (preg_match(&#39;/linux/i&#39;, $agent)) {            $os = &#39;Linux&#39;;
        } else if (preg_match(&#39;/unix/i&#39;, $agent)) {            $os = &#39;Unix&#39;;
        } else if (preg_match(&#39;/sun/i&#39;, $agent) && preg_match(&#39;/os/i&#39;, $agent)) {            $os = &#39;SunOS&#39;;
        } else if (preg_match(&#39;/ibm/i&#39;, $agent) && preg_match(&#39;/os/i&#39;, $agent)) {            $os = &#39;IBM OS/2&#39;;
        } else if (preg_match(&#39;/Mac/i&#39;, $agent) && preg_match(&#39;/PC/i&#39;, $agent)) {            $os = &#39;Macintosh&#39;;
        } else if (preg_match(&#39;/PowerPC/i&#39;, $agent)) {            $os = &#39;PowerPC&#39;;
        } else if (preg_match(&#39;/AIX/i&#39;, $agent)) {            $os = &#39;AIX&#39;;
        } else if (preg_match(&#39;/HPUX/i&#39;, $agent)) {            $os = &#39;HPUX&#39;;
        } else if (preg_match(&#39;/NetBSD/i&#39;, $agent)) {            $os = &#39;NetBSD&#39;;
        } else if (preg_match(&#39;/BSD/i&#39;, $agent)) {            $os = &#39;BSD&#39;;
        } else if (preg_match(&#39;/OSF1/i&#39;, $agent)) {            $os = &#39;OSF1&#39;;
        } else if (preg_match(&#39;/IRIX/i&#39;, $agent)) {            $os = &#39;IRIX&#39;;
        } else if (preg_match(&#39;/FreeBSD/i&#39;, $agent)) {            $os = &#39;FreeBSD&#39;;
        } else if (preg_match(&#39;/teleport/i&#39;, $agent)) {            $os = &#39;teleport&#39;;
        } else if (preg_match(&#39;/flashget/i&#39;, $agent)) {            $os = &#39;flashget&#39;;
        } else if (preg_match(&#39;/webzip/i&#39;, $agent)) {            $os = &#39;webzip&#39;;
        } else if (preg_match(&#39;/offline/i&#39;, $agent)) {            $os = &#39;offline&#39;;
        } else {            $os = &#39;Unknown&#39;;
        }        return $os;
    }
<.>
    Bien sûr, vous pouvez également utiliser les paramètres intégrés pour obtenir
  1. eaf0f186263cc203ecf2e3ef4a1c8846

  2. Vous pouvez vous référer à l'article :
  3. PHP pour obtenir le serveur système d'exploitation et autres informations

⑷ PHP obtient les informations du navigateur

♫ Référence du test :
/**
     * 获取客户端浏览器信息
     * @param  null
     * @author  Jea杨
     * @return string
     */public function getBroswer()
    {
        $user_OSagent = $_SERVER[&#39;HTTP_USER_AGENT&#39;];        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;
    }

Considérant le développement réel, chaque page est généralement conçue pour hériter d'une certaine classe publique, puis dans le public La méthode initiale ou le constructeur de la classe effectue un traitement logique similaire au suivant, obtient le comportement de l'utilisateur et l'enregistre dans la base de données, puis effectue la conception de l'affichage après avoir lu les données...
/**
* 仅供参考而已
*/
        $ips = explode(&#39;,&#39;, $this->get_real_ips());        $ip = $ips[0];        $browser = $this->getBroswer();        $os = $this->getOS();        $addData = [            &#39;uid&#39; => $user_id,            &#39;curr_url&#39; => $this->currPageURL(),            &#39;user_ip&#39; => $ip,            &#39;os&#39; => $os,            &#39;browser&#39; => $browser,            &#39;add_time&#39; => time(),
        ];
        M(&#39;user_behavior&#39;)
            ->add($addData);
Enregistrer la référence dans la base de données :

  • Pour référence seulement, à bientôt !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn