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 に答える