PHP问题:filesize()返回0,文件包含少量数据?

Duc*_*ran 5 php java

我使用PHP调用Java命令,然后将其结果转发到名为result.txt的文件中.例如,文件包含:"结果是:5.0",但函数filesize()返回0,当我通过'ls -l'命令检查它也是0.因为我决定在文件大小时将结果打印到屏幕!= 0所以没有打印.我怎样才能得到尺寸?或其他解决方案?

Tha*_*hai 13

文档中,当您调用时filesize,PHP会将此结果缓存到stat缓存中.

您是否尝试过清除stat缓存?

clearstatcache();
Run Code Online (Sandbox Code Playgroud)

如果它不起作用,可能的解决方法是打开文件,寻找到它的结尾,然后使用ftell.

$fp = fopen($filename, "rb");
fseek($fp, 0, SEEK_END);
$size = ftell($fp);
fclose($fp);
Run Code Online (Sandbox Code Playgroud)

如果您实际上计划向用户显示输出,则可以改为读取整个文件strlen.

$data = file_get_contents($filename);
$size = strlen($data);
Run Code Online (Sandbox Code Playgroud)