在考虑“完全停止”时(在CachePHP TextHelper-> truncate中)截断html文本

在考虑“完全停止”时(在CachePHP TextHelper-> truncate中)截断html文本,第1张

概述编辑: 我最终使用了CakePHP的truncate()功能.它更快,支持unicode:D 但问题仍然存在: 如何使功能自动检测完全停止(.)并在此之后切断它?所以基本上$length会被半忽略.因此,如果新文本将具有不完整的句子,则在句子结束之前将附加更多单词(或者删除,取决于从截止到下一个/上一个句子的字符串的长度) 编辑2: 我发现了如何检测到完全停止.我换了: if (!$exact) 编辑:

我最终使用了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文本所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1069642.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存