PHP如何操作可以記錄訪客瀏覽資訊

來源:互聯網
上載者:User
這次給大家帶來PHP如何操作可以記錄訪客瀏覽資訊,PHP記錄訪客瀏覽資訊的注意事項有哪些,下面就是實戰案例,一起來看一下。

可以記錄訪客的地理位置,作業系統,瀏覽器,IP,時間和訪問的檔案。

1.首先建立一個comm_function.php檔案:

<?php//echo $_SERVER['HTTP_USER_AGENT'];//echo "<br />".$_SERVER ['REMOTE_ADDR'];/** * 擷取用戶端類型,手機還是電腦,以及相應的作業系統類型。 * * @param string $subject */function get_os($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 )) {    if(preg_match("/Mobile/", $agent)){      if(preg_match("/QQ/i", $agent)){        $os = "Android QQ Browser";      }else{        $os = "Android Browser";      }    }else{      $os = 'PC-Linux';    }  } else if (preg_match ( '/Mac/i', $agent )) {    if(preg_match("/Mobile/", $agent)){      if(preg_match("/QQ/i", $agent)){        $os = "IPhone QQ Browser";      }else{        $os = "IPhone Browser";      }    }else{      $os = 'Mac OS X';    }  } 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 = '未知作業系統';  }  return $os;}/** * 擷取 用戶端的瀏覽器類型 * @return string */function get_broswer($sys){  if (stripos($sys, "Firefox/") > 0) {    preg_match("/Firefox\/([^;)]+)+/i", $sys, $b);    $exp[0] = "Firefox";    $exp[1] = $b[1]; //擷取Firefox瀏覽器的版本號碼  } elseif (stripos($sys, "Maxthon") > 0) {    preg_match("/Maxthon\/([\d\.]+)/", $sys, $aoyou);    $exp[0] = "傲遊";    $exp[1] = $aoyou[1];  } elseif (stripos($sys, "MSIE") > 0) {    preg_match("/MSIE\s+([^;)]+)+/i", $sys, $ie);    $exp[0] = "IE";    $exp[1] = $ie[1]; //擷取IE的版本號碼  } elseif (stripos($sys, "OPR") > 0) {    preg_match("/OPR\/([\d\.]+)/", $sys, $opera);    $exp[0] = "Opera";    $exp[1] = $opera[1];  } elseif(stripos($sys, "Edge") > 0) {    //win10 Edge瀏覽器 添加了chrome核心標記 在判斷Chrome之前匹配    preg_match("/Edge\/([\d\.]+)/", $sys, $Edge);    $exp[0] = "Edge";    $exp[1] = $Edge[1];  } elseif (stripos($sys, "Chrome") > 0) {    preg_match("/Chrome\/([\d\.]+)/", $sys, $google);    $exp[0] = "Chrome";    $exp[1] = $google[1]; //擷取google chrome的版本號碼  } elseif(stripos($sys,'rv:')>0 && stripos($sys,'Gecko')>0){    preg_match("/rv:([\d\.]+)/", $sys, $IE);    $exp[0] = "IE";    $exp[1] = $IE[1];  }else {    $exp[0] = "未知瀏覽器";    $exp[1] = "";  }  return $exp[0].'('.$exp[1].')';}/** * 根據 用戶端IP 擷取到其具體的位置資訊 * @param unknown $ip * @return string */function get_address_by_ip($ip) {  $url = "http://ip.taobao.com/service/getIpInfo.php?ip=".$ip;  $curl = curl_init();  curl_setopt($curl, CURLOPT_URL, $url);  curl_setopt($curl, CURLOPT_HEADER, 0);  curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);  $info = curl_exec($curl);  curl_close($curl);  return $info;}function clientlog() {  $useragent = $_SERVER ['HTTP_USER_AGENT'];  $clientip = $_SERVER ['REMOTE_ADDR'];  $client_info = get_os ( $useragent ) . "---" . get_broswer ( $useragent );  $rawdata_position = get_address_by_ip ( $clientip );  $rawdata_position = json_decode($rawdata_position, true);  $country = $rawdata_position['data']['country'];  $province = $rawdata_position['data']['region'];  $city = $rawdata_position['data']['city'];  $nettype = $rawdata_position['data']['isp'];  $time = date ( 'y-m-d h:m:s' );  $data = "來自{$country} {$province} {$city }{$nettype} 的用戶端: {$client_info},IP為:{$clientip},在{$time}時刻訪問了{$_SERVER['PHP_SELF']}檔案!\r\n";  $filename = "./log.log";  if (! file_exists ( $filename )) {    fopen ( $filename, "w+" );  }  file_put_contents ( $filename, $data, FILE_APPEND );}

2.在別的檔案引入這個comm_function.php

require_once "comm_function.php";

相信看了本文案例你已經掌握了方法,更多精彩請關注php中文網其它相關文章!

推薦閱讀:

php 刪除一維數組中值元素步驟詳解

php通過pecl方式安裝擴充步驟詳解

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.