編輯:截斷HTML文本,同時考慮到 「句號」(在CachePHP TextHelper->截斷)
最後我用CakePHP的truncate()
功能。它的速度更快,並支持Unicode:d
但問題依然存在:
如何使功能自動檢測句號(.
),只是之後下調嗎?所以基本上$length
將被半被忽略。因此,如果新文本將有一個不完整的句子,多的話會追加到句子結束(或刪除,這取決於從截止字符串的長度,直到下一個/前面的句子)
編輯2: 我發現如何檢測句號。我換成:
if (!$exact) {
$spacepos = mb_strrpos($truncate, ' ');
...
與
if (!$exact) {
$spacepos = mb_strrpos($truncate, '.');
...
編輯 - 問題:
當我有標籤,如img
有其屬性裏面點,文本獲取標籤內截止:
$text = '<p>Abc def abc def abc def abc def. Abc def <img src="test.jpg" /></p><p>abc def abc def abc def abc def.</p>';
echo htmlentities(truncate($text));
我該如何解決是什麼?我會打開一個賞金,因爲原來的問題已經得到解答...
我想你只是回答你的問題。因此,您可以繼續添加新詞,直到找到「。」。並且還會從計算文本中減去單詞,直到找到「。」。然後比較長度並選擇好的一個。當你這樣做後,嘗試優化:) –
嘿!我想我已經回答了您的原始問題,但我很高興您找到了解決方案!我正在研究Rails'truncate'方法的源代碼,它提供了與您正在尋找的功能非常相似的功能。 – Alex
感謝Alex,你能發佈一個鏈接到Rails函數嗎? – Alex