fread()读大文件的问题?
if (@file_exists($programFullName)) {
$handle = fopen ($programFullName, "r");
$contents = " ";
do {
$data = fread($handle, 1024*1024);
if (strlen($data) == 0) {
break;
}
$contents .= $data;
flush();
} while(true);
fclose($handle);
我用上面的代码读一个大文件,比如200M的文件,就会报错:
Fatal error: Allowed memory size of 67108864 bytes exhausted (tried to allocate 1048577 bytes)
这个问题要怎么解决?
谢谢
问题点数:40、回复次数:3Top
1 楼eays(eays)回复于 2005-08-03 12:07:26 得分 0
是啊,我见过手册上说过有一种解决办法的
不过我不记得它了,对我还说又没用,呵呵,找找去啊Top
2 楼xuzuning(唠叨)回复于 2005-08-03 14:35:36 得分 0
致命的错误: 允许的记忆大小67108864字节用完地(经过试验的到分派1048577字节)
你打算把200M的文件都读到内存里才处理吗?Top
3 楼sandy1314(sandy)回复于 2005-08-03 14:42:02 得分 0
错误是出现在这里:$data = fread($handle, 1024*1024);
我理解是在read的时候是读到内存里了
那现在有什么其他的方法吗?Top




