我知道我可以通过调用exit或die来中止PHP中的脚本。但是,我不仅要停止执行脚本,还要发送对某些请求的响应(导致客户端超时)。
如果有人能告诉我该怎么做,我真的很感激。谢谢!
编辑:对不起,我不能更具体地说明为什么要这样做,但由于项目的性质,我不能。我要说的是我正在处理机器人。答案 0 :(得分:2)
客户端超时?您可能希望结束用户的会话,因此您只需在session_destroy()
或die
脚本之前使用exit
。
同样奇怪的是,不是通过通知重定向用户,而是结束了不友好的脚本执行。如果您愿意,可以使用header()
将用户重定向到某个页面,这可能会让他知道他做了什么或者为什么要阻止/重定向。
答案 1 :(得分:1)
客户端超时意味着您发出ajax请求但服务器响应时间过长。如果你真的想要完成这个,我想方法就是放一个大的sleep()语句,这样ajax页面就不会响应而且会超时。但是,我不能强调这是不是这样做的方式,实际上是它邀请未来的灾难。
理想情况下,您应该将特定响应发送回客户端,例如空白,或“0”或“NULL”,然后在客户端代码中将该响应视为无响应。
如果您无法控制客户端代码,例如机器人,我会选择Mark Baker的评论并说发送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块