web-dev-qa-db-ja.com

特にexec()の最大実行時間を設定します

exec($command)関数の最大実行時間を設定することはできますか? _$command_の実行が長すぎて、1分後に停止し、次のエラーが表示されることがあります。

致命的なエラー:51行目のC:\ xampp\htdocs\files.phpで最大実行時間が60秒を超えました

exec()コマンドの最大実行時間を増やすにはどうすればよいですか?

_    if (allow()) {
    exec($command);

    if (file_exists($file)) {
        //exec($makeflv);
        echo '<script language="javascript" type="text/javascript">window.top.window.aviout(1);</script>';

    } else {
        echo $error;
        }

} else {
   echo $error;
   }
_
11
robert

http://php.net/manual/en/function.set-time-limit.php を参照してください

set_time_limit($seconds)

$second0に設定されている場合、時間制限は課されません。時間制限を完全に削除する場合は注意が必要です。無限ループがすべてのサーバーリソースをゆっくりと消費することは望ましくありません。上限、例: 180は無制限よりも優れています。

または、コードの特定のブロックに対してのみ時間設定を調整し、タイムクリティカルなコードが実行された後に時間制限をリセットすることもできます。

$default = ini_get('max_execution_time');
set_time_limit(1000);
... some long running code here ...
set_time_limit($default);
21
Gordon

.htaccess次の値を設定できます。

php_value max_execution_time 1000000
php_value max_input_time 1000000

PHPスクリプトの先頭でこれを試すこともできます:

set_time_limit(0);
4
John Conde

次のように ini_set() を使用できます。

ini_set('max_execution_time', 0);

これを0に設定すると、 iniディレクティブのドキュメント に従ってスクリプトが永久に実行されます。

3
soulmerge