2012-07-15 36 views
3

客户端如何才能向服务器发送请求以触发执行,其中服务器立即发送响应,然后执行请求的代码?与此类似:如何在调用“退出”后执行剩余的PHP代码?

echo 'the execution is starting'; 
exit; 
execution_function(); // <--- is it possible to this function being executed after exit 

我希望响应是即时的,因此客户端可以在服务器执行请求时执行其他操作。

+0

你不能这样做。你必须在退出前编写函数;或者删除退出; – 2012-07-15 04:56:46

+0

http://stackoverflow.com/questions/10403521/how-do-i-implement-this-scenario-using-php – Musa 2012-07-15 04:58:20

+1

你不能在** exit之前调用函数**吗?顾名思义,调用'exit'的要点是结束当前脚本。即使有一个解决方法,它会是你不应该做的事情之一。 – 2012-07-15 04:59:57

回答

-1

这是不可能的,原因是当你调用exit函数时,PHP会停止处理任何事情。这是正常的使用方法,如果您的脚本检测到错误,并且它达到成功条件操作的可能性为零,则脚本会停止运行。

如果您希望脚本继续运行并执行某些操作,请在退出功能之前放置您希望它执行的操作。

+0

http://stackoverflow.com/questions/11491743/how-to-build-php-可触发服务 – Dagon 2012-07-15 12:40:56

8

您可以使用register_shutdown_function()设置回调函数,该函数在PHP退出时执行。

+0

thanx。我会尝试 – Dagon 2012-07-15 05:17:12

+1

+1以获得正确的答案。但请记住,这将由导致程序停止的任何事件触发,包括致命错误。这可能是也可能不是你想要的,但值得注意。 – Spudley 2012-07-15 06:08:21

+0

对不起。我会尝试它..但register_shutdown_function()执行之前退出和之前和响应 – Dagon 2012-07-15 10:43:34

0

我不认为这是可以做到的。

通常,我所做的是在另一个PHP文件中调用另一个外部脚本的exec(),并在命令结尾处输入“>/dev/null &”,然后使用exit()。

这样,在调用脚本运行时,调用exec()的脚本将不会运行。

+1

thanx。我会尝试 – Dagon 2012-07-15 05:43:27

+1

这是有效的,但如果您处理数以千计的请求,它会变得有点粘稠。 – 2012-07-15 06:01:50

+0

thanx。这是行不通的 – Dagon 2012-07-15 11:29:18

相关问题