【问题标题】:use strip_tags() to remove tag attributes, in addition to tags [duplicate]使用 strip_tags() 删除标签属性,除了标签[重复]
【发布时间】:2014-01-26 06:13:13
【问题描述】:

我知道并知道如何将 strip_tags() 与 php 一起使用,但我想删除这些标签中包含的所有样式。

我只需要保留以下标签

<p></p>
<a></a>
<br />

不确定 br 是否被视为带有 strip_tags 的标签,因此我将其包含在内。

之前的示例:

<p style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 13px; padding: 0px; margin: 3px 0px 10px; color: rgb(0, 0, 0); line-height: 16px;">

之后:

<p>

问题是我不确定我是否可以使用条形标签来完成此操作,或者我是否还需要包含一个带有一些 REGEX 的 preg_replace。此外,样式有时会有所不同,因此它需要能够处理任何事情。

我在 php.net 上找到了一个示例,但似乎不起作用

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

  preg_match_all('/<(.+?)[\s]*\/?[\s]*>/si', trim($tags), $tags); 
  $tags = array_unique($tags[1]); 

  if(is_array($tags) AND count($tags) > 0) { 
    if($invert == FALSE) { 
      return preg_replace('@<(?!(?:'. implode('|', $tags) .')\b)(\w+)\b.*?>.*?</\1>@si', '', $text); 
    } 
    else { 
      return preg_replace('@<('. implode('|', $tags) .')\b.*?>.*?</\1>@si', '', $text); 
    } 
  } 
  elseif($invert == FALSE) { 
    return preg_replace('@<(\w+)\b.*?>.*?</\1>@si', '', $text); 
  } 
  return $text; 
}
?>
<?=strip_tags_content($row['notes'])?></p>

【问题讨论】:

  • 为什么不试试这个呢? echo strip_tags($text, '&lt;p&gt;&lt;a&gt;&lt;br&gt;');
  • 请也发布您的相关PHP代码。
  • strip_tags() 将标记视为&lt; 和第一个空格或&gt; 之间的不区分大小写的字符串。
  • 首先,remove all attributes,然后使用strip_tags()
  • 正确,所以我的猜测是我需要先用一些正则表达式 preg_replace

标签: php


【解决方案1】:

我会这样做:

$x = preg_replace("/<(p|a|b|div) [^>]*>/", "<$1>", $x);

当然,所有相关的标签都在里面。 请注意,如果任何参数中有 > 符号,这将失败,因此您必须以某种方式处理引号。

【讨论】:

    【解决方案2】:

    如果您只是想在执行strip_tags($text, '&lt;p&gt;&lt;a&gt;&lt;br&gt;')后从元素中删除样式,您可以改用 JQuery

    JQuery 代码

    $("container").children().each(function()
        {
            $(this).attr('style','');
        });
    

    Fiddle demo

    【讨论】:

      猜你喜欢
      • 2012-11-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多