php 去掉指定的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);
}

以下是测试代码

 代码如下 复制代码

// 百度首页内容

$string = file_get_contents('http://www.111cn.net/');

// 去掉 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.baidu.com'>百度一下,你就知道</a>"; 
echo _strip_tags(array("b", "input", "a"),$str); #去掉 B 标签和 INPUT 标签 
?>
时间: 2024-09-30 05:19:21

php 去掉指定的html标签及内容的相关文章

读取指定网页,指定标签的内容,即提取网页上我想要的信息

问题描述 请问下读取HTML页面指定标签的内容,现在发现所有的内容都填充在div标签里面的,唯一的区别是我需要的信息的div的css里面定义的class和不需要的不一样,类似 <div class="xuyao">和<div class="buxuyao"> 现在怎么办. 顺便问下读取网页上指定标签的内容用什么工具比较好 谢谢了.希望在周一前能得到答案.周iyizhengshi开工.谢谢先了 解决方案 两种办法:1.自己写,用正则去匹配2.用

如何在指定的地方插入html内容和文本内容

 本文为大家介绍个小技巧可以在指定的地方插入html内容和文本内容,示例如下,感兴趣的朋友可以参考下 dhtml提供了两个方法来进行添加,insertAdjacentHTML和insertAdjacentText  insertAdjacentHTML方法:在指定的地方插入html标签语句.  原型:insertAdjacentHTML(swhere,stext)  参数:  swhere:指定插入html标签语句的地方,有四种值可以用:  1.beforeBegin:插入到标签开始前  2.a

jQuery获取标签文本内容和html内容的方法

 这篇文章主要介绍了jQuery获取标签文本内容和html内容的方法,实例分析了jQuery中text和html方法的使用技巧,具有一定参考借鉴价值,需要的朋友可以参考下     本文实例讲述了jQuery获取标签文本内容和html内容的方法.分享给大家供大家参考.具体分析如下: jQuery可以通过text和html方法获取指定标签的文本内容或者html内容 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 <!DOCTYPE

解决方案-截取指定长度的富文本内容可能会出现页面被凌乱的问题

问题描述 截取指定长度的富文本内容可能会出现页面被凌乱的问题 5C freemaker页面中截取指定长度的字符串,超出长度的部分用-替代 <#if topic.title?length lt 35> ${topic.title}<#else> ${topic.title?substring(035)}... </#if> 如果数据库中topic.title的内容不是纯文本,而是富文本(含有很多html标签的文本)内容,按指定 长度截取的话,就有可能会破坏富文本的html

jQuery获取标签文本内容和html内容的方法_jquery

本文实例讲述了jQuery获取标签文本内容和html内容的方法.分享给大家供大家参考.具体分析如下: jQuery可以通过text和html方法获取指定标签的文本内容或者html内容 <!DOCTYPE html> <html> <head> <script src="js/jquery.min.js"> </script> <script> $(document).ready(function(){ $(&quo

如何在指定的地方插入html内容和文本内容_javascript技巧

dhtml提供了两个方法来进行添加,insertAdjacentHTML和insertAdjacentText insertAdjacentHTML方法:在指定的地方插入html标签语句. 原型:insertAdjacentHTML(swhere,stext) 参数: swhere:指定插入html标签语句的地方,有四种值可以用: 1.beforeBegin:插入到标签开始前 2.afterBegin:插入到标签开始标记后 3.beforeEnd:插入到标签结束标记前 4.afterEnd:插入

实例分析36氪 巧用canonical标签实现内容的原创效果

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 自从百度今年推出一系列针对内容的算法升级之后,很多站长手足无措阵脚大乱大呼无从下手,到底怎样的内容才是真正的原创?为什么新浪.腾讯.搜狐等大站同样是转载却被判定为原创?本文以36氪为实例分析说明站内优化的重要性. 提到站内优化,很多站长会不约而同说到文章内容的质量和更新频率.其实,个人看来,这个理解过于狭隘.百度今年1月份在站长平台发布了一篇

spring读取tomcat下context的Environment标签的内容

问题描述 spring读取tomcat下context的Environment标签的内容 1C 根据项目需要,我们要把相关关键的配置全都放入context中,目前通过jndi能配置数据库,现在希望将其他的配置也放入context,我之前上网查到了相关的Environment标签可以存放数据,现在就是需要能将Environment标签的内容在Spring的配置文件中给显示出来,求问各位大神,有没有类似的解决方案,(注:我不希望有多个关键项文件,例如多个properties文件等). 解决方案 不是

LI标签中内容超过长度后以省略号显示的方法

在使用DIV+CSS网页标准制作网页时,LI标签中内容超过长度后以省略号显示的方法. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><meta http-equiv="Content-Type" content="text/html; charset