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 相关文章推荐
Optimizer与Debugger兼容性问题的解决方法
Dec 01 PHP
使用PHP提取视频网站页面中的FLASH地址的代码
Apr 17 PHP
PHP的加密方式及原理
Jun 14 PHP
php中in_array函数用法探究
Nov 25 PHP
php 删除cookie方法详解
Dec 01 PHP
PHP使用JSON和将json还原成数组
Feb 12 PHP
php实现scws中文分词搜索的方法
Dec 25 PHP
PHP二维数组去重算法
Dec 17 PHP
PDO::prepare讲解
Jan 29 PHP
PHP工厂模式、单例模式与注册树模式实例详解
Jun 03 PHP
yii框架结合charjs统计上一年与当前年数据的方法示例
Apr 04 PHP
php计数排序算法的实现代码(附四个实例代码)
Mar 31 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 遍历数据表数据并列表横向排列的代码
2009/09/05 PHP
php gd2 上传图片/文字水印/图片水印/等比例缩略图/实现代码
2010/05/15 PHP
php中存储用户ID和密码到mysql数据库的方法
2013/02/06 PHP
PHP中单例模式的使用场景与使用方法讲解
2019/03/18 PHP
深入理解JavaScript作用域和作用域链
2011/10/21 Javascript
jquery操作checkbox实现全选和取消全选
2014/05/02 Javascript
NodeJS中利用Promise来封装异步函数
2015/02/25 NodeJs
JavaScript的事件代理和委托实例分析
2015/03/25 Javascript
jQuery获取页面及个元素高度、宽度的总结——超实用
2015/07/28 Javascript
js+html5操作sqlite数据库的方法
2016/02/02 Javascript
JS判断日期格式是否合法的简单实例
2016/07/11 Javascript
jquery结合html实现中英文页面切换
2016/11/29 Javascript
js实现登录注册框手机号和验证码校验(前端部分)
2017/09/28 Javascript
详解vue-cli项目中用json-sever搭建mock服务器
2017/11/02 Javascript
JavaScript 中的 this 工作原理
2018/06/20 Javascript
jquery获取file表单选择文件的路径、名字、大小、类型
2019/01/18 jQuery
详解vue.js移动端配置flexible.js及注意事项
2019/04/10 Javascript
微信小程序实现Swiper轮播图效果
2019/11/22 Javascript
Python中动态创建类实例的方法
2017/03/24 Python
Python数据分析中Groupby用法之通过字典或Series进行分组的实例
2017/12/08 Python
PyCharm代码格式调整方法
2018/05/23 Python
python GUI库图形界面开发之PyQt5信号与槽多窗口数据传递详细使用方法与实例
2020/03/08 Python
tensorflow中tf.reduce_mean函数的使用
2020/04/19 Python
Python基于wordcloud及jieba实现中国地图词云图
2020/06/09 Python
OSPF有什么优点?为什么OSPF比RIP收敛快?
2013/02/13 面试题
Linux面试经常问的文件系统操作命令
2015/11/05 面试题
行政助理岗位职责范文
2013/12/03 职场文书
优秀员工表扬信
2014/01/17 职场文书
实习老师离校感言
2014/02/03 职场文书
教师党员公开承诺书
2014/03/25 职场文书
《大禹治水》教学反思
2014/04/27 职场文书
万里长城导游词
2015/01/30 职场文书
绿色环保倡议书
2015/04/28 职场文书
python - timeit 时间模块
2021/04/06 Python
elementui的el-popover修改样式不生效的解决
2021/06/30 Javascript
SQL SERVER触发器详解
2022/02/24 SQL Server