0

しばらく時間がかかる可能性があり、5 分後に中断されるはずのシェル コマンドを呼び出しています。とにかく、これはうまくいかないようです。

私はそれを次のテストコードに煮詰めました:

<?php

set_time_limit(1);
echo 'TL = ' . set_time_limit(1) . PHP_EOL;
sleep(5);
echo 'finished, not interrupted';

これにより、次の出力が得られます。

TL = 1 finished, not interrupted

したがって、制限時間は適切に設定されているように見えますが、スクリプトはまだ 5 秒間実行されます。

mod_phpでPHPバージョン5.6.11を使用しています

4

2 に答える 2

1

PHP の時間制限は、プログラムが実際に実行されている場合にのみ適用されます。マニュアルによると、sleep遅延は必ずしもそのようにカウントされません。

注: set_time_limit() 関数と構成ディレクティブ max_execution_time は、スクリプト自体の実行時間にのみ影響します。system() を使用したシステム コール、ストリーム操作、データベース クエリなど、スクリプトの実行以外で発生するアクティビティに費やされた時間は、スクリプトの最大実行時間を決定する際には含まれません。これは、測定時間が実数である Windows では当てはまりません。

于 2015-11-19T15:10:20.040 に答える
1

に費やされた時間はsleep、スクリプトの実行時間にはカウントされません。

于 2015-11-19T15:10:23.543 に答える