您现在的位置是:首页 PHP
php简单实现访客记录统计
博主
添加时间:2016-12-02 16:27:18
【PHP】
热度:1637人已围观
获取各个属性的方法
///获得访客浏览器类型 function GetBrowser(){ if(!empty($_SERVER['HTTP_USER_AGENT'])){ $br = $_SERVER['HTTP_USER_AGENT']; if (preg_match('/MSIE/i',$br)) { $br = 'MSIE'; }elseif (preg_match('/Firefox/i',$br)) { $br = 'Firefox'; }elseif (preg_match('/Chrome/i',$br)) { $br = 'Chrome'; }elseif (preg_match('/Safari/i',$br)) { $br = 'Safari'; }elseif (preg_match('/Opera/i',$br)) { $br = 'Opera'; }else { $br = 'Other'; } return $br; }else{return "None";} } ////获得访客浏览器语言 function GetLang(){ if(!empty($_SERVER['HTTP_ACCEPT_LANGUAGE'])){ $lang = $_SERVER['HTTP_ACCEPT_LANGUAGE']; $lang = substr($lang,0,5); if(preg_match("/zh-cn/i",$lang)){ $lang = "简体中文"; }elseif(preg_match("/zh/i",$lang)){ $lang = "繁体中文"; }else{ $lang = "English"; } return $lang; }else{return "None";} } ////获取访客操作系统 function GetOs(){ if(!empty($_SERVER['HTTP_USER_AGENT'])){ $OS = $_SERVER['HTTP_USER_AGENT']; if (preg_match('/win/i',$OS)) { $OS = 'Windows'; }elseif (preg_match('/mac/i',$OS)) { $OS = 'MAC'; }elseif (preg_match('/linux/i',$OS)) { $OS = 'Linux'; }elseif (preg_match('/unix/i',$OS)) { $OS = 'Unix'; }elseif (preg_match('/bsd/i',$OS)) { $OS = 'BSD'; }else { $OS = 'Other'; } return $OS; }else{return "None";} } // 获取ip function ip(){ if(getenv('HTTP_CLIENT_IP') && strcasecmp(getenv('HTTP_CLIENT_IP'), 'unknown')) { $ip = getenv('HTTP_CLIENT_IP'); }elseif(getenv('HTTP_X_FORWARDED_FOR') && strcasecmp(getenv('HTTP_X_FORWARDED_FOR'), 'unknown')){ $ip = getenv('HTTP_X_FORWARDED_FOR'); }elseif(getenv('REMOTE_ADDR') && strcasecmp(getenv('REMOTE_ADDR'), 'unknown')){ $ip = getenv('REMOTE_ADDR'); }elseif(isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], 'unknown')){ $ip = $_SERVER['REMOTE_ADDR']; } return preg_match("/[d.]{7,15}/", $ip, $matches) ? $matches[0] : 'unknown'; } ////根据ip获得访客所在地地名 function Getaddress($ip=''){ if(empty($ip)){ $ip = ip(); } $ipadd = file_get_contents("http://int.dpool.sina.com.cn/iplookup/iplookup.php?ip=".$ip);//根据新浪api接口获取 if($ipadd){ $charset = iconv("gbk","utf-8",$ipadd); preg_match_all("/[x{4e00}-x{9fa5}]+/u",$charset,$ipadds); return $ipadds; //返回一个二维数组 }else{ return "addree is none"; } }
然后调用这些方法 获取参数 组装数组,插入数据库
M("visit")->add(array( 'ip' => $userip, 'createtime' => $time, 'browser' => GetBrowser(), 'ilanguagep' => GetBrowser(), 'language' => GetLang(), 'os_name' => GetOs(), 'city' => $cityname, ));
-
Mac 如何关闭自带的Apache
安装XAMPP后,启动服务时提示Apache启动失败,80端口被占用.查看进程发现存在几个httpd. OS X自带Apache,可是默认是没有启动的.我也没有开启Web共享,怎么就开机启动了呢? 不知道是不是因为安装了别的什么软件导致的.一般的开机启动项可以在System Preferences–Users&Groups–Login Items中添加或删除.可是在这里也没有发现Apache相关的启动项.于是谷歌到了下面一个可行的方法,打开终端,执行下面的命令.
-
LNMP环境下WordPress网站二级目录伪静态设置
今天在给客户网站做二级目录的分类,网站一直报错404,显示应该是伪静态问题。看了下LNMP环境里的WordPress规则,貌似没有支持二级目录的。所以只好自己加一个了。目前VPS主机中使用LNMP一键安装包搭建的环境都没有带二级目录的规则。有需要的朋友可以复制下面的代码,可以让wordpress完美使用伪静态的设置。找到”/usr/local/nginx/conf/wordpress.conf”文件,然后添加:
-
一个程序员的自白:我为什么写博客
尝试和接触的知识一多, 便发现自己的脑袋跟硬盘相比, 速度和精准度上都差得不止一星半点. 事情越来越多, 且没有交集, 所有的知识点都零散的分布在脑袋的不同次元, 想要回忆起来特别困难. 一度让我觉得, 学越来越多的东西根本就是一个错误, 正确的方式应该是瞅准一个东西, 精益求精. 虽然这么想, 但是工作不是你想不做就不做的.
-
PHP中把stdClass Object转array的几个方法
我们在经常使用API接口获取数据返回json数值的时候,往往单纯通过json_decode方法解析获得得数值一般并非数组,而是带有stdClass Objec的对象字符串,这时如果我们想获取相应的PHP数组时,需通过以下几种方法来获取。
-
PHP验证类库_收集开发常用验证方法
我们在开发项目的时候往往会通过PHP的正则方式来判断用户所输入的信息是否合格或者正确,下面我给大家收集和整理成一个类,供大家参考和使用。如有问题请留言谈论。
文章评论
标签云 更多
-
PHP(35)
MySQL(0)
Linux(1)
前端(0)
SEO优化(0)
随笔(9)
PHP基础(1)
PHP类库(5)
PHP实例(56)
PHP函数(518)
PHP高级(0)
PHP与数据库(0)
PHP进阶(0)
PHP应用(0)
PHP安全(0)
PHP框架专栏(0)
PHP开放平台(0)
PHP面试题(62)
SEO专栏(569)
基础教程(120)
环境(154)
语法(15)
变量(13)
字符串(15)
运算符(6)
流程控制(13)
数组(188)
表单(4)
开发经验(120)
日期(31)
引用(11)
文件处理(39)
文件上传(21)
Cookie&Session(107)
E-mail(1)
点击排行
站长推荐
打赏本站
- 如果你觉得本站很棒,可以通过扫码支付打赏哦!
- 微信扫码:你说多少就多少~
- 支付宝扫码:你说多少就多少~