本篇文章主要介绍php怎么写访客浏览信息记录,感兴趣的朋友参考下,希望对大家有所帮助。
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]; //获取火狐浏览器的版本号
} 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记录访客的浏览信息实现代码
js基于cookie实现来宾统计记录访客信息的方法_javascript技巧
以上就是php怎么写访客浏览信息记录?的详细内容。