7

我知道我可以通过调用 exit 或 die 来中止 PHP 中的脚本。但是,我不仅想停止执行脚本,甚至不发送对某些请求的响应(导致客户端超时)。

如果有人能告诉我如何做到这一点,我将不胜感激。谢谢!

编辑:很抱歉,我不能更具体地说明我为什么要这样做,但由于项目的性质,我不能。我要说的是我正在处理一个机器人。

4

4 回答 4

3

客户端超时意味着当您发出 ajax 请求但服务器响应时间过长。如果你真的想做到这一点,我想方法是放一个大的 sleep() 语句,这样 ajax 页面就不会响应并且超时。然而,我怎么强调这不是这样做的方法,实际上它会招致未来的灾难。

理想情况下,您应该将特定响应发送回客户端,例如空白、“0”或“NULL”,然后在客户端代码中将该响应视为无响应。

如果您无法控制客户端代码,例如机器人,我会支持 Mark Ba​​ker 的评论并说发送 444,或者如果您觉得有趣,请回复 418 :)

这篇文章解释了如何使用 PHP 发送 HTTP 响应代码。

于 2013-08-14T15:02:35.353 回答
2

客户端超时?可能您想结束用户的会话,以便您可以session_destroy()在您dieexit您的脚本之前简单地使用。

同样奇怪的是,您没有通过通知重定向用户,而是结束了不友好的脚本执行。如果您愿意,您可以使用header()将用户重定向到某个页面,这可能会向他发送有关他所做的事情或他被阻止/重定向的原因的通知。

于 2013-08-14T14:58:02.403 回答
1

有同样的问题。不需要回应,什么都没有,停下来。一无所获,并使用:

posix_kill(posix_getpid(), 9);

它只是杀死了php进程。不是上帝的解决方案,但对我有用

于 2018-07-20T09:08:30.567 回答
-1

问题是当 PHP 执行时,它总是会产生一个响应......甚至echo ''会被发回。

我认为最好的方法是让脚本崩溃......

只需执行以下操作:$pdo = new PDO('unexisting_server');没有 try catch 块

于 2013-08-14T15:47:59.303 回答