任何的程序和软件都是离不开对文件的操作的,其实说的通俗了一点,所有的程序其实都是对文件的操作,都是对文件中等的某些字符的操作。当然说到文件就有很多。Txt、doc、sql、ini等的文本文件gif、jpg、png等的图片文件当然还有很多swf,flv等的视频文件。有很多很多。既然所有的程序、系统都是文件组成,所以文件是个比较敏感的东西,尤其是在linux这样的操作系统下就更是如此。

文件的权限是个比较敏感的问题,但很多人并不重视,其实合理的对文件分配权限是可以很大的提高程序的安全性的。

今天简单的说一下一个对txt文件的操作。很多时候网站都想做一个这样的功能,一个投票或者类似顶一下的这样的功能。限制一个访客使用一次。在哪个时间结束。显示有多少人参与。类似这样的。

分析这个功能,首先这个人数、百分比肯定是要随点击来变的。再者不能忘了的就是这个蓝环的高度。外层这个遮罩是整个环的高度的1-百分比。这样读取就实现了。

所以我们有的时候搞这样一个活动可能也就是几天,没有太大的必要再重新建一个表来判断ip地址(当然是你的访客并没有太大的话),那么我们就可以利用文件来实现这个功能。首先一个txt文件存储参与人数,一个txt文件来存储日期,一个txt文件来存储ip(我以前也做过一个统计访客在线人数的功能,但是用的是一个dat文件,这样的文件可能更高效一些,这里我们还是用txt).上代码

ajax.php

html引用页面代码,我用ajax

代码大体看一下,其实就是以2012-11-15为活动到期日期,将999999为活动的最多也叫满员人数,如果访客在活动期内访问并且是第一次访问就可以投票,而考虑到可能并没有多少人访问,可以判断在活动日期内访问的日期和存储日期不同,就代表过了一天,就按活动剩余天数/总天数*999999这个总人数来获得参与获得人数,并写入。其实说到底这也是个骗人的功能。要知道,其实网路上的绝大部分的数据并不是真实的。这个功能不多说,虽然用到了几个特殊的功能,包括转化json数据等。但今天我们说说file和fopen等的函数,file是将整个文件以行为单位写入一个数组,我们可以在val=2的写入投票可以看出,虽然file_put_contents可以写入文件一个数组,但是却是写入到一行中。所以我们要用fwrite来写入换行。这里要注意几个fopen的参数,查下手册可以看到其有r,r+,w,w+,a,a+等。这个地方有的人看说明搞了半天不知道有什么区别,r和w都有读写的方式,但是其实r是真正意义上的读的方式,w才是真正写的方式,w+是将文件截取为0,才是真正意义上的重新写入。不然用r还是追加,而a是真正意义上的追加。带+都是如果文件不存在就会创建这个文件。很多所\r\n不能写入换行,其实是因为php中双引号和单引号是不一样的,用双引号php会进行变量等特殊字符的解析,所以用双引号才能写入换行,但是要注意的是,在判断ip是否存在时,获取的ip也要补上\r\n来判断才行,不然一直都是不重复的。

本文链接:http://www.521php.com/archives/614/

程序本天成,妙手偶得之!我们只是代码的搬运工!

转载请注明:http://www.521php.com/archives/614/

发表评论

昵称:

网址:

eg.博客主题调用的是Gravatar头像,你可以通过邮箱注册获得头像.
/ 快捷键:Ctrl+Enter