【问题标题】:get/read raw post data from php://input using CURL and not using file_get_contents使用 CURL 而不是使用 file_get_contents 从 php://input 获取/读取原始帖子数据
【发布时间】:2012-03-27 13:01:08
【问题描述】:

我的服务器人员禁用了所有套接字功能,并在请求他们启用 CURL 后,我正在与他们协商其他功能。

同时在我的一个代码中,我想从 php://input

读取原始帖子数据

我使用 file_get_contents("php://input") 来获取原始帖子数据,但在我的服务器中仅启用了 curl 我无法做到这一点。

所以我想知道如何使用 curl 读取原始发布的数据。

请说出你的想法。

【问题讨论】:

  • curl 用于与远程服务器通信(从 php 脚本的角度来看),它不用于读取 php 脚本/进程本身的流。
  • 不能只使用标准的超级全局数组吗?
  • @Ing 来自 php 文档:php://input 是一个只读流,允许您从请求正文中读取原始数据。对于 POST 请求,最好使用 php://input 而不是 $HTTP_RAW_POST_DATA,因为它不依赖于特殊的 php.ini 指令。此外,对于那些默认情况下不填充 $HTTP_RAW_POST_DATA 的情况,与激活 always_populate_raw_post_data 相比,它可能是一种内存密集度较低的替代方案。 php://input 不适用于 enctype="multipart/form-data"。
  • 是的,但我的意思是 $_POST 不是 $HTTP_RAW_POST_DATA
  • @Ing - 当我们发布原始帖子时,不会有任何键值对...没有查询字符串...只是数据将像 xml 内容或 json 一样发布...这个是所有网站如何发布原始帖子... http_post 和 http_raw_post 之间存在差异...所以希望我已经说清楚了

标签: php curl http-post file-get-contents


【解决方案1】:

对于与此相关的另一个问题,我有一个替代品。并且成功了。

what are the alternatives for php://input and $HTTP_RAW_POST_DATA when file_get_contents and always_populate_raw_post_data are disabled

由于 file_get_contents 被禁用并且 curl 是唯一的通信方式,我试图在 curl 中使用包装器,如 php;//输入我认为不可能,但我得到了这个替代。

所以该链接是 file_get_contents("php://input"); 的替代链接;

【讨论】:

    猜你喜欢
    • 2016-08-29
    • 1970-01-01
    • 2010-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-22
    相关资源
    最近更新 更多