加入收藏 | 设为首页 | 会员中心 | 我要投稿 开发网_郴州站长网 (http://www.0735zz.com/)- 云通信、区块链、物联设备、云计算、站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP移除指定HTML标签方法概括

发布时间:2022-07-27 12:03:46 所属栏目:PHP教程 来源:互联网
导读:在php中我们最常用的指定HTML标签可以直接使用strip_tags函数来替换了,利用它可以过滤所有的html标签哦,下面我来给大家介绍除了此函数之外的其它办法。 有时候我们需要把html标签页存到数据库里,但是有些场合却需要拿无html标签的纯数据,这个时候就要对带htm
  在php中我们最常用的指定HTML标签可以直接使用strip_tags函数来替换了,利用它可以过滤所有的html标签哦,下面我来给大家介绍除了此函数之外的其它办法。
 
  有时候我们需要把html标签页存到数据库里,但是有些场合却需要拿无html标签的纯数据,这个时候就要对带html标签的数据进行处理,把html标签都去掉,平时用 htmlspecialchars() 来过滤html,但是把html的字符转义了,最后显示出来的就是html源代码,利用strip_tags()就可以把html标签去除掉.
 
  PHP默认的函数有移除指定html标签,名称为strip_tags,在某些场合非常有用。
 
  strip_tags
 
  strip_tags — Strip HTML and PHP tags from a string
 
  string strip_tags ( string str [, string allowable_tags] )
 
  弊端:这个函数只能保留想要的html标签,就是参数string allowable_tags,这个函数的参数allowable_tags的其他的用法,代码如下:
 
  strip_tags($source,”); 去掉所以的html标签。
 
  strip_tags($source,‘<div><img><em>’); 保留字符串中的div、img、em标签。
 
  如果想去掉的html的指定标签,那么这个函数就不能满足需求了,于是乎我用到了这个函数,代码如下:
 
  function strip_only_tags($str, $tags, $stripContent = FALSE) {
    $content = '';
   
    if (!is_array($tags)) {
      $tags = (strpos($str, '>') !== false ? explode('>', str_replace('<', '', $tags)) : array($tags));
      if (end($tags) == '') {
        array_pop($tags);
      }
    }
   
    foreach($tags as $tag) {
      if ($stripContent) {
        $content = '(.+<!--'.$tag.'(-->|s[^>]*>)|)';
      }
   
      $str = preg_replace('#<!--?'.$tag.'(-->|s[^>]*>)'.$content.'#is', '', $str);
    }
   
    return $str;
  }
  参数说明
 
  $str — 是指需要过滤的一段字符串,比如div、p、em、img等html标签。
 
  $tags — 是指想要移除指定的html标签,比如a、img、p等。
 
  $stripContent = FALSE — 移除标签内的内容,比如将整个链接删除等,默认为False,即不删除标签内的内容。
 
  使用说明,代码如下:
 
  $target = strip_only_tags($source, array(‘a’,'em’,'b’));移除$source字符串内的a、em、b标签。
  $source='<div><a href="" target="_blank"><img src="logo.png" border="0" alt="Welcome to linzl." />This a example from<em>lixiphp</em></a><strong>!</strong></div>
   ';
  $target = strip_only_tags($source, array('a','em'));
   
  //target results
  //<div><img src="/logo.png" border="0" alt="Welcome to lixiphp." />This a example from<strong>!</strong></div>
  其它办法,代码如下:
 
  <?php
  //取出br标记
  function strip($str)
  {
  $str=str_replace("<br>","",$str);
  //$str=htmlspecialchars($str);
  return strip_tags($str);
  }
  ?>
  一个自定义的函数,代码如下:
 
  **
   * 取出html标签
   *  
   * @access public
   * @param string str
   * @return string
   *  
   */
  function deletehtml($str) {
      $str = trim($str); //清除字符串两边的空格
      $str = strip_tags($str,"<p>"); //利用php自带的函数清除html格式。保留P标签
      $str = preg_replace("/t/","",$str); //使用正则表达式匹配需要替换的内容,如:空格,换行,并将替换为空。
      $str = preg_replace("/rn/","",$str);  
      $str = preg_replace("/r/","",$str);  
      $str = preg_replace("/n/","",$str);  
      $str = preg_replace("/ /","",$str);
      $str = preg_replace("/  /","",$str);  //匹配html中的空格
      return trim($str); //返回字符串
  }

(编辑:开发网_郴州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读