我最近需要截断包含 HTML 的帖子内容(对于帖子摘录/摘要等)。这通常是通过手动输入帖子的摘录来完成的,但是对于这个特定的项目,我需要自动完成。
我试图创建一个简单的方法,它只需要一个字符数并对内容进行子字符串化。但是,这并不总是有效,因为它可能会截断 HTML 标记/属性中的内容。
例如:
<?php
function truncateText($string, $chars) { return substr($string, 0, $chars); }
$content = "<div><p>some content</p><a href='http://google.com'>Let's go to google</a></div>";
echo truncateText($content,40); //returns "<div><p>some content</p><a href='http:/"
如您所见,它将返回一个损坏的 HTML,无法正确呈现。我如何能够截断内容,但保留 HTML 标签?