php touch函数的使用以及问题

php日记

php touch函数是一个有趣的函数
php touch函数用法为:touch($filename);
这个语句会发生什么?
1.如果$filename 不存在,则创建一个空文件,命名为$filename
注意:这份空文件的编码是比较奇怪的,即便你的php header设定成某个编码 utf8 或者gbk,它是不理睬你的。
所以我觉得拿来创建未来需要读取内容的文件是不合适的,比如你用touch(’test.txt’),生成test.txt ,在后续程序中你写入了数字,中文,英文,等你再读test.txt出来,会发现跟你想要的是两回事,虽然看起来你写的程序好像没什么问题,就是得不到你想要的值,问题就出在编码上。(当然你用覆盖的方式继续使用倒是没什么问题,你用’ab+’类似这样添加的方式进行会出现问题。)
我是没有找到如何指定php touch 生成一定目标的编码0大小文件,你找到一定要告诉我啊。
php touch创建生成的文件拿来做”标志位”我觉得是合适的,比如你touch(’visit.lock’)这样生成visit.lock文件之后,你可以用file_exits 去判断如果文件存在则干嘛干嘛,如果不存在则干嘛干嘛。

2.如果$filename存在
php touch 会改变$filename的什么值呢?php touch会改变$filename的最后访问时间。注意是访问时间,不是创建这份文件的时间。这个功能可以让你做一些时间间隔的限制动作,比如这句话(time()-fileatime($filename)
意思是从上次访问这份$filename以后,已经过了多少时间?比如这样
if((time()-fileatime($filename) >600) echo ‘距离上次访问这份文件,已经过了10分钟’;

我还是挺常用这个函数的,就是若是能解决第一个问题就好了。
此处留下笔记…

One Response to “php touch函数的使用以及问题”

  1. yoyo Says:
    August 5th, 2008 at 5:48 am

    主题不错,非常的喜欢。

Leave a Reply

Icons by N.Design Studio. Designed By Ben Swift. Powered by WordPress and Free WordPress Themes
Entries RSS Comments RSS Log in