5

这可能看起来很奇怪,但我实际上需要一个会超时的 PHP 脚本,即:花很长时间执行 Apache 会超时脚本并触发 408 错误。

这样做的目的是演示使用自定义 408 错误页面捕获 408 以向数据库报告超时。

您可能会建议有更好的方法来做到这一点?

如果我没记错的话,我认为无限循环不会像 Apache 500 那样工作。

编辑 - - - -

已经指出 408 是客户端错误,那么此外,如果脚本超时,Apache 会触发什么错误?

我想要一个实际的例子而不是一个综合的例子,header()因为这是向客户推销的,理想情况下他们会喜欢一个真实的例子。

谢谢!

4

4 回答 4

4

从 php 脚本发送 408 状态码怎么样?

<?php
  header("HTTP/1.0 408 Request Timeout");
?>

也许

<?php 
  sleep(99999);
?>
于 2012-05-14T14:36:55.070 回答
3
<?php
    while(true){
        //to infinity and beyond...
    }
?>

这会做到的。。

于 2014-01-28T09:01:55.333 回答
2

408 是客户端错误

408 请求超时

在服务器准备等待的时间内,客户端没有产生请求。

所以你必须telnet <yourhost> 80坐下来等待。当然,fsockopen()如果您想以编程方式执行此操作,您可以模拟此操作。

从代码中抛出标题也可能有效。

于 2012-05-14T14:38:53.920 回答
1

您不需要页面实际超时。如果你只是在测试,你可以告诉 PHP 在 header 中输出一个 408 代码:

<?php
header("HTTP/1.0 408 Request Timeout");
exit;
于 2012-05-14T14:37:32.450 回答