我有一个处理大文本文件的脚本。 但我受限于文件的大小。 我在这个论坛上做了一些搜索,我得出的结论是我必须逐行处理文件,但是这给我带来了很多问题,因为我需要一些详细的信息在我开始处理它之前,从文件中。
我已经尝试将每一行添加到变量中,如下所示:
$content = "";
$handle = fopen($target_File, "r") or die("Couldn't get handle");
if ($handle) {
while (!feof($handle)) {
$buffer = fgets($handle, 256);
// Process buffer here..
$content .= $buffer;
}
fclose($handle);
}
正如预期的那样,它没有用。
有人可以帮帮我吗?
答案 0 :(得分:1)
在文件顶部添加
ini_set("memory_limit", -1);
注意,页面可以使用服务器上的所有RAM
答案 1 :(得分:0)
$content = "";
$handle = fopen($target_File, "r") or die("Couldn't get handle");
if ($handle) {
while (($buffer = fgets($handle, 4096))!== false) {
// Process buffer here..
$content .= $buffer;
}
fclose($handle);
}
或强>
$content = "";
$target_File ="/tmp/uploadfile.txt";
$handle = fopen($target_File, "r") or die("Couldn't get handle");
if ($handle) {
while (!feof($handle)) {
$buffer = fgets($handle, 4096);
// Process buffer here..
//$content .= $buffer;
}
fclose($handle);
}
如果问题是由达到内存限制引起的,您可以尝试将其设置为更高的值(这可能有效或无效,具体取决于php的配置)。
这会将内存限制设置为32 Mb
ini_set("memory_limit","32M");