我有一个允许用户输入产品描述的表单,并且在列表页面中我想简短地打印出产品描述(只有几行)。
但是描述包含html标签,我尝试了一些解决方案,但它们无法解决我的问题。
(例如:如果我使用子字符串函数缩短文本,但未闭合标签会有问题)
您可以进行快速标签剥离,并在末尾添加省略号以添加装饰:
function shorten($text, $length)
{
$text = trim( strip_tags($text) );
$textLen = strlen($text);
if($textLen < $length)
{
return $text;
}
else
{
$text = substr($text, 0, $length);
$text .= '…';
return $text;
}
}
请注意,strip_tags()并非万无一失,如果您的 html 标签格式错误,可能会弄乱文本,但这是一种“快速而肮脏”的解决方案;否则您需要使用适当的工具(例如 DOMDocument 或更好的解析器)解析 html,然后执行您的substr()
您可以使用功能strip_tags($content);
删除标签...