设为首页
收藏本站
用户名
Email
自动登录
找回密码
密码
登录
立即注册
只需一步,快速开始
快捷导航
登录
注册
论坛首页
BBS
建站模版
微站设计
虚拟主机
企业邮箱
博客日志
Blog
搜索
搜索
搜索
热搜
长春
优惠
活动
做网站
本版
帖子
用户
本版
帖子
用户
请
登录
后使用快捷导航
没有帐号?
立即注册
道具
勋章
任务
留言板
设置
我的收藏
退出
时时商务社区
»
论坛首页
›
建站资源
›
建站技术
›
PHP中is_file不能替代file_exists的理由
返回列表
查看:
556
|
回复:
0
PHP中is_file不能替代file_exists的理由
[复制链接]
新格网络
当前离线
积分
7789
2617
主题
2617
帖子
7789
积分
论坛元老
论坛元老, 积分 7789, 距离下一级还需 9992210 积分
论坛元老, 积分 7789, 距离下一级还需 9992210 积分
积分
7789
发消息
电梯直达
楼主
发表于 2018-2-14 06:00:03
|
只看该作者
|
倒序浏览
|
阅读模式
我们可以使用下面的代码测试一下:
[U]复制代码[/U] 代码如下:
在运行测试代码时,我们确保test.txt文件存在。在上面的代码中,第一次使用is_file函数判断文件是否存在,然后调用sleep函数睡眠10秒。在这10秒内,我们要把test.txt文件删除。最后看看第二次调用is_file函数的结果。输出结果如下:
test.txt exists!
test.txt exists!
嗯,你没有看错,两次都是输出“test.txt exists!”,这是为什么呢?原因就是is_file有缓存。第一次调用is_file函数的时候,PHP会把文件的属性(file stat)保存下来,当再次调用is_file的时候,如果文件名更第一次的一样,那么就会直接返回缓存。
那么把is_file改为file_exists呢?我们可以把上面代码的is_file函数改为file_exists函数,再次使用上面的测试方法测试。结果如下:
test.txt exists!
test.txt no exists!
第二次调用file_exists的时候返回文件不存在,这是因为file_exists函数没有缓存,没次调用file_exists的时候都会去磁盘搜索文件是否存在,所以第二次才会返回false。
说了那么多,我只想说明is_file不能代替file_exists使用,如果你硬是觉得is_file的性能好,那我也没办法
您可能感兴趣的文章:
php file_exists 检查文件或目录是否存在的函数
PHP中file_exists与is_file,is_dir的区别介绍
解析php file_exists无效的解决办法
PHP中file_exists函数不支持中文名的解决方法
PHP中file_exists()判断中文文件名无效的解决方法
PHP中判断文件存在使用is_file还是file_exists?
php中file_exists函数使用详解
PHP中file_exists使用中遇到的问题小结
分享到:
QQ好友和群
QQ空间
腾讯微博
腾讯朋友
收藏
0
回复
使用道具
举报
返回列表
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖后跳转到最后一页
用户反馈
客户端