【问题标题】:How to remove all tags from string? [duplicate]如何从字符串中删除所有标签? [复制]
【发布时间】:2016-03-28 19:09:39
【问题描述】:

我有一个包含一些标签的字符串,像这样;

$str = '<i>this</i> <u class="anything">is</u> a <b>string</b>';

我想要这个:

$newstr = 'this is a string';

实际上我想选择&lt;&gt; 之间的所有内容,然后将其替换为''。我这样做的目标是防御 CORSCSRF 漏洞。我该怎么做?

【问题讨论】:

  • 如果一个标签出现在另一个标签内怎么办?
  • 你不能使用 php strip_tags 吗? php.net/manual/en/function.strip-tags.php
  • @AvinashRaj &lt;b&gt;anything1 &lt;i&gt;anything2&lt;/i&gt;&lt;/b&gt;。我想要这个anything1 anything2

标签: php regex security


【解决方案1】:

使用strip_tags 函数将为您完成这项工作

<?php
$str = '<i>this</i> <u class="anything">is</u> a <b>string</b>';
echo strip_tags($str);

结果是

this is a string

这里还有 REGEX 版本:

echo preg_replace('/<[^>]*>/', '', $str); // output: this is a string

【讨论】:

  • 谢谢,看起来不错。 +1
  • ~100 rep 只是为了回答我的问题:-) ..!记住并始终回答我的问题:-P
  • 是的,这似乎有点过分了。但它弥补了数百个回答问题但从未被接受或赞成的问题。但是很高兴看到您几乎所有问题都接受了答案
猜你喜欢
  • 2015-10-09
  • 2019-06-21
  • 2020-10-17
  • 2018-12-02
  • 2013-12-11
  • 2020-01-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多