-
php 去掉指定的html标签及内容
本文章给家收集了大量的关于html标签的去除方法,很多朋友可能会想到使用strip_tags函数,但这个函数会把所有的html标签全部删除了,下面我来给大家介绍去掉指定的html标签及内容方法,有需要了解的朋友可参考。
string strip_tags ( string str [, string allowable_tags] )
弊端:这个函数只能保留想要的html标签,就是参数string allowable_tags,在yizero的评论中我知道了这个函数的参数allowable_tags的其他的用法,代码如下:
strip_tags($source, ”); 去掉所以的html标签。
strip_tags($source, ‘<div><img><em>’); 保留字符串中的div、img、em标签,如果想去掉的html的指定标签,那么这个函数就不能满足需求了,于是乎我用到了这个函数,代码如下:
- <?php
- /**
- * 删除指定的HTML标签及其中内容,暂时只支持单标签清理
- *
- * @param string $string -- 要处理的字符串
- * @param string $tagname -- 要删除的标签名称
- * @param boolean $clear -- 是否删除标签内容
- * @return string -- 返回处理完的字符串
- */
- function replace_html_tag($string, $tagname, $clear = false){
- $re = $clear ? '' : '1';
- $sc = '/<' . $tagname . '(?:s[^>]*)?>([sS]*?)?</' . $tagname . '>/i';
- return preg_replace($sc, $re, $string);
- }
以下是测试代码,代码如下:
- // php粉丝网首页内容
- $string = file_get_contents('http://www.phpfensi.com/');
- // 去掉 style 及包含内容
- $string = replace_html_tag($string, 'style', true);
- $string = replace_html_tag($string, 'script', true);
- // 去掉 a 标签,并保存其中内容
- $string = replace_html_tag($string, 'a');
- // 去掉 span 标签,并保存其中内容
- $string = replace_html_tag($string, 'span');
- echo $string;
- ?>
如果我们要删除指定两者之间的数据,代码如下:
- <?php
- /**
- * PHP去掉特定的html标签
- * @param array $string
- * @param bool $str
- * @return string
- */
- function _strip_tags($tagsArr,$str) {
- foreach ($tagsArr as $tag) {
- $p[]="/(<(?:/".$tag."|".$tag.")[^>]*>)/i";
- }
- $return_str = preg_replace($p,"",$str);
- return $return_str;
- }
- $str = "<b>您好</b><input type='text' name='' /><a href='http://www.phpfensi.com'>php粉丝网</a>";
- echo _strip_tags(array("b", "input", "a"),$str); #去掉 B 标签和 INPUT 标签
- ?>
出处:http://www.phpfensi.com/php/20140106/1097.html
栏目列表
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
SQL SERVER中递归
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比
一款纯 JS 实现的轻量化图片编辑器
关于开发 VS Code 插件遇到的 workbench.scm.
前端设计模式——观察者模式
前端设计模式——中介者模式
创建型-原型模式