如果你的Yii框架不得已要使用gbk编码,你要做的有四件事: 1.复制一份儿框架中的中文语言包出来改为gbk编码,放在protected/messages,然后配置文件的components段中加入 // gbk编码的语言包'coreMessages'=array(//'basePath'=null,'basePath'= dirname(__F
如果你的Yii框架不得已要使用gbk编码,你要做的有四件事:
1.复制一份儿框架中的中文语言包出来改为gbk编码,放在protected/messages,然后配置文件的components段中加入
// gbk编码的语言包 'coreMessages'=>array( //'basePath'=>null, 'basePath'=> dirname(__FILE__).DIRECTORY_SEPARATOR.'..'.DIRECTORY_SEPARATOR.'messages', ),
2.复制一份儿框架中的i18n中关于中文的文件改为gbk编码,放在protected/i18n/data下
然后config/main.php中加入
'localeDataPath'=>dirname(__FILE__).DIRECTORY_SEPARATOR.'../i18n/data',
3.复制一份儿框架中的views/exception.php到protected/views/system,改一下里面的编码为gbk,默认是utf8,否则调试页面就乱码了。
4.修改CHtml类:
CHtml类使用了htmlspecialchars来格式化输出,但htmlspecialchars不支持gbk编码。
当然,你可以把htmlspecialchars的编码去掉,但php5.4这样做时,就会没有输出。
一共改两个方法,一个是encode,还有一个encodearray
如果你使用了apc的话,请修改框架目录中yiilite.php中对应的两个方法。
如果你不使用apc的话,并且像我一样不愿意修改框架本身,可以把Chtml复制一份出来然后使用Yii的classmap来自定义这个类的路径。然后在入口文件处来定义,例如我的:
易优小程序是基于前端开源小程序+后端易优cms+标签化API接口,是一套开源、快速搭建个性化需求的小程序CMS。轻量级TP底层框架,前后端分离,标签化API接口可对接所有小程序,支持二次开发。即使小白用户也能轻松搭建制作一套完整的线上版小程序。微信工程机械小程序模板主要特点:1、代码开源,支持二次修改。2、微信原生写法,兼容性更好,代码可读性更强。3、功能接口完整,支持eyoucms大部分功能ap
0
require_once ($yii);
// 重写yii class map,使用自定义的CHtml。 yiilite中的代码要手动修改不能使用此方法覆盖
Yii::$classMap=array('CHtml'=>__DIR__.'/../protected/extensions/helpers/CHtml.php');下面是要修改的CHtml类中的两个方法
立即学习“PHP免费学习笔记(深入)”;
public static function encode($text)
{
if(PHP_VERSION < '5.4.0') {
return htmlspecialchars($text,ENT_QUOTES);
}
else
{
if(strtolower(Yii::app()->charset) == 'utf-8') {
$charset = 'UTF-8';
} else {
$charset = 'ISO-8859-1';
}
return htmlspecialchars($text,ENT_QUOTES,$charset);
}
return htmlspecialchars($text,ENT_QUOTES,Yii::app()->charset);
}public static function encodeArray($data)
{
$d=array();
foreach($data as $key=>$value)
{
if(is_string($key))
$key=self::encode($key);
if(is_string($value))
$value=self::encode($value);
else if(is_array($value))
$value=self::encodeArray($value);
$d[$key]=$value;
}
return $d;
}原文地址:Yii框架针对gbk编码的修改,CHtml可用,兼容php5.4, 感谢原作者分享。
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号