当使用PHP内置函数strip_tags()
去掉字符串中的HTML标签时,有时候会出现一些空白字符。这些空白字符可能来自于HTML标签周围的空格,也可能是由于行末换行符等不可见字符造成的。本文将介绍解决strip_tags()
函数会保留空格的方法。
原因分析
造成这个问题的主要原因是HTML标签内的文本如果有空格或换行符等字符,这些字符不是HTML标准定义的内容,但却会被浏览器输出。例如下面的HTML代码:
<div>
这里有一些 空格
</div>
在使用strip_tags()
函数去除HTML标签后,输出结果如下:
<?php
echo strip_tags('<div>这里有一些 空格</div>');
输出结果:
这里有一些 空格
可以看到,有额外的空格出现在原始文本“空格”前面,这些多余的空白字符如果不处理的话会影响到后续的文本处理。
解决方案
一般情况下,我们可以使用PHP内置函数preg_replace()
函数来解决上述问题,可以替换空格、换行、制表符等不可见字符。下面是一些示例代码:
示例一: 仅去除行末的换行符
$text = '<div>这里有
换行符</div>';
// 去除HTML标签和行末换行
$text = rtrim(strip_tags($text));
echo $text;
输出结果:
这里有 换行符
代码解释:
strip_tags()
函数将输入的字符串中的HTML标签全部删除rtrim()
函数删除字符串在末尾的全部空白字符,包括空格、制表符和换行符- 最终输出结果中,文本“换行符”后面并没有额外的空白字符
示例二: 去除所有不可见字符
$text = '<div>
这里 有 空格和 换行
\r\n\t
</div>';
// 替换空格、换行、制表符等不可见字符
$text = preg_replace('/\s+/', ' ', strip_tags($text));
echo $text;
输出结果:
这里 有 空格和 换行
代码解释:
strip_tags()
函数将输入的字符串中的HTML标签全部删除preg_replace()
函数使用正则表达式匹配一系列不可见字符,并将其替换为单个空格- 最终输出结果中,文本中没有多余的空白字符
总结
当要使用PHP内置函数strip_tags()
去除HTML标签时,应当特别留意空白字符的问题。可以使用rtrim()
或preg_replace()
等函数进行处理,以确保最终输出的内容不会受到额外的干扰。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:php使用strip_tags()去除html标签仍有空白的解决方法 - Python技术站