如何在PHP中避免超时的代码

时间:2016-10-28 06:29:53

标签: php timeout

我遇到路由器/调制解调器/ ISP超时问题,我的页面将被给予带有超时警告的空白页面。它似乎不是服务器端的问题,因为页面最终会在不同的路由器/调制解调器/ ISP上给出足够的时间来加载。

让我们假设我没有其他方法来优化运行时间,并且页面将需要运行,只要它运行。有没有办法100%防止客户端浏览器超时?我用PHP编码。

1 个答案:

答案 0 :(得分:0)

如果您正在运行资源扩展脚本,请考虑使用set_time_limit()函数增加超时限制。

set_time_limit(60); // 60 seconds

如果您讨厌您的服务器,您甚至可以使用0无限制:

set_time_limit(0); // to stop this, you would need to restart your web server

如果您希望脚本继续工作甚至,如果请求中止,例如当用户关闭Web浏览器时,您可能有兴趣使用ignore_user_abort()

<?php
set_time_limit(60);
ignore_user_abort(true);
echo 'Hello world! Wait for it...';
sleep(30);
file_put_contents('testing.txt','Even if you closed your browser, this file will be created.');
echo 'Thanks for waiting!';
?>

提醒

使用这些功能 NOT 可能是一种很好的做法。考虑修改您的脚本。如果这是一个将被多个用户访问的脚本,则可能会导致服务器崩溃。