0

Cake php 文本助手问题

在视图.ctp

$userName = 'Jusnitdustinwq'; 
echo $this->Text->truncate( $userName, 8, array('ending' => '...', 'exact' => false));

在 cake php truncate的文档中,它写成好像 'exact' 是 'false',然后$userName不会在单词中间被截断,但这里没有单词或$username正在显示,而只是...在上面的示例中显示

如何纠正它?

4

2 回答 2

1

它按预期工作。在您的示例中,如果您设置'exact'=>false,它会尝试在 8 个字符处/之前的某处找到一个空格以在此处截断,但没有. 因此,它可以将您的字符串保持在 8 个字符以下并且不截断单词的唯一方法是删除所有文本并仅使用“...”。

相反,试试这个:

$userName = 'Jusnitdustinwq';
if(strpos($userName, ' ')) {
    echo $this->Text->truncate( $userName, 8, array('exact' => false));
} else {
    echo $this->Text->truncate( $userName, 8);
}

请注意,您不需要指定'ending',除非您想将其更改为默认值以外的其他值,即'...'; 与 k 相同'exact',它的默认值为true

于 2012-05-07T13:10:12.267 回答
1

尝试这个:

echo $this->Text->truncate($userName , 8, array('ending' => '...'));

或者

echo $this->Text->truncate($userName , 8, array('ending' => '...', 'exact' => true));

参数引起的问题exact,因为$userName不是由空格分隔的单词集合,并且exact => true适用于该类型的输入。

如果你尝试如下,将看到事实:

$userName = 'Ju snit dustinwq'; 

echo $this->Text->truncate($userName , 8, array('ending' => '...', 'exact' =>  false));
于 2012-05-07T08:00:30.613 回答