正文
php实现数据流量监控 php大流量
小程序:扫一扫查出行
【扫一扫了解最新限行尾号】
复制小程序
【扫一扫了解最新限行尾号】
复制小程序
php流量统计功能的实现代码
流量统计功能
显示效果:
总访问量:399
今日流量:14
昨日流量:16
本代码仅供学习交流,其中必有不妥之处。请见谅!
--
--
表的结构
`mycounter`
--
复制代码
代码如下:
CREATE
TABLE
`mycounter`
(
`id`
int(11)
NOT
NULL
auto_increment,
`Counter`
int(11)
NOT
NULL,
`CounterLastDay`
int(10)
default
NULL,
`CounterToday`
int(10)
default
NULL,
`RecordDate`
date
NOT
NULL,
PRIMARY
KEY
(`id`)
)
ENGINE=InnoDB
DEFAULT
CHARSET=gbk
AUTO_INCREMENT=2
;
函数过程如下:
复制代码
代码如下:
?PHP
public
function
ShowMyCounter(){
//定义变量
$IsGone
=
FALSE;
//读取数据
$querysql
=
"SELECT
*
FROM
`mycounter`
WHERE
id
=
Ƈ'
";
$queryset
=
mysql_query($querysql);
$row
=
mysql_fetch_array($queryset);
//获得时间量
$DateNow
=
date('Y-m-d');
$RecordDate
=
$row['RecordDate'];
$DateNow_explode
=
explode("-",$DateNow);
$RecordDate_explode
=
explode("-",$RecordDate);
//判断是否已过去一天
if(
$DateNow_explode[0]
$RecordDate_explode[0])
$IsGone
=
TRUE;
else
if(
$DateNow_explode[0]
==
$RecordDate_explode[0]
){
if(
$DateNow_explode[1]
$RecordDate_explode[1]
)
$IsGone
=
TRUE;
else
if(
$DateNow_explode[1]
==
$RecordDate_explode[1]
){
if(
$DateNow_explode[2]
$RecordDate_explode[2]
)
$IsGone
=
TRUE;
}else
BREAK;
}else
BREAK;
//根据IsGone进行相应操作
IF($IsGone)
{
$RecordDate
=
$DateNow;
$CounterToday
=
0;
$CounterLastDay
=
$row['CounterToday'];
$upd_sql
=
"update
mycounter
set
RecordDate
=
'$RecordDate',CounterToday
=
'$CounterToday',CounterLastDay
=
'$CounterLastDay'
WHERE
id
=
Ƈ'
";
mysql_query($upd_sql);
}
//再次获取数据
$querysql
=
"SELECT
*
FROM
`mycounter`
WHERE
id
=
Ƈ'
";
$queryset
=
mysql_query($querysql);
$Counter
=
$row['Counter'];
$CounterToday
=
$row['CounterToday'];
$CounterLastDay
=
$row['CounterLastDay'];
if($row
=
mysql_fetch_array($queryset)
){
if(
$_COOKIE["user"]
!=
"oldGuest"
){
$Counter
=
++$row['Counter'];
$CounterToday
=
++$row['CounterToday'];
$upd_sql
=
"update
mycounter
set
counter
=
'$Counter',CounterToday
=
'$CounterToday'
WHERE
id
=
Ƈ'
";
$myquery
=
mysql_query($upd_sql);
}
echo
"总访问量:".$Counter;
echo
"
";
echo
"今日流量:".$CounterToday;
echo
"
";
echo
"昨日流量:".$CounterLastDay;
}else{//如果数据库为空时,相应的操作
}
}
?
当然,需要在文件第一行开始写出如下代码:
复制代码
代码如下:
?PHP
session_start();
if(
!isset($_COOKIE["user"])
){
setcookie("user","newGuest",time()+3600);
}else
{
setcookie("user","oldGuest");
}
?
php中有没有什么方法可以实现实时监听数据库中的某张表的变化
最好的办法是,在应用程序生命周期内,对于数据库设置有事件钩子,用于监听程序对于数据库的操作。这样非常方便处理逻辑流程。
1 - 表的数据变化
表数据发生了变化,毫无疑问是写操作,包括以下几种情形:
新建条目 create
更新条目 update
删除条目 delete
以上三种都是写操作,会对表数据写入。
2 - 事件钩子
既然需要实时监控,那么每个数据库的操作,都需要考虑在内,这是全局的监听。
以laravel的Eloquent ORM 模型触发事件,允许你挂接到模型生命周期的如下节点: retrieved、creating、created、updating、updated、saving、saved、deleting、deleted、restoring 和 restored。事件允许你每当特定模型保存或更新数据库时执行代码。每个事件通过其构造器接受模型实例。
如果重用率很高,那么使用观察者 Observer 方式进行监听更为高效。
结语
上面的方法要求读者有laravel框架的使用基础,对于构建中大型应用非常有利。
PHP如何实施监控数据库的更新,一旦有更新,就把更新的数据推送给Android?
那你可以在插入数据库那里设置监听呀,一有插入就往Android推送消息。
不然你只能通过每隔一段时间刷新一下读取数据库,看看有没有更新,有就推送,没有就继续监听,这个你可以自己设置更新时间。
关于php实现数据流量监控和php大流量的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。