1. caches/caches_model/caches_data/content_output.class.php(原始代码文件为modules/content/fields/title/output.inc.php)的title函数中利用了htmlspecialchars对标题进行转义, 但这个函数利用时要指定编码(默认为utf-8),而phpcms并没有指定此编码,导致php以utf-8解析gbk标题,从而导致标题为空。
如果是utf-8版本的phpcms,则不存在这个问题。
利用以下方法办理这个问题:
1. 修正 modules/content/fields/title/output.inc.php,将第二行修正为
$value = htmlspecialchars($value, null, 'gb2312');
2.更新全站缓存
3. 重新天生所有内容页
一起来看一篇关于phpcms文章内容不显示即htmlspecialchars导致中文丢失问题的办理办法,如果你帮到这类问题可以参考本文章来试着办理了。
phpcms2008sp4的gbk版本在后台编辑文章时创造标题、内容等不显示,
phpcms2008sp编辑内容不显示
经排查创造phpcms2008sp4在处理文章信息时利用的即htmlspecialchars参数问题导致了中文丢失(在php5.4/5.5版本需补全参数)。直策应用htmlspecialchars($data[$field], ENT_QUOTES)返回空值,没有作任何处理。
办理方法:
在 data\cache_model\content_form.class.php中查找
$value = isset($data[$field]) ? htmlspecialchars($data[$field], ENT_QUOTES) : '';
修正为:
$value = isset($data[$field]) ? htmlspecialchars($data[$field], ENT_QUOTES,'GB2312') : '';