イベントの入力フォームを使用して、指定した日付に毎月繰り返すようにイベントを設定できます。あなたが12月に停止するまで、すべてうまく動作します。それを保存すると、しばらくの間ロードされているように見えますが、最終的にはクラッシュします。PHP定期的なイベントスクリプトが12月に設定されたときにクラッシュする
他の月を停止するように設定すると、すぐに更新が完璧に更新されます。それは500エラーを返すので、私はそれがタイムアウトの問題だとは思わない(このサイトは、タイムアウト通知を返す)。
ここでのコードは、子イベントとしてデータベースに挿入されますイベントの配列を作成するコード
if ($_REQUEST["Daily"] == 'numbered') {
$endMonth = $_REQUEST['month'];
$exd = $_REQUEST['everyXdays'];
$inter = '-1';
if (($_REQUEST['everyXdays'] != '-1') && ($_REQUEST['everyXdays'] != $date1->format('d'))) {
$date1->setDate($date1->format('Y'),(int) $_REQUEST['month'],(int) $_REQUEST['everyXdays']);
}
for($date; $date->format('m') <= $endMonth; $date->add(new DateInterval('P1M'))) {
$eventDays[] = $_REQUEST['everyXdays'] < '0'
? $date->format('Y-m-t')
: $date->format('Y-m-').str_pad($_REQUEST['everyXdays'],2,"0",STR_PAD_LEFT);
}
}
です。その後、元の親はイベントの最終インスタンスに設定されます。基本的に、親は日付範囲の最後に移動し、その背後に子インスタンスを作成します。
2番目のIF文では、「everyXdays」が親の元の開始日と同じでない場合、その日を「everyXdays」と設定します。
FORループは、イベントアレイを作成するものです。 $ dateは各ループでインクリメントする元の開始日で、$ date1は最終イベントインスタンスの日付です。
関数は、それらをすべてデータベースに挿入します。私は以前に言ったように、それが他の月に設定されているときは完璧に動作するので、関数を含めません。だから私はそれが問題ではないと確信しています。
errorlogはエラーについて何を通知しますか? – RamRaider
PHP致命的なエラー:67108864バイトのメモリサイズが使い果たされました(72バイトを割り当てようとしました)本当に単なるメモリ割り当てですか?毎週繰り返すように設定することもできます。これにより、さらに多くのインスタンスが作成されます。その原因は何ですか? – arch649
はメモリリークのように見えますので、ループを見てください – RamRaider