程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP基礎知識 >> Smarty truncate截取utf-8格式中文

Smarty truncate截取utf-8格式中文

編輯:PHP基礎知識
 

1.首先進入到smarty包下的plugins,復制一份modifier.truncate.php,並重命名為modifier.truncate_cn.php,把其中的smarty_modifier_truncate函數替換為下面代碼

function smarty_modifier_truncate_cn($string, $length = 80, $etc = '...', $code = 'UTF-8')

{

if ($length == 0)

return '';

if ($code == 'UTF-8') {

$pa = "/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|\xe0[\xa0-\xbf][\x80-\xbf]|[\xe1-\xef][\x80-\xbf][\x80-\xbf]|\xf0[\x90-\xbf][\x80-\xbf][\x80-\xbf]|[\xf1-\xf7][\x80-\xbf][\x80-\xbf][\x80-\xbf]/”;

}

else {

$pa = “/[\x01-\x7f]|[\xa1-\xff][\xa1-\xff]/”;

}

preg_match_all($pa, $string, $t_string);

if (count($t_string[0]) > $length)

return join(”, array_slice($t_string[0], 0, $length)) . $etc;

return join(”, array_slice($t_string[0], 0, $length)) . $etc;

}

2.在模板中使用

phpbulo.php

< phpbr />$smarty->assign(’string’, “我愛你中國”);

$smarty->display(’phpbulo.tpl’);

?>

phpbulo.tpl

{$string|truncate_cn:”10″:”…”}

第一個為截取的字符長度,第二個為後綴字符

3.其他

錯誤:(secure mode) modifier truncate_cn is not allowed

這主要是你啟用了smarty的$security功能

解決方法:

給smarty配置文件中加入允許使用的函數

$smarty->security_settings['MODIFIER_FUNCS'] = array(’truncate_cn’);

 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved