-
-
- function SmartyLen($params){
- extract($params);
- $len=strlen($text);
- $max=$length;
- for ($i=0;$ i $chr=substr($text,$i,1);
- if(ord($chr)>0x80)//この文字は中国語です
- {
- $length++;
- $ i++ ;
- $len--;
- }
- }
- $str=substr($text,0,$length);
- if($len>$max)$str.="...";
- Return $str ;
- }
-
コードをコピー
登録機能
$smarty->register_function('len',"SmartyLen");
テンプレート呼び出し
{len text="under test" length="1"} //ここでの text と length は、実際には関数内の 2 つのパラメーターであることに注意してください。関数のパラメーターは、関数の内部変数名と同じである必要があります。実際、これらは配列として返されます。関数内で extract($params) を使用して、配列内の変数を現在のシンボル テーブルにインポートします。
|