我正在编写一个服务器发布给我们的脚本,我们发布到服务器,理论上应该从服务器接收响应并回复给发布给我们的服务器。但是有时我发布的服务器没有响应。最大的问题是发布给我们的服务器会假设交易成功完成,除非它听到其他情况。所以基本上我需要一种方法来将响应发送回第一台服务器,如果我从未收到我发布到的服务器的回复。我认为 register_shutdown_function 可以为我工作,但我不知道如何设置它,所以它只会在错误或其他情况下运行。
提前致谢
register_shutdown_function()
应该为你工作。只需使用全局变量来确定远程服务器是否响应:
<?php
function on_shutdown () {
if (!$GLOBALS['complete']) {
// Handle server not responding here
}
}
// Suppress "FATAL ERROR" message when time limit reached
error_reporting(0);
$complete = FALSE;
register_shutdown_function('on_shutdown');
// Code which posts to remote server here
$complete = TRUE;
这意味着$complete
如果发布到远程服务器的代码没有完成,这仍然是错误的,因此您只需检查$complete
关闭时触发的函数的真实性。