很多站长朋友们都不太清楚phpip统计,今天小编就来给大家整理phpip统计,希望对各位有所帮助,具体内容如下:
本文目录一览: 1、 PHP统计网页访问量,数据库怎么设置比较好? 2、 PHP怎么统计下载次数 3、 thinkphp中如何获取用户的ip地址实现网站访问人数统计的计数器 4、 PHP如何统计在线人数 5、 php 怎么统计文章的访问量 6、 php 怎么获取记录ip所在地 PHP统计网页访问量,数据库怎么设置比较好?如果你不需要记录每次访问的详细信息,可以不用记录每一次访问,那样数据库会非常庞大,而且统计也会很慢。
简单的方法是就是只要一条记录,用四个字段分别累计本日、本周、本月、本年、总共的访问数,每次访问的时侯对这些字段加1,另外一个字段记录最后一次更新的日期,如果最后更新日期不是本日,就在加1前把本日字段设置为0,本周、本月、本年字段类似处理即可。
PHP怎么统计下载次数实现方法是在你的要进行统计次数的页面上放如下代码:
CODE:
$realip=getip();
modifyipcount($realip);
getip()函数的代码为:
CODE:
function getip()
{
if (isset($_SERVER))
{
if (isset($_SERVER[HTTP_X_FORWARDED_FOR]) strcasecmp($_SERVER[HTTP_X_FORWARDED_FOR], "unknown"))//代理
{
$realip = $_SERVER[HTTP_X_FORWARDED_FOR];
}
elseif(isset($_SERVER[HTTP_CLIENT_IP]) strcasecmp($_SERVER[HTTP_CLIENT_IP], "unknown"))
{
$realip = $_SERVER[HTTP_CLIENT_IP];
}
elseif(isset($_SERVER[REMOTE_ADDR]) strcasecmp($_SERVER[REMOTE_ADDR], "unknown"))
{
$realip = $_SERVER[REMOTE_ADDR];
}
else
{
$realip = 'unknown';
}
}
else
{
if (getenv("HTTP_X_FORWARDED_FOR") strcasecmp(getenv("HTTP_X_FORWARDED_FOR"), "unknown"))
{
$realip = getenv("HTTP_X_FORWARDED_FOR");
}
elseif(getenv("HTTP_CLIENT_IP") strcasecmp(getenv("HTTP_CLIENT_IP"), "unknown"))
{
$realip = getenv("HTTP_CLIENT_IP");
}
elseif(getenv("REMOTE_ADDR") strcasecmp(getenv("REMOTE_ADDR"), "unknown"))
{
$realip = getenv("REMOTE_ADDR");
}
else
{
$realip = 'unknown';
}
}
return $realip;
}
thinkphp中如何获取用户的ip地址实现网站访问人数统计的计数器thinkphp默认封装了获取ip方法:get_client_ip()
统计人数这个我也建议用cnzz,很方便,你想看的数据基本都能满足。
PHP如何统计在线人数原理:根据不同的IP统计出当前有多少人在线。
实现方式:可以用数据库,也可以用文本。
我这里用了文本实现。
$user_online = "count.php"; // 保存人数的文件
touch ( $user_online ); // 如果没有此文件,则创建
$timeout = 30; // 30秒内没动作者,认为掉线
$user_arr = file_get_contents ( $user_online );
$user_arr = explode ( '#', rtrim ( $user_arr, '#' ) );
print_r ( $user_arr );
$temp = array ();
foreach ( $user_arr as $value ) {
$user = explode ( ",", trim ( $value ) );
if (($user [0] != getenv ( 'REMOTE_ADDR' )) ($user [1] > time ())) { // 如果不是本用户IP并时间没有超时则放入到数组中
array_push ( $temp, $user [0] . "," . $user [1] );
}
}
array_push ( $temp, getenv ( 'REMOTE_ADDR' ) . "," . (time () + ($timeout)) . '#' ); // 保存本用户的信息
$user_arr = implode ( "#", $temp );
// 写入文件
$fp = fopen ( $user_online, "w" );
flock ( $fp, LOCK_EX ); // flock() 不能在NFS以及其他的一些网络文件系统中正常工作
fputs ( $fp, $user_arr );
flock ( $fp, LOCK_UN );
fclose ( $fp );
echo "当前有" . count ( $temp ) . "人在线";
php 怎么统计文章的访问量先给储存相应文章的数据表增加一个记录访问量的字段。
可以每访问一次,字段数量加一,但是这样会不准确,因为只要刷新一下,就会记录一下。
为了防止上面的情况发生,可以记录访问者的IP地址,重复的IP地址访问,只记录一次。
但是,一个IP地址,只记录一次,也有问题,比如,一个局域网,多个访问者,共用一个IP地址,这样也会记录不准确。所以最好,一个IP地址一定时间内访问记录一次。这样相对好一点。
不过,即使记录IP地址,但是也有可能有恶意的用户通过切换IP,或者通过刷票软件来刷访问量。
<?php
$ip = $_SERVER['REMOTE_ADDR'];
//循环对比数据表中储存的IP,如果IP存在,不再记录
$query = mysql_query("select * contetns where ip = '".$ip."'");
if(mysql_num_rows($query) > 0){
//IP存在
}else{
//记录访问量
}
?>
文/搬砖家(简书作者)
原文链接:
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。
php 怎么获取记录ip所在地<?php
header('Content-Type:text/html;Charset=utf-8');
function GetIp(){
$realip = '';
$unknown = 'unknown';
if (isset($_SERVER)){
if(isset($_SERVER['HTTP_X_FORWARDED_FOR']) !empty($_SERVER['HTTP_X_FORWARDED_FOR']) strcasecmp($_SERVER['HTTP_X_FORWARDED_FOR'], $unknown)){
$arr = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);
foreach($arr as $ip){
$ip = trim($ip);
if ($ip != 'unknown'){
$realip = $ip;
break;
}
}
}else if(isset($_SERVER['HTTP_CLIENT_IP']) !empty($_SERVER['HTTP_CLIENT_IP']) strcasecmp($_SERVER['HTTP_CLIENT_IP'], $unknown)){
$realip = $_SERVER['HTTP_CLIENT_IP'];
}else if(isset($_SERVER['REMOTE_ADDR']) !empty($_SERVER['REMOTE_ADDR']) strcasecmp($_SERVER['REMOTE_ADDR'], $unknown)){
$realip = $_SERVER['REMOTE_ADDR'];
}else{
$realip = $unknown;
}
}else{
if(getenv('HTTP_X_FORWARDED_FOR') strcasecmp(getenv('HTTP_X_FORWARDED_FOR'), $unknown)){
$realip = getenv("HTTP_X_FORWARDED_FOR");
}else if(getenv('HTTP_CLIENT_IP') strcasecmp(getenv('HTTP_CLIENT_IP'), $unknown)){
$realip = getenv("HTTP_CLIENT_IP");
}else if(getenv('REMOTE_ADDR') strcasecmp(getenv('REMOTE_ADDR'), $unknown)){
$realip = getenv("REMOTE_ADDR");
}else{
$realip = $unknown;
}
}
$realip = preg_match("/[\d\.]{7,15}/", $realip, $matches) ? $matches[0] : $unknown;
return $realip;
}
function GetIpLookup($ip = ''){
if(empty($ip)){
$ip = GetIp();
}
$res = @file_get_contents(';ip=' . $ip);
if(empty($res)){ return false; }
$jsonMatches = array();
preg_match('#\{.+?\}#', $res, $jsonMatches);
if(!isset($jsonMatches[0])){ return false; }
$json = json_decode($jsonMatches[0], true);
if(isset($json['ret']) $json['ret'] == 1){
$json['ip'] = $ip;
unset($json['ret']);
}else{
return false;
}
return $json;
}
$ipInfos = GetIpLookup('123.125.114.144'); //baidu.com IP地址
var_dump($ipInfos);
使用了新浪的开放API
关于phpip统计的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。
查看更多关于phpip统计 php怎么统计网站数据分析的详细内容...