升级PHP7后微信公众号开发中关于 $GLOBALS["HTTP_RAW_POST_DATA"]失效问题总结
导读:
这几天在做微信公众号开发这块,原来可以用的代码,现在不能用了,收不到用户回复,一直提示服务器故障。
经过在网上查询发现 php >= 5.6 的时候 HTTP_RAW_POST_DATA 被移除了。但是 php = 5.6 可以在配置文件 php.ini 还能找到 always_populate_raw_post_data 选项。当 php >= 7.0 就已经彻底移除了 always_populate_raw_post_data 配置。
php = 5.6 放开 always_populate_raw_post_data = -1 配置(不建议这样做),原来版本是PHP5.6,初始的配置文件 always_populate_raw_post_data = -1 是被注释的,去掉前面的 ; 分号就行了。但是再次运行你会发现报一个 warning 的错误,但程序还是会执行的。自己写的程序怎么能允许出现 warning 级别的错误呢,notice 的级别错误都不应该出现的。
使用 get_file_contents(“php://input”) 方式。代码:
$xml = get_file_contents("php://input");
var_dump($xml);
POST提交后端接收介绍
HTTP中的POST方式传递的数据类型是多种多样的,比如说 text/xml,soap等等
PHP默认情况下只能识别 application/x-www.form-urlencoded 数据类型(标准数据类型),对于这种数据类型的数据,直接通过 $_POST 系统函数就可以获取的到。但是对于不满足上述数据类型的数据,使用 $_POST 是获取不到的。
PHP获取非 application/x-www.form-urlencoded 数据类型的数据的时候,需要通过php提供的 $GLOBALS['HTTP_RAW_POST_DATA'] 或者 file_get_contents("php://input") 的方式进行获取(这两种获取数据的方式只能获取非标准数据类型的数据,并不能获取标准数据类型的数据)
file_get_contents("php://input") 与 $GLOBALS['HTTP_RAW_POST_DATA'] 获取到的数据其实是一样的,两者之间的区别在与 $GLOBALS['HTTP_RAW_POST_DATA'] 依赖 php.ini 中额外的设置,并且系统资源占用高,推荐使用 php://input 的方式进行数据的获取
相关推荐
记录一个合成图片插件html2canvas.js(JS前端开发)
本文记录一个前端开发中端常用的合成图片插件(html2canvas.js),在H5开发中,我们经常会遇上动态生成海报的需求,而在Web前端中,生成图片非Canvas莫属。html2canvas.js就…
2022-05-23 20:29:09 | 分类:JS | 作者:myerob | 阅读:873 | 标签:合成 图片 插件 html2canvas.js JS 前端 开发 | 收藏
记录一个前端生成二维码的插件jquery.qrcode.js(JS前端开发)
本期记录一个非常实用的前端动态生成二维码的插件jquery.qrcode.js,jquery.qrcode.js是一个能够在客户端生成矩阵二维码QRCode的jquery插件,使用它可以很方便的在页面…
2022-05-23 21:02:27 | 分类:JS | 作者:myerob | 阅读:238 | 标签:前端 二维码 插件 jqueryqrcode JS 前端 开发 | 收藏
- 阅读榜
- 1. 概率统计学中95%置信区间的系数1.96怎么得到的?
- 2. 主席令13届第89号《中华人民共和国印花税法》
- 3. BCD码的定义以及其与十进制数据转换方法(附验证工具)
- 4. linux主机ssh命令来查看某一端口是否开放
- 5. 什么情况下免征教育附加税,地方教育附加税?两附加费优惠政策
- 6. 离职员工申报个税删不掉 显示存在收入明细,若该人员已离职或退休,请将人员状态改为非正常。可改为非正常后还是不行
- 7. 记录一个非常实用的前端拖拽插件interact.js(JS前端开发)
- 8. NTC热敏电阻B值3950(温度系数对照表)
- 9. h3c交换机乱码怎么弄(h3c 配置备份报错)如何修改交换机字符集?
- 10. php页面最大执行时间 set_time_limit函数不起作用