当 file_get_contents 和 always_populate_raw_post_data 被禁用时,php://input 和 $HTTP_RAW_POST_DATA 的替代方案是啥
Posted
技术标签:
【中文标题】当 file_get_contents 和 always_populate_raw_post_data 被禁用时,php://input 和 $HTTP_RAW_POST_DATA 的替代方案是啥【英文标题】: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 和 always_populate_raw_post_data 被禁用时,php://input 和 $HTTP_RAW_POST_DATA 的替代方案是什么 【发布时间】:2012-04-12 01:37:57 【问题描述】:我的主机组合禁用了除 curl 之外的所有套接字功能。他们对我启用它的问题如此不负责任。我可以想到另一个托管但我想知道以下内容。
我已经问过一个与此相关的问题,这是一个继续的另一个问题。
我无法使用 file_get_contents('php://input') 并且 always_populate_raw_post_data 在 php.ini 中被禁用,因此我无法使用 $HTTP_RAW_POST_DATA。
那么获取原始帖子数据的替代方法是什么。
例如,我在 facebook 上设置了通知回调 url。因此,一旦有事件发生,facebook 就会将信息发布到我网站的特定 url。
所以我需要从 facebook 读取原始帖子数据,根据上面的描述,我想知道 php://input 和 $HTTP_RAW_POST_DATA 的替代方案。
当一些正文发布到我的网站(包括标题)时,是否可以读取全部内容,以便我可以剥离标题部分并可以使用文章的正文?
是的……当一些body发布任何内容时,我们可以得到完整的内容。
【问题讨论】:
【参考方案1】:当file_get_contents()
被禁用时,您可以使用PEAR::PHP_Compat 的强大功能。它包含file_get_contents()
的替换。
只需download the latest package,将其提取出来并像这样使用它:
require_once '/path/to/PHP_Compat-1.6.0a3/Compat/Function/file_get_contents.php';
$content = php_compat_file_get_contents('http://example.com');
【讨论】:
哈利路亚,eeswaraa ......这工作......哈哈...... semma。谢谢你的信息。 PEAR 包检查实现目标的所有可能方式。如果某些内容受到限制或使用旧版本的 PHP,还有许多其他功能非常有用。以上是关于当 file_get_contents 和 always_populate_raw_post_data 被禁用时,php://input 和 $HTTP_RAW_POST_DATA 的替代方案是啥的主要内容,如果未能解决你的问题,请参考以下文章
php 评估后的 PHP file_get_contents
如何解决file_get_contents()函数运行时间过长的问题? - 技术问答
如何处理 PHP 中 file_get_contents() 函数的警告?