2011-07-08 140 views
1

我有一個腳本,它將字符串附加到文件中。php文件寫入問題

例如(這是一個測試腳本):

$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,但仍然沒有解決。

任何想法爲什麼會出現此問題?

+2

請擴展「還沒有解決。」在使用'fwrite'和'fputs'時,你是否在完全相同的文件大小下遇到同樣的問題? –

+0

是的..同樣的問題。當它達到所述文件大小時,它停止追加 – ralpu

回答

1

看起來不太可能,但是如果PHP的當前設置非常低,您可能會碰到PHP max_execution_time。嘗試增加它的值在php.ini

0

你的循環沒有任何意義。它永遠不會改變$ i。 嘗試一下,而沒有時間。

$file = 'wikipedia/test.txt'; 
$text = 'the quick brown fox jumps over the lazy dog'; 
file_put_contents($file, $text, FILE_APPEND); 
+0

如果他想要「不斷追加字符串」,則一個未綁定循環是有意義的。 – horatio

+0

循環不是問題。 – ralpu

0

有可能導致此問題的幾個問題。

  1. 您可能遇到了最大執行時間限制(默認值:30秒)。
  2. 你可能已經耗盡內存限制(默認值:因版本不同而不同)
  3. 東西可能已經在磁盤上更改(該文件的權限可能已經改變,或者你可能已經超過磁盤配額)。

PHP的錯誤輸出對於確定哪些問題可能導致了問題是無價的。