温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

PHP如何记录访客的浏览信息

发布时间:2021-08-11 09:51:41 阅读:132 作者:小新 栏目:开发技术
PHP开发者专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

这篇文章主要为大家展示了“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]; //获取火狐浏览器的版本号
  } 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_positiontrue);
  $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如何记录访客的浏览信息”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!

亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

php
AI

开发者交流群×