PHP问题:filesize()返回0且文件中包含的数据很少?
我使用PHP调用Java命令,然后将其结果转发到名为result.txt的文件中。例如,文件包含以下内容:“结果为:5.0”,但函数filesize()返回0,并且当我通过“
ls -l”命令进行检查时,它也为0。因为我决定在文件大小时将结果打印到屏幕上!= 0,因此不打印任何内容。如何获得小数位数?或其他解决方案?
回答:
在docs中,当您调用时filesize
,PHP会将结果缓存在stat缓存中。
您是否尝试清除统计信息缓存?
clearstatcache();
如果不起作用,则可能的解决方法是打开文件,查找到结尾,然后使用ftell
。
$fp = fopen($filename, "rb");fseek($fp, 0, SEEK_END);
$size = ftell($fp);
fclose($fp);
如果您实际上打算将输出显示给用户,则可以读取整个文件,然后读取strlen
。
$data = file_get_contents($filename);$size = strlen($data);
以上是 PHP问题:filesize()返回0且文件中包含的数据很少? 的全部内容, 来源链接: utcz.com/qa/397558.html