destoon采集论坛

 找回密码
 立即注册
查看: 184|回复: 1

PHP5.4下面中文错误(htmlspecialchars)

[复制链接]

5

主题

12

回帖

51

积分

注册会员

Rank: 2

积分
51
发表于 2013-11-24 18:56:02 | 显示全部楼层 |阅读模式
本帖最后由 Tigerlover 于 2013-11-24 19:45 编辑

由于php5.4下面htmlspecialchars函数的3个参数都需要才行,所以DT在php5.4下面时候很多参数无法保存,希望下次更新的时候考虑下这个问题。毕竟现在php5.4已经快成主流了
回复

使用道具 举报

14

主题

24

回帖

106

积分

注册会员

Rank: 2

积分
106
发表于 2015-1-4 09:37:15 | 显示全部楼层

本帖最后由 sydabing 于 2015-1-4 10:00 编辑

最新调整办法,希望官方测试,希望官方出完美解决方案
include/safe.func.php 下面替换此函数 欢迎交流QQ9385126

function dhtmlspecialchars($string, $flags = null) {
    if(is_array($string)) {
        foreach($string as $key => $val) {
            $string[$key] = dhtmlspecialchars($val, $flags);
        }
    } else {
        if($flags === null) {
            $string = str_replace(array('&', '"', ''), array('&', '"', '<', '>'), $string);
            if(strpos($string, '&#') !== false) {
                //过滤掉类似&#x5FD7的16进制的html字符
                $string = preg_replace('/&((#(\d{3,5}|x[a-fA-F0-9]{4}));)/', '&\\1', $string);
            }
        } else {
            if(PHP_VERSION  $val) { $string[$key] = dhtmlspecialchars($val); }
    }
    else
        {
       $string = str_replace(array('&', '"', ''), array('&', '"', '<', '>'), $string);
        if(strpos($string, '&#') !== false)
                {
                //过滤掉类似&#x5FD7的16进制的html字符
           $string = preg_replace('/&((#(\d{3,5}|x[a-fA-F0-9]{4}));)/', '&\\1', $string);
        }
    }
         return $string;
}
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|Archiver|destoon采集论坛

GMT+8, 2025-11-23 06:48 , Processed in 0.014372 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表