我使用 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);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)