美文网首页
2019-10-13一个php7获取POST数据的坑

2019-10-13一个php7获取POST数据的坑

作者: catlas | 来源:发表于2019-10-13 19:00 被阅读0次

    自己用微信公众号搭建了一个查单词的消息响应接口,升级php7之后发现用不了了,发送过去没有任何回应。

    用微信自带的调试工具试了试,提示

    $postStr = $GLOBALS["HTTP_RAW_POST_DATA"];

    语句中的HTTP_RAW_POST_DATA键不存在。改为

    $postStr = $_POST;

    发现根本没有获取到post数据,搜了半天发现一篇文章中提示要改为:

    $postStr = file_get_contents("php://input");

    修改后,一切恢复正常

    引用:

    //传统获取方式

    $postStr = $GLOBALES['HTTP_RAW_POST_DATA'];

    //php7之后取消了HTTP_RAW_POST_DATA方式获取 应改为

    $postStr = file_get_contents("php://input");

    //扩展一下

    /**

    $_POST: 常用于application/x-www.form-urlencoded方式的数据提交 如 表单提交 文件上传

    file_get_contents("php://input"): 常用于非enctype="multipart/form-data"的数据提交

    HTTP_RAW_POST_DATA: 常用于无法识别的数据格式,如能被$_POST识别 这这里取不到值。

    设置 php.ini 中的 always_populate_raw_post_data 值为 On 才会生效

    php7之后不支持。

    终上: 关联数组键值对方式提交的数据 使用$_POST $_POST无法获取时,

    使用php://input

    **/

    相关文章

      网友评论

          本文标题:2019-10-13一个php7获取POST数据的坑

          本文链接:https://www.haomeiwen.com/subject/wwdkmctx.html