PHP strip_tags仅在字符串的末尾

时间:2012-07-08 02:19:45

标签: php string strip-tags

好吧,我只想在字符串的最后使用strip_tags函数来删除任何<br />标记。

这就是我现在所拥有的,但这并不好,因为它从字符串中的任何地方剥离这些标签,这不是我想要的。我只需要将它们剥离出来,如果它在字符串的末尾......

$string = strip_tags($string, strtr($string, array('<br />' => '&#10;')));

我怎么能做同样的事情,除了只在字符串的最后?

谢谢你们!

3 个答案:

答案 0 :(得分:1)

您可以使用此code

$string = str_lreplace("<br />", "", $string);

您也可以替换标准的HTML中断:

$string = str_lreplace("<br />", "", $string);
$string = str_lreplace("<br>", "", $string);

答案 1 :(得分:0)

获取<br/>最后一次出现的索引并将其删除:

$index = strrpos($string, '<br/>');
if($index == strlen($string)-5){
    $string= substr($string,0,$index);
}

答案 2 :(得分:0)

好的,这是我正在使用的方法,这完全符合我希望它的工作......

$search = strrpos($string, '<br />');
if($search !== false && $search == strlen($string) - 6)
    $string = substr_replace($string, '', $search, 6);

我通过查看Connor Pete发布的链接获得了这个答案,因此该链接的代码帮助我实现了最终结果。

老实说,我甚至不是真的在寻找<br />标签。我只是为了争论而发布了这个。我面临的主要问题是我有一个未闭合的粗体标记<b,它在不应该存在的字符串末尾吐出,因为当写入文档时,它会导致页面的其余部分大胆!所以,老实说,这改变了:

$replace = strrpos($string, '<b');
if($replace !== false && $replace == strlen($string) - 2)
    $string = substr_replace($string, '', $replace, 2);

感谢您对此事的所有帮助:)