smarty中改進(jìn)truncate使其支持中文的方法
本文實(shí)例講述了smarty中改進(jìn)truncate使其支持中文的方法。分享給大家供大家參考,具體如下:
smarty的truncate不支持中文的截取。將smarty目錄下plugins中的modifier.truncate.php改成下面這個(gè)樣子就可以了
<?php
/*
* Smarty plugin
* -------------------------------------------------------------
* Type: modifier
* Name: truncate
* Purpose: Truncate a string to a certain length if necessary,
* optionally splitting in the middle of a word, and
* appending the $etc string.
* Update: change substr to msubstr and add fun msubstr.so it
* can bu used in chinese charset.
* -------------------------------------------------------------
*/
function smarty_modifier_truncate($string, $length = 80, $etc = '...', $break_words = false)
{
if ($length == 0)
return '';
if (strlen($string) > $length) {
$length -= strlen($etc);
if (!$break_words)
$string = preg_replace('//s+?(/S+)?$/', '', SubstrGB($string, 0, $length+1));
return SubstrGB($string, 0, $length).$etc;
} else
return $string;
}
function SubstrGB($str,$start,$len){
for($i=0;$i<$start+$len;$i++){
$tmpstr=(ord($str[$i])>=161 && ord($str[$i])<=254&& ord($str[$i+1])>=161 && ord($str[$i+1])<=254)?$str[$i].$str[++$i]:$tmpstr=$str[$i];
if ($i>=$start&&$i<($start+$len))$tmp .=$tmpstr;
}
return $tmp;
}
/* vim: set expandtab: */
?>
更多關(guān)于Smarty相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《smarty模板入門基礎(chǔ)教程》、《PHP模板技術(shù)總結(jié)》、《PHP基于pdo操作數(shù)據(jù)庫(kù)技巧總結(jié)》、《PHP運(yùn)算與運(yùn)算符用法總結(jié)》、《PHP網(wǎng)絡(luò)編程技巧總結(jié)》、《PHP基本語(yǔ)法入門教程》、《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門教程》、《php字符串(string)用法總結(jié)》、《php+mysql數(shù)據(jù)庫(kù)操作入門教程》及《php常見數(shù)據(jù)庫(kù)操作技巧匯總》
希望本文所述對(duì)大家基于smarty模板的PHP程序設(shè)計(jì)有所幫助。
- Oracle給用戶授權(quán)truncatetable的實(shí)現(xiàn)方案
- delete from 表名與truncate table 表名區(qū)別
- SQL中Truncate的用法
- golang實(shí)戰(zhàn)之truncate日志文件詳解
- tf.truncated_normal與tf.random_normal的詳細(xì)用法
- SQL Server中TRUNCATE事務(wù)回滾操作方法
- 實(shí)例理解SQL中truncate和delete的區(qū)別
- 詳解SQL中drop、delete和truncate的異同
- Mysql開啟慢SQL并分析原因
- Truncate Table的用法講解
相關(guān)文章
PHP網(wǎng)頁(yè)安全認(rèn)證的實(shí)例詳解
這篇文章主要介紹了PHP網(wǎng)頁(yè)安全認(rèn)證的實(shí)例詳解的相關(guān)資料,這里提供了兩種實(shí)現(xiàn)方法,一種基于數(shù)據(jù)庫(kù)另一種不基于數(shù)據(jù)庫(kù)的方法,希望通過本能幫助到大家,需要的朋友可以參考下2017-09-09
ThinkPHP 連接Oracle數(shù)據(jù)庫(kù)的詳細(xì)教程[全]
最近收集了一些關(guān)于THinkPHP連接Oracle數(shù)據(jù)庫(kù)的問題,有很多朋友按照連接mysql的方法來操作,導(dǎo)致有一些方法在Oreale中無法正常使用2012-07-07
PHP 雙鏈表(SplDoublyLinkedList)簡(jiǎn)介和使用實(shí)例
這篇文章主要介紹了PHP 雙鏈表(SplDoublyLinkedList)簡(jiǎn)介和使用實(shí)例的相關(guān)資料,需要的朋友可以參考下2015-05-05
使用symfony命令創(chuàng)建項(xiàng)目的方法
這篇文章主要介紹了使用symfony命令創(chuàng)建項(xiàng)目的方法,結(jié)合實(shí)例形式分析了Symfony命令的使用方法與項(xiàng)目創(chuàng)建的相關(guān)技巧,需要的朋友可以參考下2016-03-03
Linux平臺(tái)中使用PHP把word轉(zhuǎn)pdf的實(shí)現(xiàn)方法
下面小編就為大家?guī)硪黄狶inux平臺(tái)中使用PHP把word轉(zhuǎn)pdf的實(shí)現(xiàn)方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-11-11

