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 相关文章推荐
一个ORACLE分页程序,挺实用的.
Oct 09 PHP
php实现的CSS更新类实例
Sep 22 PHP
php操作(删除,提取,增加)zip文件方法详解
Mar 12 PHP
PHP实现简单的新闻发布系统实例
Jul 28 PHP
Linux安装配置php环境的方法
Jan 14 PHP
利用PHP将图片转换成base64编码的实现方法
Sep 13 PHP
PHP实现递归目录的5种方法
Oct 27 PHP
php实现多维数组排序的方法示例
Mar 23 PHP
php脚本守护进程原理与实现方法详解
Jul 20 PHP
php实现基于pdo的事务处理方法示例
Jul 21 PHP
yii2实现Ueditor百度编辑器的示例代码
Nov 02 PHP
PHP设计模式之迭代器模式Iterator实例分析【对象行为型】
Apr 26 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 Stream_*系列函数
2010/08/01 PHP
探讨:php中在foreach中使用foreach ($arr as &amp;$value) 这种类型的解释
2013/06/24 PHP
PHP中的多种加密技术及代码示例解析
2016/10/20 PHP
javascript中的107个基础知识收集整理 推荐
2010/03/29 Javascript
JQuery 绑定select标签的onchange事件,弹出选择的值,并实现跳转、传参
2011/01/06 Javascript
js对象之JS入门之Array对象操作小结
2011/01/09 Javascript
showModalDialog在谷歌浏览器下会返回Null的解决方法
2013/11/27 Javascript
javascript 中that的含义示例介绍
2014/05/14 Javascript
AngularJS学习笔记之依赖注入详解
2016/05/16 Javascript
jquery.validate使用详解
2016/06/02 Javascript
深入剖析JavaScript面向对象编程
2016/07/12 Javascript
jQuery中常用动画效果函数(日常整理)
2016/09/17 Javascript
Angular.JS内置服务$http对数据库的增删改使用教程
2017/05/07 Javascript
基于js粘贴事件paste简单解析以及遇到的坑
2017/09/07 Javascript
vue.js将时间戳转化为日期格式的实现代码
2018/06/05 Javascript
JavaScript实现的DOM绘制柱状图效果示例
2018/08/08 Javascript
JS立即执行函数功能与用法分析
2019/01/15 Javascript
ES6基础之解构赋值(destructuring assignment)
2019/02/21 Javascript
JavaScript 性能提升之路(推荐)
2019/04/10 Javascript
基于javascript处理nginx请求过程详解
2020/07/07 Javascript
如何利用JavaScript编写更好的条件语句详解
2020/08/10 Javascript
Python读取键盘输入的2种方法
2015/06/16 Python
浅析Python函数式编程
2018/10/06 Python
Python解决两个整数相除只得到整数部分的实例
2018/11/10 Python
Scrapy-Redis结合POST请求获取数据的方法示例
2019/05/07 Python
python Gunicorn服务器使用方法详解
2019/07/22 Python
使用Puppeteer爬取微信文章的实现
2020/02/11 Python
python 插入日期数据到Oracle实例
2020/03/02 Python
python和php学习哪个更有发展
2020/06/17 Python
三星印度官网:Samsung印度
2019/08/03 全球购物
俄罗斯最大的在线珠宝大卖场:Nebo
2019/12/08 全球购物
在子网210.27.48.21/30种有多少个可用地址?分别是什么?
2014/07/27 面试题
优秀德育工作者事迹材料
2014/05/07 职场文书
人口与计划生育目标管理责任书
2014/07/29 职场文书
2015年度员工自我评价范文
2015/03/11 职场文书
SQLServer2019 数据库环境搭建与使用的实现
2021/04/08 SQL Server