一意のコードを作成してテキストファイルに書き込むスクリプトを作成しようとしています。私はなんとかコードを生成し、それらをファイルに書き込むことができました。
私の問題は、ループが実行され続け、サーバーがタイムアウトする前に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回呼び出されますが、1回だけ呼び出す必要があります。