php升级到5.4后,dedecms后台文本编辑器为空的问题
2015-01-15 15:52
489 查看
调试跟踪跟踪,就会发现,数据库读取是没问题的
也不关ckeditor的事,问题出在htmlspecialchars上,
估计很多国内的php系统都会遇到这个问题
解决方案:
1.苦逼的修改所有用到htmlspecialchars地方的程序
1.1 其第二个$flags参数,默认是ENT_COMPAT,因此改成
htmlspecialchars($str,ENT_COMPAT,'GB2312');
为什么不是GBK?因为没有GBK这个参数,如果强行使用GBK,则报错给你看:
Warning: htmlspecialchars(): charset `gbk' not supported, assuming utf-8
为了能使用GBK,则改成:
htmlspecialchars($str,ENT_COMPAT,'ISO-8859-1');
1.2.一样是改程序,但可以省略一个参数。
可以在网页头部加
ini_set('default_charset','gbk');
然后改成
htmlspecialchars($str,ENT_COMPAT,'');
文档中有写:An empty string activates detection from script encoding (Zend multibyte), default_charset and current locale (see nl_langinfo() and setlocale()), in this
order. Not recommended.
大概意思就是:传入空字符串则使用default_charset的编码
1.3.封装一个函数吧...本来htmlspecialchars这个单词一直不好记。
function htmlout($str) {
return htmlspecialchars($str,ENT_COMPAT,'ISO-8859-1');
}
然后去批量替换
1.4 封装一个函数,批量替换
function toHtmlChars($sHtml)
{
static $maEntities = array ('&' => '&', '<' => '<', '>' => '>', '\'' => ''', '"' => '"', "\n"=>'<br />', ' '=>' ');
return strtr($sHtml, $maEntities);
}
也不关ckeditor的事,问题出在htmlspecialchars上,
估计很多国内的php系统都会遇到这个问题
解决方案:
1.苦逼的修改所有用到htmlspecialchars地方的程序
1.1 其第二个$flags参数,默认是ENT_COMPAT,因此改成
htmlspecialchars($str,ENT_COMPAT,'GB2312');
为什么不是GBK?因为没有GBK这个参数,如果强行使用GBK,则报错给你看:
Warning: htmlspecialchars(): charset `gbk' not supported, assuming utf-8
为了能使用GBK,则改成:
htmlspecialchars($str,ENT_COMPAT,'ISO-8859-1');
1.2.一样是改程序,但可以省略一个参数。
可以在网页头部加
ini_set('default_charset','gbk');
然后改成
htmlspecialchars($str,ENT_COMPAT,'');
文档中有写:An empty string activates detection from script encoding (Zend multibyte), default_charset and current locale (see nl_langinfo() and setlocale()), in this
order. Not recommended.
大概意思就是:传入空字符串则使用default_charset的编码
1.3.封装一个函数吧...本来htmlspecialchars这个单词一直不好记。
function htmlout($str) {
return htmlspecialchars($str,ENT_COMPAT,'ISO-8859-1');
}
然后去批量替换
1.4 封装一个函数,批量替换
function toHtmlChars($sHtml)
{
static $maEntities = array ('&' => '&', '<' => '<', '>' => '>', '\'' => ''', '"' => '"', "\n"=>'<br />', ' '=>' ');
return strtr($sHtml, $maEntities);
}
相关文章推荐
- DedeCMS 5.7 升级 php版本 到 php 5.4 后出现 后台不能显示,标题不能为空解决办法。
- 让DedeCMS完美兼容PHP5.4 解决织梦后台空白问题
- 解决更换PHP5.4以上版本后Dedecms后台登录空白问题的方法
- 解决更换PHP5.4以上版本后Dedecms后台登录空白问题的方法
- php5.4 dedecms后台登录空白怎么办
- DedeCMS不支持PHP5.3、5.4及以上版本后台500错误白屏的解决方法
- dedecms后台内容维护一片空白,php7下使用dedecms织梦坑太多大家升级要小心
- DedeCMS不支持PHP5.3、5.4及以上版本后台500错误白屏的解决方法
- php5.4升级遇到的兼容性问题
- DEDEcms 在php5.4以上 后台登录空白解决办法
- dedecms5.7不兼容php5.4导致登录后台出现空白
- 更换PHP 5.4以上版本后Dedecms后台登录空白的解决方法
- PHP 5.4 中经 htmlspecialchars 转义后的中文字符串为空,DeDeCMS在PHP5.4下编辑器中文不显示问题
- php5.4 dedecms后台登录之后显示500错误解决方法
- DedeCMS不支持PHP5.3、5.4及以上版本后台500错误白屏的解决方法
- PHP 5.4 中经 htmlspecialchars 转义后的中文字符串为空,DeDeCMS在PHP5.4下编辑器中文不显示问题
- 更换PHP 5.4以上版本后Dedecms后台登录空白的解决方法
- php5.4环境下DedeCMS登录退出后台空白的解决办法汇总
- 更换PHP 5.4以上版本后Dedecms后台登录空白的解决方法
- 升级到php5.4:织梦cms安装完成后登录后台出现空白解决办法