[实践OK]php is_readable() 和is_dir()都有缓存,需要clearstatcacheoige空缓存,获取文件信息前最好清空状态缓存__clearstatcache,特别是file_put_contents这个拿来写日志的时候

jackxiang 2010-7-31 00:00 | |
一)一定要有True,及FILE_APPEND:

二)生成Curl Post格式的接口调试:

三)生成db的update加where的日志(Key作为数据库的字段,值为值,where也一样):

一行完成Curl的POST输出:
view plainprint?
echo "curl -d\"".http_build_query($data)."\" ".$url;  

最近写一个infobright导入脚本的时候,需要判断文件超过一定大小2G时候,再建立一个文件,但在获取文件大小信息的时候,本来已经调用file_put_contents写入文件,但通过filesize获取文件大小的时候,大小还是没写入前的大小,后来发现原来php为了提高函数效率,会缓存之前文件信息,需调用 clearstatcache();来清除缓存,清除缓存后,再使用filesize函数获取的文件大小就正确了~~,正确调用过程如下:

file_put_contents($this->current_file, $data,FILE_APPEND);
clearstatcache();
if(filesize($this->current_file) > self::$file_max_size)
{
......
}

来源:http://hi.baidu.com/johntech/blog/item/50b23aebe3afb533b90e2d04.html

作者:jackxiang@向东博客 专注WEB应用 构架之美 --- 构架之美,在于尽态极妍 | 应用之美,在于药到病除
地址:https://jackxiang.com/post/3348/
版权所有。转载时必须以链接形式注明作者和原始出处及本声明!


最后编辑: jackxiang 编辑于2020-2-24 23:05
评论列表
发表评论

昵称

网址

电邮

打开HTML 打开UBB 打开表情 隐藏 记住我 [登入] [注册]