PHP strip_tags保留多个HTML标签的方法


Posted in PHP onMay 22, 2016

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

strip_tags 函数

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

使用方法:

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

$str = "<p>我来自<b><a href='https://3water.com'>三水点靠木</a></b></p>";

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

echo strip_tags($str); 

// 输出:我来自三水点靠木

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

echo strip_tags($str, "<a>"); 

// 输出:我来自<a href='https://3water.com'>三水点靠木</a>

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

echo strip_tags($str, "<p> <b>"); 

// 输出:<p>我来自<b>三水点靠木</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中GET变量的使用
Oct 09 PHP
php判断文件上传类型及过滤不安全数据的方法
Dec 17 PHP
php中file_exists函数使用详解
May 08 PHP
php读取der格式证书乱码解决方法
Jun 22 PHP
PHP实现的memcache环形队列类实例
Jul 28 PHP
PHP数组实例详解
Jun 26 PHP
php无法连接mysql数据库的正确解决方法
Jul 01 PHP
PHP清除缓存的几种方法总结
Sep 12 PHP
Laravel框架实现redis集群的方法分析
Sep 14 PHP
利用PHP实现开心消消乐的算法示例
Oct 12 PHP
Laravel5.1 框架响应基本用法实例分析
Jan 04 PHP
php判断数组是否为空的实例方法
May 10 PHP
项目中应用Redis+Php的场景
May 22 #PHP
Yii2.0 模态弹出框+ajax提交表单
May 22 #PHP
php文件上传后端处理小技巧
May 22 #PHP
PHP strip_tags() 去字符串中的 HTML、XML 以及 PHP 标签的函数
May 22 #PHP
PHP+MySql+jQuery实现的&quot;顶&quot;和&quot;踩&quot;投票功能
May 21 #PHP
制作个性化的WordPress登陆界面的实例教程
May 21 #PHP
详解WordPress中添加友情链接的方法
May 21 #PHP
You might like
用PHP读取超大文件的实例代码
2012/04/01 PHP
PHP中替换换行符的几种方法小结
2012/10/15 PHP
PHP数组排序函数合集 以及它们之间的联系分析
2013/06/27 PHP
php网站被挂木马后的修复方法总结
2014/11/06 PHP
php 5.6版本中编写一个PHP扩展的简单示例
2015/01/20 PHP
php实现字符串反转输出的方法
2015/03/14 PHP
javascript 仿QQ滑动菜单效果代码
2010/09/03 Javascript
JavaScript 函数replace深入了解
2013/03/14 Javascript
jquery ztree实现下拉树形框使用到了json数据
2014/05/14 Javascript
node中socket.io的事件使用详解
2014/12/15 Javascript
编写自己的jQuery提示框(Tip)插件
2015/02/05 Javascript
jQuery实现动画效果circle实例
2015/08/06 Javascript
jQuery Html控件基本操作(日常收集整理)
2016/03/11 Javascript
js验证框架实现代码分享
2016/05/18 Javascript
JavaScript中闭包之浅析解读(必看篇)
2016/08/25 Javascript
浅谈键盘上回车按钮的js触发事件
2017/02/13 Javascript
强大的 Angular 表单验证功能详细介绍
2017/05/23 Javascript
jQuery图片加载失败替换默认图片方法汇总
2017/11/29 jQuery
如何在 JavaScript 中更好地利用数组
2018/09/27 Javascript
新手入门js闭包学习过程解析
2019/10/08 Javascript
JS实现网站吸顶条
2020/01/08 Javascript
javascript设计模式 ? 装饰模式原理与应用实例分析
2020/04/14 Javascript
vue中watch和computed的区别与使用方法
2020/08/23 Javascript
[02:37]2018DOTA2亚洲邀请赛赛前采访-EG篇
2018/04/03 DOTA
简单谈谈Python中的反转字符串问题
2016/10/24 Python
python实现一个简单的udp通信的示例代码
2019/02/01 Python
python pandas时序处理相关功能详解
2019/07/03 Python
python里glob模块知识点总结
2021/01/05 Python
戴尔马来西亚官网:Dell Malaysia
2020/05/02 全球购物
美国狗旅行和户外用品领先供应商:kurgo
2020/08/18 全球购物
生态学毕业生自荐信
2013/10/27 职场文书
学生个人自我鉴定
2014/03/26 职场文书
安全责任书范文
2014/08/25 职场文书
初中同学会致辞
2015/08/01 职场文书
话题作文之生命的旋律
2019/12/17 职场文书
golang 比较浮点数的大小方式
2021/05/02 Golang