スマートなテンプレートで遊んでいる多くの子供たちは、文字化けのトリミングの問題に遭遇していると推定されます。特にUTF8エンコード。
次のコードを modifier.truncate2.php として保存し、smarty libs の下のプラグイン ディレクトリに保存します
次に、トリミングするときに $v->content|truncate2:100 を使用します
以上です。
動作しない場合は、キャッシュが原因である可能性がありますので、早急にtemplates_c配下のキャッシュファイルを削除してください(実行中にエディタでキャッシュの問題が発生しました。)
コードをコピーします コードは次のとおりです。以下:
/ **
* Smarty プラグイン
* @package Smarty
* @subpackage plugins
*/
/**
* Smarty truncate 修飾子プラグイン
*
* タイプ: modifier
* 名前: truncate
* 目的: 必要に応じて文字列を特定の長さに切り詰めます。
* オプションで単語の途中で分割し、
* $etc 文字列を追加するか、途中に $etc を挿入します。
* @link http://smarty.php.net/manual/en/ language.modifier.truncate.php
* truncate (Smarty オンライン マニュアル)
* @author Monte Orrt
* @param string
* @param integer
* @param string
* @param boolean
* @param boolean
* @return string
*/
function Smarty_modifier_truncate2( $string,$length = 80,$etc='...', $count_words = true ) {
return $returnstr = substr_utf8($string, 0, $length).$etc;
}
function substr_utf8($str, $start=0, $length=-1, $return_ary= false) {
$len = strlen($str );if ($length == -1) $length = $len;
$r = array();
$n = 0;
$m = 0;
for($i = 0; $i < $len; $i++) {
A, -8); (if ($ n & lt; $ start) {
IF (Substr ($ a, 0, 1) = = 0){
} elseif(subst($ a、0、3)== 110){
a、0、1)== 0)= subst($ str、$ i、2); 3);
) {
return $return_ary ? $r : implode("",$r);
}
/* vim: set Expandtab: */
?>
samrty のプラグイン システムは比較的スマートで、変更が簡単です。
http://www.bkjia.com/PHPjc/802225.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/802225.html技術記事 Smarty テンプレートで遊ぶ多くの子供たちは、文字化けをトリミングするという問題に遭遇したことがあると推定されます。特にUTF8エンコード。 次のコードを modifier.truncate2.php として保存し、smarty libs のプラグイン ディレクトリに保存します...