PHP strip_tags函数介绍

当我们从一个页面上抓取/读取数据时,经常会出现不需要HTML标记的纯文本数据的需求。或者在自己的程序中需要过滤掉HTML标记以确保输出的安全性和数据的准确性。那么在这种情况下,我们就可以使用PHP的strip_tags函数,它可以移除字符串中全部或部分的HTML标签。

一、strip_tags函数的基本语法

    mixed strip_tags ( string $string [, string $allowable_tags ] )

在上面的函数语法中:

  • 第一个参数 string 是必需的,表示输入的字符串,该项不能省略。
  • 第二个参数 allowable_tags 是可选的,它定义了允许出现的标签。如果别了这个参数,则该函数会移除所有的标签。
  • 函数返回一个处理后的字符串,如果出错返回FALSE。

二、strip_tags函数的使用方法

strip_tags函数非常简单易用,下面是一个例子:

    $str = "带 Html 标签的字符串";
    $strtags = strip_tags($str); // 移除 $str 中的所有标记以下输出结果:
    echo $strtags;

输出结果是一个不带HTML标签的纯文本字符串。

三、移除指定的HTML标签

除了移除所有的HTML标记外,如果你希望只移除某些指定的HTML标签或属性,可以在函数的第二个可选参数中添加这些标签,例如:

    $str = "

这是一个有些HTML标记的文字。

"; $strtags = strip_tags($str, '

'); echo $strtags;

这个例子中,\

\标签被允许放行,而\被移除了。

四、保留某些HTML标签和其中的内容

相比较之下,有时候我们是希望保留某些HTML标签和其中的内容,该怎么做呢?可以采用strip_tags函数的逆操作,把我们需要的标记或者内容替换成标记,具体实现如下:

function stripTagsContent($text, $tags = '', $invert = FALSE) {

preg_match_all('//si', trim($tags), $tags);
$tags = array_unique($tags[1]);

if (is_array($tags) && count($tags) > 0) {
if ($invert == FALSE) {
$text = preg_replace('/]*)?>/si', '', $text);
}else {
$text = preg_replace('/]*)?>)([\s\S]*?)>/si', '', $text);
}
} elseif ($invert == FALSE) {
$text = preg_replace('/]*)?>)(.*?)>/si', '', $text);
}

return $text;
}

$str = '

这是一个有些HTML标记的文字。

原创文章,作者:THLM,如若转载,请注明出处:https://www.506064.com/n/131612.html

(0)
THLMTHLM
上一篇 2024-10-03
下一篇 2024-10-03

相关推荐

发表回复

登录后才能评论