设为首页收藏本站

UNIX技术社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
热搜: console
查看: 2013|回复: 0

php 去掉指定的html标签及内容

[复制链接]
发表于 2013-7-10 09:51:16 | 显示全部楼层 |阅读模式
本文章给家收集了大量的关于html标签的去除方法,很多朋友可能会想到使用strip_tags函数,但这个函数会把所有的html标签全部删除了,下面我来给大家介绍去掉指定的html标签及内容方法,有需要了解的朋友可参考。

string strip_tags ( string str [, string allowable_tags] )
弊端 :
这个函数只能保留想要的html标签,就是参数string allowable_tags。
在yizero的评论中我知道了这个函数的参数allowable_tags的其他的用法。
  1. strip_tags($source, ”); 去掉所以的html标签。

  2. strip_tags($source, ‘<div><img><em>’); 保留字符串中的div、img、em标签。
复制代码
如果想去掉的html的指定标签。那么这个函数就不能满足需求了。于是乎我用到了这个函数。
  1. <?php
  2. /**
  3. * 删除指定的HTML标签及其中内容,暂时只支持单标签清理
  4. *
  5. * @param string $string -- 要处理的字符串
  6. * @param string $tagname -- 要删除的标签名称
  7. * @param boolean $clear -- 是否删除标签内容
  8. * @return string -- 返回处理完的字符串
  9. */
  10. function replace_html_tag($string, $tagname, $clear = false){
  11. $re = $clear ? '' : '1';
  12. $sc = '/<' . $tagname . '(?:s[^>]*)?>([sS]*?)?</' . $tagname . '>/i';
  13. return preg_replace($sc, $re, $string);
  14. }
复制代码
以下是测试代码
  1. // 百度首页内容

  2. $string = file_get_contents('http://www.111cn.net/');

  3. // 去掉 style 及包含内容
  4. $string = replace_html_tag($string, 'style', true);
  5. $string = replace_html_tag($string, 'script', true);

  6. // 去掉 a 标签,并保存其中内容
  7. $string = replace_html_tag($string, 'a');

  8. // 去掉 span 标签,并保存其中内容
  9. $string = replace_html_tag($string, 'span');

  10. echo $string;
  11. ?>
复制代码
如果我们要删除指定两者之间的数据
  1. <?php
  2. /**   
  3. * PHP去掉特定的html标签
  4. * @param array $string   
  5. * @param bool $str  
  6. * @return string
  7. */  
  8. function _strip_tags($tagsArr,$str) {   
  9.      foreach ($tagsArr as $tag) {  
  10.          $p[]="/(<(?:/".$tag."|".$tag.")[^>]*>)/i";  
  11.      }  
  12.      $return_str = preg_replace($p,"",$str);  
  13.      return $return_str;  
  14. }  
  15.    
  16. $str = "<b>您好</b><input type='text' name='' /><a href='http://www.baidu.com'>百度一下,你就知道</a>";  
  17. echo _strip_tags(array("b", "input", "a"),$str); #去掉 B 标签和 INPUT 标签  
  18. ?>
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表