- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PHP的基本应用-MVC
第 章
2
PHP 的基本应用
第 1 章中已经简单地介绍了一下PHP5 的基本语法。要很快地掌握PHP 这门语言,再
也没有比动手编写PHP 小程序来得快了。本章从PHP 的常见基本应用开始,提供你学习
PHP5 的应用实例。有些实例甚至只用改动部分代码,或进行一些扩展,就完全可以用到
实际的系统中。
大家知道PHP 是以强大的函数集合为特征的语言,在某种程度上,你掌握了PHP 中
的函数应用,就可以说掌握了 PHP 这门语言。结合本节的例子,在实现一个个应用的过
程中,可帮助你更好地掌握这些强大的常用函数。在此提醒你,不要忽略每节后的补充知
识,以及适时给你呈现的Hits 知识。有许多内容是作者本人在实际开发工作中花费些“代
价”得来的,希望对你有所帮助。
2.1 统计在线人数
所有拥有自己的网站,特别是那些经营网站的朋友,需要随时了解具体网页的在线人
数。因为这样不仅可以了解网页的受欢迎程度,还可以掌握具体网页的负荷程度。如果同
时在线的人数太多的话,当然服务器的负担也会很大,这时候就应该特别注意此网页的性
能了。
本节统计在线人数方
法,是利用PHP 强大的函数
库,通过统计所有在线用户
的IP 地址来实现的,在线用
户的信息将保存在文件中。
与那些通过数据库实现的统
计方法稍有不同。
实例要点
1.取得IP 地址
本节使用getenv(REMOTE_ADDR)来取得IP 地址,getenv 函数是取得系统的环境变
量,REMOTE_ADDR 从名字就表示要取得的是远程的IP 地址。还有其他一些取得IP 地
址的方法,会在本节后的补充资料会有介绍。
2 .保存在线用户信息
在线用户信息以如下的形式保存在文件中,第一项为 IP 地址,第二项为链接的时间
(严格的说是期限),两项的中间以逗号间隔,一行的末尾以“# ”结束。在线用户信息
文件的内容如下:
,1275481567#
,1275481578#
„„
目录结构
/samples
/chap2
/online
count.txt 保存在线用户信息的文件
countOnline.php 统计在线用户数的脚本
实例代码
Program 2-01 countOnline.php
1 ?php
count.txt 为保存在线用户信息的文件。
2 $user_online = count.txt;
touch 函数的作用是如果没有此文件,则创建它。
3 touch($user_online);
30 秒内没动作,认为掉线。
4 $timeout = 30;
54 │ PHP5 应用实例详解
读入文件内容,并以间隔符 “# ”来分离出所有字符串后,存储在数组$user_arr 。
5 $user_arr = file_get_contents($user_online);
6 $user_arr = explode(#,rtrim($user_arr,#));
$temp 为放置所有用户信息的数组。
7 $temp = array();
8 到13 行对文件中存储的所有在线用户进行循环处理,非本用户保存到$temp 数组中。
8 foreach($user_arr as $value){
9 $user = explode(,,trim($value));
如果不是本用户IP ,并且时间没有超时则放入数组中temp 中。
10 if (($user[0] != getenv(REMOTE_ADDR)) ($user[1] time())) {
11 array_push($temp,$user[0].,.$user[1]);
12 }
13 }
保存本用户的信息(IP 地址,以及链接期限时间)。
14 array_push($temp,getenv(REMOTE_ADDR).,.(time() + ($timeout)).#);
15 $user_a
原创力文档


文档评论(0)