1

我有一个允许用户输入产品描述的表单,并且在列表页面中我想简短地打印出产品描述(只有几行)。

但是描述包含html标签,我尝试了一些解决方案,但它们无法解决我的问题。

(例如:如果我使用子字符串函数缩短文本,但未闭合标签会有问题)

4

2 回答 2

1

您可以进行快速标签剥离,并在末尾添加省略号以添加装饰:

function shorten($text, $length)
{
   $text = trim( strip_tags($text) );

   $textLen = strlen($text);

   if($textLen < $length)
   { 
     return $text;
   }
   else
   {
     $text = substr($text, 0, $length);
     $text .= '&hellip;';
     return $text;
   }
}

请注意,strip_tags()并非万无一失,如果您的 html 标签格式错误,可能会弄乱文本,但这是一种“快速而肮脏”的解决方案;否则您需要使用适当的工具(例如 DOMDocument 或更好的解析器)解析 html,然后执行您的substr()

于 2012-07-12T04:47:31.673 回答
0

您可以使用功能strip_tags($content);删除标签...

于 2012-07-12T04:38:02.123 回答