使用strip_tags后,substr不起作用

时间:2015-09-03 06:21:19

标签: php html

我想在预览模式下显示它们之前删除所有标签(只是一些文字)。

我有这段代码:

$text = strip_tags($item['content']);
echo substr($text,0,13); 

这是我的$item['content']就是这样的

 <div class="note note-success">
                                    <p>
                                         Font Awesome gives you scalable
 vector icons that can instantly be customized — size, color, drop 
shadow, and anything that can be done with the power of CSS. The 
complete set of 439 icons in Font Awesome 4.1.0
                                    </p>
                                     For more info check out: <a target="_blank" href="http://fortawesome.github.io/Font-Awesome/icons/">http://fortawesome.github.io/Font-Awesome/icons/</a>
                                </div>

问题在于,当我使用substr时,它没有显示任何内容,但是当我使用普通echo时,它会显示之前被剥离的变量的内容。

strip_tags是否不提供字符串输出?

2 个答案:

答案 0 :(得分:2)

在输出子字符串之前尝试删除空格:
    $new = str_replace(' ','',$text); (使用trim代替 @ mario.klump 表示)

$text = strip_tags($item['content']);
$new = trim($text);
echo substr($new,0,13);

答案 1 :(得分:1)

strip_tags()函数仅在跟随html文本类型时有效。你正在做的是转换html编码的文本,因此,它不会被解析。

$text = '<p>Test paragraph.</p><!-- Comment --> <a href="#fragment">Other text</a>';
echo strip_tags($text);

对于您的示例,您可以这样使用:

$text = htmlentities($item['content']);
echo substr(html_entity_decode($text),0,13); or
echo substr($text,0,13);