我知道我可以通过调用 exit 或 die 来中止 PHP 中的脚本。但是,我不仅想停止执行脚本,甚至不发送对某些请求的响应(导致客户端超时)。
如果有人能告诉我如何做到这一点,我将不胜感激。谢谢!
编辑:很抱歉,我不能更具体地说明我为什么要这样做,但由于项目的性质,我不能。我要说的是我正在处理一个机器人。
我知道我可以通过调用 exit 或 die 来中止 PHP 中的脚本。但是,我不仅想停止执行脚本,甚至不发送对某些请求的响应(导致客户端超时)。
如果有人能告诉我如何做到这一点,我将不胜感激。谢谢!
编辑:很抱歉,我不能更具体地说明我为什么要这样做,但由于项目的性质,我不能。我要说的是我正在处理一个机器人。
客户端超时意味着当您发出 ajax 请求但服务器响应时间过长。如果你真的想做到这一点,我想方法是放一个大的 sleep() 语句,这样 ajax 页面就不会响应并且超时。然而,我怎么强调这不是这样做的方法,实际上它会招致未来的灾难。
理想情况下,您应该将特定响应发送回客户端,例如空白、“0”或“NULL”,然后在客户端代码中将该响应视为无响应。
如果您无法控制客户端代码,例如机器人,我会支持 Mark Baker 的评论并说发送 444,或者如果您觉得有趣,请回复 418 :)
这篇文章解释了如何使用 PHP 发送 HTTP 响应代码。
客户端超时?可能您想结束用户的会话,以便您可以session_destroy()
在您die
或exit
您的脚本之前简单地使用。
同样奇怪的是,您没有通过通知重定向用户,而是结束了不友好的脚本执行。如果您愿意,您可以使用header()
将用户重定向到某个页面,这可能会向他发送有关他所做的事情或他被阻止/重定向的原因的通知。
有同样的问题。不需要回应,什么都没有,停下来。一无所获,并使用:
posix_kill(posix_getpid(), 9);
它只是杀死了php进程。不是上帝的解决方案,但对我有用
问题是当 PHP 执行时,它总是会产生一个响应......甚至echo ''
会被发回。
我认为最好的方法是让脚本崩溃......
只需执行以下操作:$pdo = new PDO('unexisting_server');
没有 try catch 块