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动态图像的创建
Oct 09 PHP
第七节--类的静态成员
Nov 16 PHP
smarty+adodb+部分自定义类的php开发模式
Dec 31 PHP
PHP面向对象分析设计的经验原则
Sep 20 PHP
PHP缓存技术的多种方法小结
Aug 14 PHP
js和php邮箱地址验证的实现方法
Jan 09 PHP
详解Yii2.0 rules验证规则集合
Mar 21 PHP
PHP实现生成数据字典功能示例
May 24 PHP
ThinkPHP5 的简单搭建和使用详解
Nov 15 PHP
PHP date()格式MySQL中插入datetime方法
Jan 29 PHP
yii框架结合charjs实现统计30天数据的方法
Apr 04 PHP
PHP 扩展Memcached命令用法实例总结
Jun 04 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
Apache设置虚拟WEB
2006/10/09 PHP
destoon整合UCenter图文教程
2014/06/21 PHP
THINKPHP内容分页代码分享
2015/01/14 PHP
PHP基于方差和标准差计算学生成绩的稳定性示例
2017/07/04 PHP
PHP实现Redis单据锁以及防止并发重复写入
2018/04/10 PHP
浅析JQuery获取和设置Select选项的常用方法总结
2013/07/04 Javascript
For循环中分号隔开的3部分的执行顺序探讨
2014/05/27 Javascript
JavaScript实现在标题栏上显示当前日期的方法
2015/03/19 Javascript
Javascript使用post方法提交数据实例
2015/08/03 Javascript
JS组件Bootstrap Select2使用方法解析
2016/05/30 Javascript
js传值后台中文出现乱码的解决方法
2016/06/30 Javascript
js判断请求的url是否可访问,支持跨域判断的实现方法
2016/09/17 Javascript
bootstarp modal框居中显示的实现代码
2017/02/18 Javascript
通过js修改input、select默认字体颜色
2017/04/19 Javascript
Vue2.0实现将页面中表格数据导出excel的实例
2017/08/09 Javascript
微信小程序使用Socket的实例
2017/09/19 Javascript
vue Element左侧无限级菜单实现
2020/06/10 Javascript
itchat接口使用示例
2017/10/23 Python
深入flask之异步非堵塞实现代码示例
2018/07/31 Python
python获取磁盘号下盘符步骤详解
2019/06/19 Python
面向对象学习之pygame坦克大战
2019/09/11 Python
Python小整数对象池和字符串intern实例解析
2020/03/21 Python
django orm模块中的 is_delete用法
2020/05/20 Python
解决运行出现'dict' object has no attribute 'has_key'问题
2020/07/15 Python
如何用canvas实现在线签名的示例代码
2018/07/10 HTML / CSS
eBay比利时购物网站:eBay.be
2019/08/09 全球购物
Farah官方网站:男士服装及配件
2019/11/01 全球购物
美国宠物护理专家:Revival Animal Health
2020/01/05 全球购物
大唐面试试题(CPU,UNIX等等)
2012/01/11 面试题
求职推荐信
2013/10/28 职场文书
函授大专自我鉴定
2013/11/01 职场文书
小学六一儿童节活动方案
2014/08/27 职场文书
2014年学校办公室工作总结
2014/12/19 职场文书
2019年警察入党转正申请书最新范文
2019/09/03 职场文书
使用Golang的channel交叉打印两个数组的操作
2021/04/29 Golang
netty 实现tomcat的示例代码
2022/06/05 Servers