当前位置:首页 > PHP > 正文内容

php is_dir函数结果不准确,php file_exists函数结果不准确,php is_file函数结果不准确

高老师6年前 (2020-09-11)PHP1554

php中stat(), lstat(), file_exists(), is_writable(), is_readable(), is_executable(), is_file(), is_dir(), is_link(), filectime(), fileatime(), filemtime(), fileinode(), filegroup(), fileowner(), filesize(), filetype() 和 fileperms()函数都是存在缓存的,在同一个会话中都是读取的缓存,因此我们获取的结果再长生命周期中可能出现问题,例如判断文件夹是否存在

while (true) {
	var_dump(is_dir('./demo'));
	sleep(2);
}

上面的文件夹存在,因此输出ture,当我人工删除的时候,它依然返回true

如果想要获取正确可以通过加上清除缓存函数clearstatcache来处理:

while (true) {
	clearstatcache();
	var_dump(is_dir('./demo'));
	sleep(2);
}

此时获取的状态就是最实时的正确的。

扫描二维码推送至手机访问。

版权声明:本文由高久峰个人博客发布,如需转载请注明出处。

本文链接:https://blog.20230611.cn/post/158.html

分享给朋友:

“php is_dir函数结果不准确,php file_exists函数结果不准确,php is_file函数结果不准确” 的相关文章

PHP浮点数乘以整数还是浮点型

PHP浮点数乘以整数还是浮点型

<?PHP     $a=0.5*100;     if(is_int($a)){   echo'int'; } else{ echo'not int';   }    ...

php经纬度计算距离

php经纬度计算距离

/**  * 计算两点地理坐标之间的距离  * @param  Decimal $longitude1 起点经度  * @param  Decimal $lati...

 php调用.net的dll文件,php调用.net dll

php调用.net的dll文件,php调用.net dll

本篇文章不是讲解如何用.net开发自己的dll然后PHP通过com调用。主要记录PHP官方支持的DOTNET 基本语法如下:$obj = new DOTNET("assembly", "classname")a...

PHP异常处理,PHP自定义错误,PHP记录错误日志

PHP异常处理,PHP自定义错误,PHP记录错误日志

面试中PHP面试官会问调用一个不存在的方法,如何知道是哪个文件哪行调用的?假设方法是getWorkLoad()回答1:开启PHP错误输出,PHP会输出Fatal error: Call to undefined function getWorkLoad() in D:\wwwroot\thinkpa...

php限制方法返回值类型

php限制方法返回值类型

php7新增的特性(1).强制限制只能返回一种类型<?php class task { } //must return an integer function add(): int {    &nb...

PHP Startup: Unable to load dynamic library 'C:\php\ext\php_curl.dll找不到指定的模块

PHP Startup: Unable to load dynamic library 'C:\php\ext\php_curl.dll找不到指定的模块

最近在编写windows php多线程的东西,从官网下载了PHP的线程安全版,尝试开启curl扩展extension=php_curl.dllphp -m 却提示 PHP Startup: Unable to load dynamic library 'C:\php\ext\php_curl...