我的文字文件很少,大小超过30MB
。
我如何从PHP阅读这些巨大的文本文件?
答案 0 :(得分:6)
除非您需要同时处理所有数据,否则您可以将它们分片阅读。二进制文件的示例:
<?php
$handle = fopen("/foo/bar/somefile", "rb");
$contents = '';
while (!feof($handle)) {
$block = fread($handle, 8192);
do_something_with_block($block);
}
fclose($handle);
?>
以上示例可能会破坏多字节编码(如果在8192字节边界内存在多字节字符 - 例如UTF-8中的Ǿ
),那么对于具有有意义的结束(例如文本)的文件,请尝试此操作:
<?php
$handle = fopen("/foo/bar/somefile", "rb");
$contents = '';
while (!feof($handle)) {
$line = fgets($handle);
do_something_with_line($line);
}
fclose($handle);
?>
答案 1 :(得分:3)