看起来很奇怪,但我实际上需要一个将超时的PHP脚本,即:执行时间太长,以至于Apache将超时脚本并触发408错误。
这样做的目的是演示使用自定义 408 错误页面捕获 408,以向数据库报告超时。
也许您可能会建议有更好的方法来做到这一点?
如果我没记错的话,我不认为无限循环会像 Apache 500 那样工作。
编辑-------
有人指出,408是客户端错误,那么此外,如果脚本超时,Apache会触发什么错误?
我想要一个实际的例子,而不是一个合成的header()
,因为这是要向客户推销的,他们理想情况下会喜欢一个真实世界的例子。
谢谢!
如何从 php 脚本发送 408 状态代码?
<?php
header("HTTP/1.0 408 Request Timeout");
?>
或者也许
<?php
sleep(99999);
?>
<?php
while(true){
//to infinity and beyond...
}
?>
这将做到..
408 是客户端错误:
408 请求超时
客户端未在服务器准备等待的时间内生成请求。
所以你必须telnet <yourhost> 80
,只是坐下来等待。当然,如果您想以编程方式执行此操作,您可以通过fsockopen()
模拟这一点。
从代码中抛出标头也可能有效。
您不需要页面实际超时。 如果你只是在测试,你可以告诉 PHP 在标头中输出一个 408 代码:
<?php
header("HTTP/1.0 408 Request Timeout");
exit;