PHP -监听POST请求


PHP - Listen to POST request

编辑问题:我想模拟两个不同的应用程序。在第一个(脚本X)上,表单可以提交并自行处理。他还通过REST将数据发送到第二个应用程序(脚本Y)。

当前脚本Y不超过:

<?php
if(isset($_POST)) {
 deliver_response(200, "success", $_POST);
}
function deliver_response($status, $status_message, $data) {
 header("HTTP/1.1 $status $status_message");
 $response['status'] = $status;
 $response['status_message'] = $status_message;
 $response['data'] = $data;
$json_response = json_encode($response);
 echo $json_response;
}
?>

所以,当我提交脚本X时,它通过REST向脚本Y发送一些数据,上面显示了脚本Y如何处理来自脚本X的POST请求。echo正在脚本X的屏幕上显示,但我想要有第二个屏幕脚本Y,其中该echo被显示自动在它接收到来自脚本X的POST请求的时刻

我希望我把我的观点讲清楚了。脚本Y只是接收POST请求(可能仍然发送200成功),但也显示它在自己的屏幕上接收到的数据是可能的吗?如果是,你能给我一个提示吗?

不,我不希望脚本Y每隔几秒就用GET请求检查一次是否在脚本x上提交了一些新数据

提前感谢!

可以使用ajax来刷新页面。http://www.w3schools.com/ajax/default.asp

也可以用PHP

刷新Y页
header("Refresh:0");

我在前一段时间遇到了同样的情况,当时一个外部API要在托管在我们服务器上的结果URL上发送数据。我想你也有同样的问题,只是发送方和接收方都是由你托管的。

脚本Y必须有"$recieved_params= file_get_contents(php://input)"这将捕获发布到该脚本的所有内容,然后可以处理内容。

因为这个页面是由脚本调用的,而不是你的浏览器,它不会只是回显的东西,你可以重定向你的浏览器当$recieved_params不是空的。