$seconds = 0:移除時間限制(無限執行)。$seconds > 0:設定最大執行秒數。
set_time_limit() 無效。php.ini 設定 max_execution_time 為硬性限制(搭配 disable_functions 禁用 set_time_limit),則無法調整。max_execution_time = 0(無限制)。 100 * 1024 * 1024) {
gc_collect_cycles();
}
}
query('SELECT * FROM large_table');
while ($row = $stmt->fetch()) {
set_time_limit(30); // 每筆重置 30 秒
heavyProcess($row);
}
Web 請求受限於 HTTP 超時、Proxy 超時、瀏覽器超時,長任務建議:
set_time_limit() 可動態調整/移除執行時間限制,每次呼叫重置計時器。Web 環境受多層超時限制,**長任務首選 CLI + 佇列架構**。僅在無法避免的同步長請求中使用 set_time_limit(0) 搭配 ignore_user_abort(true)。