php,if(empty($title)) {, $title = '默认标题';,},
“,,这样当标题为空时,会自动使用默认标题。在PHP 5.4环境下使用DedeCMS时,可能会遇到标题不能为空或中文修改显示空白的问题,这通常是由于PHP 5.4中的htmlspecialchars
函数默认使用UTF8编码导致的,当GBK编码的字符串经过该函数转义后,中文字符串会变为空,从而引发标题不能为空的错误提示。
解决方案
方法一:修改文件编码格式
1、修改dede/article_add.php和dede/article_edit.php文件
打开这两个文件,找到以下代码:
“`php
$title = htmlspecialchars(cn_substrR($title,$cfg_title_maxlen));
“`
将其修改为:
“`php
$title = htmlspecialchars(cn_substrR($title,$cfg_title_maxlen), ENT_COMPAT, ‘GB2312’);
“`
2、修改include/ckeditor/ckeditor_php5.php文件
打开该文件,找到以下代码(大约在第138行):
“`php
htmlspecialchars($value)
“`
将其修改为:
“`php
htmlspecialchars($value, ENT_COMPAT, ‘GB2312’)
“`
3、修改include/FCKeditor/fckeditor.php文件(如使用fckeditor)
打开该文件,找到以下代码(大约在第76行):
“`php
$HtmlValue = htmlspecialchars($this>Value);
“`
将其修改为:
“`php
$HtmlValue = htmlspecialchars($this>Value, ENT_COMPAT, ‘GB2312’);
“`
4、修改系统基本参数输入中文后显示空白问题
打开dede/templets/sys_info.htm文件,搜索以下代码:
“`php
htmlspecialchars($row[‘value’])
“`
将其修改为:
“`php
htmlspecialchars($row[‘value’], ENT_COMPAT, ‘GB2312’)
“`
方法二:更新到官方修复版本
如果不想手动修改文件,可以考虑将DedeCMS更新到20160726后的官方修复版本,这个版本已经解决了PHP 5.4下的编码问题。
相关问答FAQs
Q1: 为什么在PHP 5.4下会出现标题不能为空的问题?
A1: 这是因为PHP 5.4中的htmlspecialchars
函数默认使用UTF8编码,当GBK编码的字符串经过该函数转义后,中文字符串会变为空,从而引发标题不能为空的错误提示。
Q2: 如果我不想手动修改文件,还有其他解决方法吗?
A2: 是的,你可以选择将DedeCMS更新到20160726后的官方修复版本,这个版本已经解决了PHP 5.4下的编码问题。
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1111007.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复