将原始 POST XML 解析为文本字段



>我需要存储通过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(在服务器端编程上下文中(的工作方式。

  1. 客户端向 URL 发出 HTTP 请求
  2. 服务器接收 HTTP 请求并确定该 URL 由特定的 PHP 程序处理(通常通过将 URL 的路径组件与目录和文件名匹配,除非正在使用前端控制器模式(
  3. PHP 程序被执行并可以访问请求中的数据
  4. 服务器将 PHP 程序的输出发回

有没有办法为 php://input 流设置某种侦听器/观察者?

每次发出请求时,您都会收到一个新流。因此,观看它的典型方法是将 PHP 脚本放在发出请求的 URL 处。

然后确保每个请求都针对同一 URL。

(如果需要支持对不同 URL 发出的请求,请查看前端控制器模式(。

也许PHP是实现这一点的错误技术。

这是处理HTTP请求的完全可接受的技术。

有没有其他方法像AJAX?

Ajax是一个流行语,意思是"使用JavaScript发出HTTP请求"。由于您正在接收请求而不是发出请求,因此 Ajax 没有帮助。

最新更新