原本以为要自己写helper去截取中文字符串,没想到cakephp的Text helper类中已经提供了truncate方法。下面是truncate方法的原型。
引用
truncate
truncate(string $text, int $length=100, array $options)
Cuts a string to the $length and adds a suffix with ‘ending’ if the text is longer than $length. If ‘exact’ is passed as false, the truncation will occur after the next word ending. If ‘html’ is passed as true, html tags will be respected and will not be cut off.
truncate(string $text, int $length=100, array $options)
Cuts a string to the $length and adds a suffix with ‘ending’ if the text is longer than $length. If ‘exact’ is passed as false, the truncation will occur after the next word ending. If ‘html’ is passed as true, html tags will be respected and will not be cut off.
Text->truncate方法有3个参数:
- $text:需要截取的字符串
- $length:需要截取的长度,默认是截取100个字符
- $options:数组参数。ending表示在截取后的字符串结尾加上ending字符串;exact如果是false的话则不会截断word;html如果是true的话则不会截断html tag
下面的代码演示了如何使用tuncate方法:
echo $this->Text->truncate( 'The killer crept forward and tripped on the rug.', 22, array( 'ending' => '...', 'exact' => false ));
上面的代码将输出The killer crept…
注意:如果是截取中文字符串的话exact最好置为true,否则汉语字符将无法被截断