QQ登录

只需一步,快速开始

手机号码,快捷登录

手机号码,快捷登录

微信扫一扫 分享朋友圈

已有 10727 人浏览分享

开启左侧

公众号开发PHP5正常,PHP7提示服务出现故障,终于完美解决!

[复制链接]
10727 0
  最近网站更新,从PHP5直接升级到了PHP7,速度的确快了不少,但是也遇到很多莫名其妙头痛的问题,还好都解决了,现在就分享一下。
  之前通过微信公众号与网站数据进行对接,给公众留言,会根据留言的关键词搜索网站文章和帖子标题,并反馈给用户。很简单的一个功能,总共也有几百行代码,在PHP5下一点问题也没有,跑得很欢快。但是升级到PHP7后,出事了,所有对接的公众号都出现提示“该公众号提供的服务出现故障,请稍后再试”。
  怎么办?这肯定是PHP版本问题造成的。先看看PHP5里面哪些函数或方法在PHP7里被删除淘汰了。果然,PHP5支持的mysql_connect、mysql_query()这种以“mysql_”开头的函数都不能用了。只得以“mysqli_”开头的函数来替换,这很好说,批量替换嘛,几秒钟就能搞定。
  但是,解决了mysql的这个问题,发现还是提示“该公众号提供的服务出现故障,请稍后再试”,所有的代码都能跑通,用电脑访问页面也能够得到xml数据,为啥微信公众号就是不能正确反馈呢?调试了很久,还是没有发现问题所在,真是让人崩溃。
  没办法,一步一步来。一次偶然的机会,发现服务器转发的XML中FromUserName、ToUserName居然是空值。而转发的XML是通过“$GLOBALS["HTTP_RAW_POST_DATA"]”这种写法获得的,这也是官方例程的写法,在PHP7下居然无效,获取不到数据,ToUserName成了空值,当然也就无法返回消息给客户了。
  再次面向百度,发现果然是这个问题,在PHP7下,上述方法无效,只能通过“file_get_contents("php://input")”这种方法获得,当改成这个后,一切恢复正常啦!

上一篇:慈利民间老中医李先华:高血压糖尿病致病因素与治疗原则
下一篇:全长80公里投资约135亿元,湖南省拟建炉红山至慈利高速公路
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

36

关注

177

粉丝

13645

主题
精彩推荐
热门资讯
网友晒图
  • 公众号

    微信公众号

  • 微信

    站长微信

Powered by Discuz! 在此致以诚挚谢意!

CopyRight © 2011-2024 wancili.com