函式:LuaSandbox::setCPULimit()
適用版本:PHP 7.4.0 或更高版本
用法: LuaSandbox::setCPULimit(int $limit): void
該函式用於設定Lua沙箱的CPU使用限制。它接受一個整數引數$limit,表示CPU使用的限制時間(以秒為單位)。當Lua指令碼在沙箱中執行時,如果超過了設定的CPU限制時間,將會丟擲一個異常。
注意:在使用該函式之前,你需要先安裝並啟用Lua擴充套件。
示例:
$luaSandbox = new LuaSandbox();
// 設定CPU限制為5秒
$luaSandbox->setCPULimit(5);
try {
// 執行Lua指令碼
$luaSandbox->eval('while true do end');
} catch (LuaSandbox\TimeoutException $e) {
// 捕獲超時異常
echo '指令碼執行超時!';
}
在上面的示例中,我們建立了一個LuaSandbox例項,並使用setCPULimit函式將CPU限制設定為5秒。然後,我們執行了一個無限迴圈的Lua指令碼。由於超過了設定的CPU限制時間,eval函式將丟擲一個TimeoutException異常。我們在catch塊中捕獲該異常,並輸出一條超時提示資訊。
請注意,在使用LuaSandbox::setCPULimit()函式之前,確保已經正確安裝並啟用了Lua擴充套件。