• phpcms


    最近将phpcmsV9升级至php7.1,中间踩过一些坑,这里列出来给大家参考下。

    1. 迁移至php7.1+mysql5.6+nginx的修改项目
    已修改 : /phpcms/libs/classes/checkcode.class.php
    已修改 : /phpcms/libs/classes/db_factory.class.php
    已增加 : /phpcms/libs/classes/db_mysqli.class.php
    已修改 : /phpcms/libs/classes/model.class.php
    已修改 : /phpcms/libs/classes/template_cache.class.php
    已修改 : /phpcms/libs/classes/update.class.php
    已修改 : /phpcms/libs/functions/global.func.php
    已修改 : /phpcms/modules/admin/cache_all.php
    已修改 : /phpcms/modules/content/fields/editor/output.inc.php
    已修改 : /phpcms/modules/content/fields/title/output.inc.php
     
    2. 函数htmlspecialchars()在php7下严格校验编码,导致空白,修改为new_html_special_chars()方法:
    已修改 : /phpcms/modules/content/fields/content_form.class.php
    已修改 : /phpcms/modules/content/fields/omnipotent/field_edit_form.inc.php
    已修改 : /phpcms/modules/content/fields/textarea/field_edit_form.inc.php
    已修改 : /phpcms/modules/yp/fields/omnipotent/field_edit_form.inc.php
    已修改 : /phpcms/modules/yp/fields/textarea/field_edit_form.inc.php
    已修改 : /phpcms/modules/yp/fields/title/output.inc.php
    已修改 : /phpcms/modules/yp/fields/yp_form.class.php
    所有以上修改/增加的文件,均在下面压缩包中,建议下载后对比查看,不建议直接替换;
     
    phpcmsV9升级php7修改文件 [点击直接下载]
     
    其中global.func.php仅修改不可替换,请自行对比文件改动的地方;
     
    3.修改database.php的type值为mysqli;
    注意事项:
    A.php7.1对函数参数个数严格校验,对函数形参一定要赋默认值,否则直接Fatal error: Uncaught ArgumentCountError: Too few arguments to function;
    B.htmlspecialchars严格编码,以前在php5.2下正常使用的,需要修改为 new_html_special_chars() 具体函数定义见 global.func.php;
    C.数据库5.6对老版本5.0的listorder-1问题,将字段设置为有符号即可;
    D.伪静态规则升级,与httpd.ini变化不太大,需要逐条测试;
    E.MySQL函数mysql_在php7中废弃,代之以mysqli_函数;
     
    伪静态rewrite规则而升级遇到一个坑,就是中文url的问题,我是这么解决的:
    1
    2
    3
    4
    #tags
    rewrite ^(.*)/tags/?([A-Za-z]?)/(?:page([0-9]+))?/?$ $1/index.php?m=tags&c=index&a=init&letter=$2&page=$3 last;
    rewrite ^(.*)/tags/?(?:page([0-9]+))?/?$ $1/index.php?m=tags&c=index&a=init&page=$2 last;
    rewrite ^(.*)/tags/([^/.]+)/?(?:page([0-9]+))?/?$ $1/index.php?m=tags&c=index&a=init&tag=$2&page=$3 last;
    重点看第三条,直接匹配tags/后的所有字符,然后让前两条规则优先,解决冲突的问题;经过GET打印测试,匹配完美。
  • 相关阅读:
    引领5G行业化,广和通荣获“IoT创新大奖”
    Win知识
    物联网通信方式
    萌新配置rip动态路由实验
    FPGA设计经验总结
    UWB定位技术
    REST简介
    linux性能调优总结
    Nginx安装及启动
    leetcode 精选top面试题
  • 原文地址:https://www.cnblogs.com/yhq-qhh/p/10961201.html
Copyright © 2020-2023  润新知