【发布时间】:2014-06-16 21:53:10
【问题描述】:
我正在尝试获取 >2GB 的文件大小,但无论 64 位还是 32 位版本,PHP 都会出现问题。在 64 位操作系统上的 64 位处理器上运行的 PHP 64 位版本上,它仍然使用 filesize() 函数返回错误的文件大小。在我遇到它返回一个负数之前,或者什么都不返回......如果文件大小发生变化,这个数字会发生变化,但对于大于 2gb 的文件不准确......我可以理解一个小于实际大小的数字,如果 php 使用 32 位整数,则为零甚至负数,但正如我所读,php 64 位应该支持文件大小 > 2gb ...
我也尝试过使用 fseek 来结束和 ftell 喜欢:
$a = fopen("c:\big.txt", 'r');
fseek($a,0,SEEK_END);
$fs = ftell($a);
fclose($a);
echo $fs;
但这只会给 0...
【问题讨论】:
-
这个页面可能有更好的答案:stackoverflow.com/questions/5501451/…