升级PHP7导致的sitemap.xml无法更新问题解决记录

2017年11月1日13:28:12 3 935 views
本文最后更新于2017年11月1日,已超过 1 年没有更新,如果文章内容或图片资源失效,请留言反馈,我们会及时处理,谢谢!

问题

升级PHP7之后,点击wordpress后台Baidu Sitemap插件中的“update xml file”后没有效果,且网页空白,通过F12大法查看到有文件500错误

 

解决-日志查看

首先监控apache的该站点错误日志,刷新页面重新提交,查看是否有错误日志刷新

刷新后无新日志生成,则该错误不是apache问题导致

 

监控PHP日志

可以清楚的看到网页刷新后,PHP报出了不支持的函数类型错误,查看该对应的PHP文件,并修改split函数

定位至439行

再次尝试更新xml文件

 

总结

通过相关资料查看后得知:

PHP 的 split()非常方便, 但是 PHP 5.3.0 后,不建议再使用 split(), 在使用上会出现警告信息,甚至错误。

所以下述是不建议使用的 Function (POSIX), 与建议替换成的 Function (PCRE) 列表

  • POSIX → PCRE
  • ereg_replace() → preg_replace()
  • ereg() → preg_match()
  • eregi_replace() → preg_replace()
  • eregi() → preg_match()
  • split() → preg_split()
  • spliti() → preg_split()
  • sql_regcase() → No equivalent

PHP split() 替代方案

  • 需要 regex 的 split, 可用 preg_split ()代替
  • 不需要 regex, 只要要快速分割固定的字串, 可用 explode()代替. (速度会比需要 regex 的快很多)

  • 微信小程序
  • 关注微信小程序
  • weinxin
  • 微信公众号
  • 关注微信公众号
  • weinxin
Honest1y

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:3   其中:访客  2   博主  1

    • avatar 福利车 1

      感谢博主 搞定了

        • avatar Wangxiao 博主

          @福利车 :wink:

            • avatar 福利车 1

              @Wangxiao 发现个问题 发布文章不会自动更新 地图