我試圖創建一個腳本來創建唯一代碼並將它們寫入文本文件。 我已經設法生成代碼,並將它們寫入文件。PHP重置變量
現在我的問題是,我的循環保持運行,導致超過92 000個代碼被寫入文件,在服務器超時之前。
我已經做了一些日誌記錄,似乎一切正常,只是在一定的時間後,我的所有變量都重置,一切從頭開始。發生這種情況的時間間隔因時而異。
我已經在腳本的頂部設置了ini_set('memory_limit', '200M'); ini_set('max_execution_time',0);
。也許有一個我失蹤的PHP超時設置?
腳本是控制器中的函數。我在這個函數的開頭設置了ini_set。這是循環我經歷:
public function generateAction() {
ini_set('memory_limit', '200M');
ini_set('max_execution_time',0);
$codeArray = array();
$numberOfCodes = 78000;
$codeLength = 8;
$totaalAantal = 0;
$file = fopen("codes.txt","a+");
while(count($codeArray)<$numberOfCodes){
$code = self::newCode($codeLength);
if(!in_array($code,$codeArray))
{
$totaalAantal++;
$codeArray[] = $code;
fwrite($file,'total: '.$totaalAantal."\r\n");
}
}
fclose($file);
}
在該文件中,這將讓這樣的事情:
total: 1
total: 2
total: ...
total: 41999
total: 42000
total: 1
total: 2
total: ...
total: 41999
total: 42000
感謝。
編輯:到目前爲止,我們已經確定generateAction()在腳本結束之前被調用了2次或3次,而它只應該被調用一次。
請問您可以發佈更多的代碼。關於你如何設置它,是在一個實際的循環?或者你只是給腳本一個時間限制。 – 2012-04-27 13:19:05
要禁用時間限制,請使用'set_time_limit(0);' – ThiefMaster 2012-04-27 13:38:08
@ThiefMaster這沒有什麼區別。 – 2012-04-27 13:43:06