我最终使用了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));
我该如何解决这个问题?我会开一个赏金,因为原来的问题已经回答了……
解决方法 This snippet解决了你正在寻找的东西,并列出它的失败(句号可能不表示句子结束,其他标点符号可以结束句子).它会将字符扫描到$maxLen,然后在找到的最后一次完整停止后有效地“丢弃”部分句子.
在你的情况下,你在返回$new_text之前就使用了这个函数.
总结以上是内存溢出为你收集整理的在考虑“完全停止”时(在CachePHP TextHelper-> truncate中)截断html文本全部内容,希望文章能够帮你解决在考虑“完全停止”时(在CachePHP TextHelper-> truncate中)截断html文本所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)