>我需要存储通过HTTP POST发送到我的服务器的XML数据。在日志文件中,我看到数据已成功发送到我的服务器。但我不知道如何获取数据。
我试图用 php://input 流来捕捉它们,如下面的代码所示。我看到的问题是,当调用包含代码的文件时,php://input 只是被读取。
$xml = file_get_contents("php://input");
$var_str = var_export($xml, true);
file_put_contents('api-test/test.txt', $var_str);
有没有办法为 php://input 流设置某种侦听器/观察者?也许PHP是实现这一点的错误技术。有没有其他方法像AJAX?
我看到的问题是,当调用包含代码的文件时,php://input 只是被读取。
是的。
这就是PHP(在服务器端编程上下文中(的工作方式。
- 客户端向 URL 发出 HTTP 请求
- 服务器接收 HTTP 请求并确定该 URL 由特定的 PHP 程序处理(通常通过将 URL 的路径组件与目录和文件名匹配,除非正在使用前端控制器模式(
- PHP 程序被执行并可以访问请求中的数据
- 服务器将 PHP 程序的输出发回
有没有办法为 php://input 流设置某种侦听器/观察者?
每次发出请求时,您都会收到一个新流。因此,观看它的典型方法是将 PHP 脚本放在发出请求的 URL 处。
然后确保每个请求都针对同一 URL。
(如果需要支持对不同 URL 发出的请求,请查看前端控制器模式(。
也许PHP是实现这一点的错误技术。
这是处理HTTP请求的完全可接受的技术。
有没有其他方法像AJAX?
Ajax是一个流行语,意思是"使用JavaScript发出HTTP请求"。由于您正在接收请求而不是发出请求,因此 Ajax 没有帮助。