1

我有一个脚本,它不断地将字符串附加到文件中。

例如(这是一个测试脚本):

$i = 1;
$file = 'wikipedia/test.txt';
$text = 'the quick brown fox jumps over the lazy dog';
while($i!=0)
{
  file_put_contents($file, $text, FILE_APPEND );
}

但是由于未知原因,当文本文件达到 2097156 B 的文件大小时,我的程序停止附加字符串。这不是磁盘空间问题,因为我仍然可以创建另一个文本文件,但限制为相同的确切文件大小值。

我尝试使用其他 php 函数 fwrite、fputs 但仍然没有成功。

知道为什么会出现这个问题吗?

4

3 回答 3

1

max_execution_time似乎不太可能,但如果它的当前设置非常低,您可能会遇到 PHP 的问题。尝试在 php.ini 中增加它的值

于 2011-07-08T18:00:03.313 回答
0

你的循环没有意义。它永远不会改变$i。尝试一下。

$file = 'wikipedia/test.txt';
$text = 'the quick brown fox jumps over the lazy dog';
file_put_contents($file, $text, FILE_APPEND );
于 2011-07-08T18:03:45.610 回答
0

有几个问题可能会导致此问题。

  1. 您可能遇到了最大执行时间限制(默认值:30 秒)。
  2. 您可能已用尽内存限制(默认值:因版本而异)
  3. 磁盘上的某些内容可能已更改(文件权限可能已更改,或者您可能已超出磁盘配额)。

PHP 的错误输出对于确定这些问题中的哪些可能导致了问题非常宝贵。

于 2011-07-08T18:04:02.470 回答