1. 介绍strip_tags()函数
在PHP中,strip_tags()函数用于过滤字符串中的HTML和PHP标签,返回不包含标签的纯文本字符串。该函数是处理用户输入的常用方法,可以用于防止跨站脚本攻击(XSS)。
1.1 strip_tags()函数的语法
string strip_tags ( string $str, string|null $allowable_tags = null )
参数说明:
$str:要过滤的字符串。
$allowable_tags(可选):允许保留的标签。如果指定了该参数,除了指定的标签,其他的标签都会被过滤掉。
1.2 strip_tags()函数的返回值
该函数返回一个不包含标签的纯文本字符串。
2. strip_tags()函数的实例分析
下面通过几个实例,来演示strip_tags()函数的用法。
2.1 过滤掉所有标签
首先,我们来看一个最简单的实例,使用strip_tags()函数过滤掉一个包含HTML标签的字符串:
$str = "<p>这是一段<a href="https://example.com">包含</a>链接的<strong>HTML</strong>文本。</p>";
$result = strip_tags($str);
echo $result;
运行以上代码,输出的结果是:
这是一段包含链接的HTML文本。
以上代码中,$str变量包含了一个包含HTML标签的字符串。strip_tags()函数将所有的HTML标签都过滤掉,只保留纯文本。
2.2 保留指定的标签
strip_tags()函数还可以指定允许保留的标签。如果传递了第二个参数,只有指定的标签才会被保留,其他的标签都会被过滤掉。
$str = "<p>这是一段<a href="https://example.com">包含</a>链接的<strong>HTML</strong>文本。</p>";
$result = strip_tags($str, '<a><strong>');
echo $result;
运行以上代码,输出的结果是:
这是一段<a href="https://example.com">包含</a>链接的<strong>HTML</strong>文本。
以上代码中,我们指定了允许保留的标签为<a>和<strong>。因此,只有这两个标签会被保留,其他的标签都会被过滤掉。
2.3 过滤掉PHP标签
除了过滤HTML标签,strip_tags()函数还可以过滤PHP标签。在过滤PHP标签时,需要将<?php和?>标签视为普通的字符串进行处理。
$str = "<p>这是一段包含<?php echo 'PHP标签'; ?>的文本。</p>";
$result = strip_tags($str);
echo $result;
运行以上代码,输出的结果是:
这是一段包含<?php echo 'PHP标签'; ?>的文本。
以上代码中,$str变量包含了一个包含PHP标签的字符串。strip_tags()函数将PHP标签<?php和?>视为普通的字符串,不会被过滤掉。
3. 总结
strip_tags()函数是PHP中用于过滤字符串中的HTML和PHP标签的常用方法。通过指定允许保留的标签,或者直接过滤掉所有的标签,可以实现对用户输入的字符串进行安全处理,防止XSS攻击。在处理包含HTML或PHP标签的字符串时,strip_tags()函数是一个非常实用的工具。