zoukankan      html  css  js  c++  java
  • 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打印测试,匹配完美。
  • 相关阅读:
    docker安装nginx
    docker部署SpringBoot项目
    Springboot项目mysql迁移达梦数据库
    导入maven仓库中没有的jar包
    使用static binaries离线安装docker
    国产化项目Debian系Linux离线安装docker
    Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock
    http文件上传方式
    解决 Ubuntu 下 ssh 服务器中文显示乱码
    make[9]: *** No rule to make target `radiomodule.dd', needed by `libradiomodule'. Stop.
  • 原文地址:https://www.cnblogs.com/yhq-qhh/p/10961201.html
Copyright © 2011-2022 走看看