Tigerlover 发表于 2013-11-24 18:56:02

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

本帖最后由 Tigerlover 于 2013-11-24 19:45 编辑

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

sydabing 发表于 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{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{4}));)/', '&\\1', $string);
      }
    }
         return $string;
}
页: [1]
查看完整版本: PHP5.4下面中文错误(htmlspecialchars)