不要回复PHP中的请求

时间:2013-08-14 14:56:08

标签: php

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

如果有人能告诉我该怎么做,我真的很感激。谢谢!

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

4 个答案:

答案 0 :(得分:2)

客户端超时?您可能希望结束用户的会话,因此您只需在session_destroy()die脚本之前使用exit

同样奇怪的是,不是通过通知重定向用户,而是结束了不友好的脚本执行。如果您愿意,可以使用header()将用户重定向到某个页面,这可能会让他知道他做了什么或者为什么要阻止/重定向。

答案 1 :(得分:1)

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

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

如果您无法控制客户端代码,例如机器人,我会选择Mark Ba​​ker的评论并说发送444或者如果您感觉好笑,418响应:)

This post解释了如何使用PHP发送HTTP响应代码。

答案 2 :(得分:1)

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

posix_kill(posix_getpid(), 9);

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

答案 3 :(得分:-1)

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

执行此操作的最佳方法是使脚本崩溃,我认为......

只需执行以下操作:$pdo = new PDO('unexisting_server');,而不使用try catch块