今天在写生成静态文件的脚本时,本来要写两个脚本:1、生成静态文件的PHP脚本;2、把静态文件移动到可访问目录下的脚本。中间还得使用文件加锁等操作。
为什么要这么麻烦呢?不是可以直接将静态文件生成在可访问目录一下吗?因为当服务器I/O读写压力过大时,wirte可能延迟,这时静态文件的内容有可能是不完整的。因此最好的做法是保证要生成静态文件的完整性,然后将静态文件移动到访问目录。
关于第二步的操作,原来是使用Linux的MV命令来做的,mv将文件移动的同时可进行重命名,并且具有覆盖功能。不过感觉写两个脚本麻烦。所以使用PHP的函数rename(),rename的功能和mv差不多,而且php4.3.3版本以后支持跨目录移动文件,或某个目录。
这样的话,就可以少写一个文件了
本文讨论了使用PHP生成静态文件的策略,解释了为何需要先生成静态文件再移动到可访问目录的原因,以及如何利用PHP的rename()函数简化流程。
2670

被折叠的 条评论
为什么被折叠?



