首页  >  文章  >  后端开发  >  PHP strip_tags()

PHP strip_tags()

王林
王林原创
2024-08-29 12:52:401106浏览

PHP 中的 strip_tags() 函数是一个内置函数,可以从 HTML 和 PHP 标签中删除/删除字符串。这将返回一个具有 NULL 字节值和 HTML 值的字符串,PHP 标签将从给定的输入字符串中删除/剥离。当我们在网站上显示用户的输入时,此功能基本上很有用。例如,当我们在网站上创建消息论坛时,用户可以发布如下标题:

此网站很糟糕!

。如果网站要显示每个帖子的所有标题,那么此不需要的消息也会以标题格式显示在网站上,向页面的所有访问者显示。因此,通过使用 strip_tag() 函数将有助于消除此类问题。 广告 该类别中的热门课程 PHP 开发人员 - 专业化 | 8 门课程系列 | 3次模拟测试

开始您的免费软件开发课程

网络开发、编程语言、软件测试及其他

语法:

string strip_tags( $str, $allowed_tags )

所需参数: 该函数接受 2 个参数;

  • $str 为必填参数,是需要检查的主字符串。
  • $allowed_tags 是非强制参数,描述允许且不被剥离的标签。因此这些标签将被保留。

返回值:这个 strip_tags 函数为我们提供从输入字符串中剥离出来的结果字符串。

例外:

  • 此函数不提供 HTML 验证。
  • 默认情况下会删除的一些内容是 HTML 注释和 PHP 标签,这些内容无法更改,因为它们是硬编码的。
  • 自闭合 XHTML 标签在 PHP 5.3.4 之后的版本中被忽略,因此仅允许在 $allowed_tags 中使用非自闭合标签。

PHP strip_tags() 函数示例

现在让我们通过一些例子来了解 PHP strip_tags 函数的工作原理。

示例#1

代码:

<?php<br /> // PHP programme to demostrate<br /> // strip_tags function without $allowed_tags parameter<br /> echo strip_tags("Hello <b>Sample Program!</b>");<br> ?>

输出:

PHP strip_tags()

在上面的示例中,我们显示了一个简单的 PHP 代码来说明可以使用 strip_tags 函数而无需指定第二个参数来指定允许的所有字符。这意味着字符串中的所有字符都被允许并按原样打印。

示例#2

代码:

<?php<br /> $str = '<p>To test a paragraph.</p><!-- Starting comments --> <a href="#fragment">Another paragraph goes here</a>';<br> echo strip_tags($str);<br> echo "n";<br> // Here we allow HTML tag <p><br> echo strip_tags($str, '<p>');<br> // In the version till PHP 7.4.0 the above code can be written as:<br> // echo strip_tags($str, ['p', 'a']);<br> ?>

输出:

PHP strip_tags()

在上面的示例中,我们首先指定所需的 HTML 代码并将其分配给输入字符串 $str。然后,我们仅使用单个参数对该字符串使用剥离标签功能。接下来我们展示第二个参数 $allow_tags 的使用,其中我们仅指定标签

意味着只有

应允许有标签,其余所有标签应剪掉。因此,在输出中我们可以看到只有

显示标签信息并显示。不显示标签信息。我们还可以看到,在输出中,HTML 注释没有被打印,因此证明即使我们没有在第二个参数列表中指定,该函数默认也会修剪 HTML 注释。

警告

  • 此功能不能用于防止某些攻击,例如XSS。还有其他适当的方法或函数,如 htmlspecialchars() ,可以用于此目的,具体取决于所需的输出类型。
  • 函数 strip_tags() 只是修剪掉 HTML 标签,而没有真正验证它们。因此,这可能会导致标签损坏或删除比预期更多/更少的数据。因此,在指定函数的第二个参数时应该小心。
  • 此函数也不支持对我们在 $allowed_tags 函数中指定的参数进行任何修改,还包括某些用户可能用来发布文本以显示给其他用户的 onmouseover 和 style 属性。
  • 使用此函数时还需要注意的一点是,无论我们在 $allowed_tags 中提供什么作为参数,HTML 中字符大于指定长度(1023 字节)的标签名称都将被视为无效.

示例#3

代码:

<?php<br /> $str = '<a title="" href="/index.html"><b>Some Text</b></a><br> Just a sample text to showcase a paragraph coming in HTML body';<br> echo strip_tags_content($str);<br> function strip_tags_content($str) {<br> return preg_replace('@<(w+)b.*?>.*?</1>@si', '', $str);<br> }<br> ?>

输出:

PHP strip_tags()

在上面的示例中,我们使用 strip_tags 函数删除锚标记及其输入字符串中的内容。 PHP strip_tags 在剥离时会自动删除开始和结束 HTML 标签。

示例#4

代码:

<?php<br /> $str = '<?= '<?= 1 ?>' ?>2';<br> var_dump(strip_tags($str));<br> ?>

输出:

PHP strip_tags()

此示例演示如何从嵌套 PHP 标签中删除内容。

示例#5

代码:

<?php // Test.php<br /> $str = '<br>Trial<br/>on<br />NewLine';<br> $d = strip_tags($str, '<br />');<br> var_dump($d); // Displays string(11) "TraialonNewLine" on output<br> ?>

输出:

PHP strip_tags()

在此示例中,我们可以看到我们只允许
内的内容字符串,这里的输出会随着我们在不同版本的 PHP 中运行而改变。

示例#6

代码:

<?php<br> function strip_tags_d($a)<br> {<br> return is_array($a) ?<br> array_map('strip_tags_d', $a) :<br> strip_tags($a);<br> }<br> // Example<br> $arr1 = array('<b>Car</b>', '<i>Bat</i>', array('<b>Car</b>', '<i>Bat</i>'));<br> $arr1 = strip_tags_d($arr1);<br> // Output<br> print_r($arr1);<br> ?>

输出:

PHP strip_tags()

在上面的示例中,我们展示了 strip_tags 函数的递归函数的使用。因此,在输出中我们可以看到数组以 2 的循环打印。

结论

如上所示,我们看到了如何使用 strip_tags() 函数从代码中删除一些不需要的 HTML 和 PHP 标签。该函数可以解析输入字符串并提取其结构。它通常会修剪或替换给定的 HTML 或 PHP 标签,我们将这些标签作为要从 HTML 文档中删除的输入参数列表传递。当我们只需要修剪 PHP 标签而不是 HTML 时,也可以使用此方法,反之亦然。

推荐文章

这是 PHP strip_tags() 的指南。在这里,我们讨论 PHP strip_tags() 函数简介及其示例以及代码实现。您还可以浏览我们其他推荐的文章来了解更多-

  1. PHP 框架
  2. PHP Chop()
  3. PHP setlocale()
  4. PHP strtotime

以上是PHP strip_tags()的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
上一篇:file_put_contents in PHP下一篇:PHP chop()