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 相关文章推荐
Windows2003 下 MySQL 数据库每天自动备份
Dec 21 PHP
smarty+adodb+部分自定义类的php开发模式
Dec 31 PHP
解析Extjs与php数据交互(增删查改)
Jun 25 PHP
zend Framework中的Layout(模块化得布局)详解
Jun 28 PHP
PHP中遇到BOM、编码导致json_decode函数无法解析问题
Jul 02 PHP
php调用shell的方法
Nov 05 PHP
php递归删除目录与文件的方法
Jan 30 PHP
PHP中STDCLASS用法实例分析
Nov 11 PHP
php实现解析xml并生成sql语句的方法
Feb 03 PHP
PHP实时统计中文字数和区别
Feb 28 PHP
php给数组赋值的实例方法
Sep 26 PHP
PHP pthreads v3下同步处理synchronized用法示例
Feb 21 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
全国FM电台频率大全 - 21 海南省
2020/03/11 无线电
php set_magic_quotes_runtime() 函数过时解决方法
2010/07/08 PHP
深入解析Session是否必须依赖Cookie
2013/08/02 PHP
ThinkPHP水印功能实现修复PNG透明水印并增加JPEG图片质量可调整
2014/11/05 PHP
php遍历树的常用方法汇总
2015/06/18 PHP
详解json在php中的应用
2018/09/30 PHP
PHP日期和时间函数的使用示例详解
2020/08/06 PHP
Js-$.extend扩展方法使方法参数更灵活
2013/01/15 Javascript
玩转JavaScript OOP - 类的实现详解
2016/06/08 Javascript
简单谈谈Vue 模板各类数据绑定
2016/09/25 Javascript
JavaScript易错知识点整理
2016/12/05 Javascript
利用js+css+html实现固定table的列头不动
2016/12/08 Javascript
three.js实现3D模型展示的示例代码
2017/12/31 Javascript
vue iview组件表格 render函数的使用方法详解
2018/03/15 Javascript
React降级配置及Ant Design配置详解
2018/12/27 Javascript
Vue SPA 初次进入加载动画实现代码
2019/11/14 Javascript
[07:09]DOTA2-DPC中国联赛 正赛 Ehome vs Elephant 选手采访
2021/03/11 DOTA
图文详解WinPE下安装Python
2016/05/17 Python
python解决Fedora解压zip时中文乱码的方法
2016/09/18 Python
python使用KNN算法手写体识别
2018/02/01 Python
python中正则表达式与模式匹配
2019/05/07 Python
python3 pygame实现接小球游戏
2019/05/14 Python
TENSORFLOW变量作用域(VARIABLE SCOPE)
2020/01/10 Python
keras自定义回调函数查看训练的loss和accuracy方式
2020/05/23 Python
HTML5 canvas 基本语法
2009/08/26 HTML / CSS
便携式太阳能系统的创新者:GOAL ZERO
2018/02/04 全球购物
Daniel Wellington官方海外旗舰店:丹尼尔惠灵顿DW手表
2018/02/22 全球购物
英国珠宝网站Argento: PANDORA、Olivia Burton和Nomination等
2020/05/08 全球购物
行政经理岗位职责
2013/11/09 职场文书
采购主管工作职责
2013/12/12 职场文书
精彩自我鉴定
2014/01/16 职场文书
集体备课反思
2014/02/12 职场文书
表扬稿范文
2015/01/17 职场文书
读《庄子》有感:美而不自知
2019/11/06 职场文书
vue组件的路由高亮问题解决方法
2021/05/11 Vue.js
Vue elementUI表单嵌套表格并对每行进行校验详解
2022/02/18 Vue.js