0

Cake php テキストヘルパーの問題

view.ctpで

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

Cake php truncateのドキュメントでは、「exact」が「false」であるかのように記述されており、$userName単語の途中でカットされませんが、ここでは単語$usernameが表示されていないか、表示されていません。代わりに...、上記の例ではここに表示されています

それを修正する方法?

4

2 に答える 2

1

意図したとおりに機能しています。あなたの例では、を設定すると、 8文字の前後のどこかにスペースを見つけてそこで切り捨てよ'exact'=>falseうとしますが、スペースはありません。したがって、文字列を8文字未満に保ち、単語を切り落とさない唯一の方法は、すべてのテキストを削除して「...」を使用することです。

代わりに、これを試してください:

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

'ending'デフォルト以外の値('...'; )に変更する場合を除いて、指定する必要はありません。同じことがwithk'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ため、paramによって引き起こされます。$userNameexact => true

次のように試すと、事実が表示されます。

$userName = 'Ju snit dustinwq'; 

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