函数: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扩展。