• 技术文章 >后端开发 >php教程

    关于PHP strip_tags保留多个HTML标签

    不言不言2018-06-14 09:28:19原创1136
    这篇文章主要介绍了PHP strip_tags保留多个HTML标签的方法,需要的朋友可以参考下

    本文介绍了PHP strip_tags函数保留多个HTML标签的方法,可以使用第二个参数来设置不需要删除的标签,主要涉及到strip_tags的第二个参数

    strip_tags 函数

    语法
    string strip_tags ( string str [, string allowable_tags] )
    返回一个去除了HTML标签的字符串;可以使用第二个参数来设置不需要删除的标签。

    使用方法:

    前提:假如现在有这样一个字符串,

    $str = "<p>我来自<b><a href='//m.sbmmt.com'>php中文网</a></b></p>";

    1,不保留任何HTML标签,代码会是这样:

    echo strip_tags($str); 
    // 输出:我来自php中文网

    2,只保留<a>一个标签的话,只需要将<a>字符串写到strip_tags的第二个参数中:

    echo strip_tags($str, "<a>"); 
    // 输出:我来自<a href='//m.sbmmt.com'>php中文网</a>

    3,要保留<p>与<b>…多个标签,只需要将多个标签用空格分隔后写到strip_tags的第二个参数中:

    echo strip_tags($str, "<p> <b>"); 
    // 输出:<p>我来自<b>php中文网</b></p>

    如果要使用php删除html标记中的特定标签呢?

    这个就需要代码来实现了,如下:

    function strip_selected_tags($text, $tags = array()) {
      $args = func_get_args();
      $text = array_shift($args);
      $tags = func_num_args() > 2 ? array_diff($args, array($text)) : (array) $tags;
      foreach($tags as $tag) {
        if (preg_match_all('/<'.$tag.
            '[^>]*>([^<]*)</'.$tag.
            '>/iu', $text, $found)) {
          $text = str_replace($found[0], $found[1], $text);
        }
      }
    
      return preg_replace('/(<('.join('|', $tags).
        ')( | |.)*/>)/iu', '', $text);
    }
    
    $str = "[url="] 123[/url]";
        echo strip_selected_tags($str, array('b'));

    以上就是本文的全部内容,希望对大家的学习有所帮助,更多相关内容请关注PHP中文网!

    相关推荐:

    在php中用html_entity_decode实现HTML实体转义

    以上就是关于PHP strip_tags保留多个HTML标签的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:strip_tags
    上一篇:如何在云服务器上部署Laravel的解析 下一篇:关于thinkphp5.1 文件引入路径的问题

    相关文章推荐

    • PHP 文件操作函数(专题)• PHP控制网页过期时间的代码_PHP教程• [PHP]经常用到的实用函数集合第1/2页_PHP教程• php自定义大小验证码的实例代码 • php通用防注入程序 推荐_php技巧

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网