可以在收到所有 POST 数据之前启动 PHP 脚本吗?

Posted

技术标签:

【中文标题】可以在收到所有 POST 数据之前启动 PHP 脚本吗?【英文标题】:Can a PHP script start before all POST data is received? 【发布时间】:2011-04-26 03:09:51 【问题描述】:

我在 Apache 下运行 php,我想向页面发送缓慢的 POST 数据,当 POST 数据到达时,该页面将消息写入数据库。我正在使用 WebRequest 从 .NET 应用程序发送数据,并将 SendChunked 设置为 true。

不幸的是,在所有 POST 数据到达之前,PHP 脚本似乎不会开始执行。我查看了 apache 日志,发现请求立即开始,但 PHP 脚本中的 echo strftime(...) 语句显示它直到收到所有 POST 数据后才运行。

有没有办法让 PHP 立即启动?我尝试在 PHP.ini 文件中设置always_populate_raw_post_data = Off,但这没有任何区别。我的请求的内容类型为application/octet-stream,而$HTTP_RAW_POST_DATA 仍然填充了所有的POST 数据。

【问题讨论】:

【参考方案1】:

您可以使用 HTTP PUT 方法执行此操作,但不能使用 POST。

当客户端使用 PUT 动词时,数据会流式传输到 PHP。可以通过php:://input流逐字节访问,因为它是从客户端发送过来的。

【讨论】:

以上是关于可以在收到所有 POST 数据之前启动 PHP 脚本吗?的主要内容,如果未能解决你的问题,请参考以下文章

用php访问json post数据

使用 PHP 将数据插入 MySQL 数据库时出现问题

php 在页脚之前添加Instagram的小部件区域。

php 页脚之前的Hook Newsletter小部件区域。

php 页脚之前的Hook Newsletter小部件区域。

php 在页脚之前添加Instagram的小部件区域。