PHP中删除某个特定的HTML标签

使用PHP的内部函数strip_tags可以很方便的删除掉字符串中的所有HTML标签,但是很多情况下我们只需要删除某个特定的标签,有没有什么简单的办法呢?我仔细查看了下PHP手册,其实有个例子已经实现了,很少有人注意到,我简单的介绍一下。

 <?php

 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 $text;

   }

?>

这个函数很短,但它实现的功能很实用,第一个参数是原字符串,第二个参数是要删除的HTML的标签数组,如果要删除<a>和<p>标签,只需要使用下面的代码:

 <?php

$tags = array();

$tags[0]='a';

$tags[1]='p';

 $str = "<a href=http://www.ajaxstu.com>link</a><p>help</p>";

echo strip_selected_tags($str,$tags);

?>

是不是很简单呢?

阅读全文 Tags: php   评论:0 引用:0 浏览:

asp使用正则表达式去除script代码和HTML代码

一、清楚内容中的Javsscript 代码  这个代码的作用是去掉用<script  </script>标记包含的所有部分。根据实际需要,它也许不能满足要求。如果用在屏蔽客户提交代码的地方,应保证这一步在最后执行。很多人还会拼凑这样的标记,应小心。<% Function ClearJSCode(originCode)  Dim reg  set reg = New RegExp  reg.Pattern = "&...

阅读全文 Tags: 正则表达式   评论:0 引用:0 浏览:

ASP中正则对象小小的总结

这篇文章是把asp中使用正则的一些常用的东西做了一个总结。当然,这些还是很重要的,熟悉之前可能需要先记住这些东西。1.建立正则对象 Set regEx=New RegExp ‘建立正则对象 属性: regEx.Pattern=vpattern ‘获取正则表达式 regEx.IgnoreCase=True ‘是否区分大小写匹配 regEx.Global=True ‘是否进行全局匹配 方法: Set Matches=regEx.Execute(str)...

阅读全文 Tags: 正则表达式   评论:0 引用:0 浏览:

正则表达式大全

真tmd的全,懒人必备.要的时候看看吧.摘要:收集一些常用的正则表达式。 正则表达式用于字符串处理,表单验证等场合,实用高效,但用到时总是不太把握,以致往往要上网查一番。我将一些常用的表达式收藏在这里,作备忘之用。本贴随时会更新。 匹配中文字符的正则表达式: [\u4e00-\u9fa5] 匹配双字节字符(包括汉字在内):[^\x00-\xff] 应用:计算字符串的长度(一个双字节字符长度计2,ASCII字符计1) String.prototype.len=function(){ret...

阅读全文 Tags: 正则表达式   评论:0 引用:0 浏览:

javascript中使用正则表达式的replace方法

正则表达式我经常用,但是用的都是最基础的,基本上都是用于验证一个字符串的合理性。例如: var m="12345"; var n=/^\d+$/; if(n.test(m)) alert('ok'); 今天看了一个关于replace方法中用正则的例子,很有价值,可以轻松的实现诸如lenb和trim方法。 我想总结的不是这个,而是在replace中模式与$的替换,例如: var m=eval("/(northsnow)+/g"); var n="i...

阅读全文 Tags: 正则表达式   评论:0 引用:0 浏览:

vbscript中用正则表达式时获得匹配字符串

本文作者:塞北的雪vbscript中用正则比在javascript中麻烦一些。javascript中不用创建RegExp对象就可以用正则,但是在vb中就不可以。还有javascript中可以利用RegExp.$1获得模式匹配,但是vb中就不行。需要用到另外一个对象和一个个集合:MatchCollection,Match   举一个例子如下:   假设有一个有这样一个串    strNor=";northsnow:塞北的雪;csdn:中国最大的开发者网络;crc:长春轨道客车股份有限公司...

阅读全文 Tags: 正则表达式   评论:0 引用:0 浏览:

asp下常用正则表达式及字符串验证方法

'常用正则表达式模式 const z_Pat1="^\w+$" '匹配有字母,数字,下滑线组成的字符串 const z_PatSW="^[\x00-\xff]+$" '匹配所有单字节长度的字符组成的字符串 const z_PatDW="^[^\x00-\xff]+$" '匹配所有双字节长度的字符组成的字符串 const z_PatDW2="[^\x00-\xff]+" '字符串是否含有双字节字 const z_Pat...

阅读全文 Tags: 正则表达式   评论:0 引用:0 浏览:

枫的专栏:正则表达式快速入门教程(第二版)

枫的专栏:正则表达式快速入门教程(第二版)原文称30分钟入门.您可能需要更多的时间.原文url http://blog.csdn.net/feng19821209/archive/2006/10/18/1338910.aspx本文目标 30分钟内让你明白正则表达式是什么,并对它有一些基本的了解,让你可以在自己的程序或网页里使用它。 如何使用本教程 别被下面那些复杂的表达式吓倒,只要跟着我一步一步来,你会发现正则表达式其实并不像你想像中的那么困难。当然,如果你看完了这篇教程之后发现自己明白了 很多...

阅读全文 Tags: 正则表达式   评论:0 引用:0 浏览:

正则表达式基本入门

正则表达式是程序员不可能离开的东西.至少是常见的语言.在web开发中更是无处不在.掌握它无疑是成为高手的第一步.....当然,下面的文章可以在初学的时候读一读.正则表达式的工作方式就象Windows或者*nix系统里面的文件名替代符 - 你可以使用特定的*或者?来指定一系列文件。但是使用正则表达式的特殊字符或者metacharacters(元字符)来表示这类事情会更准确。   正则表达式把大多数字符当作直接字符,就好像正则表达式 mike,将只会匹配按顺序的字符序列m - i - k - e。与...

阅读全文 Tags: 正则表达式   评论:0 引用:0 浏览:

正则表达式(C#)例子:获取网页链接

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Text.RegularExpressions; namespace cs1 { public partial class Form1...

阅读全文 Tags: 正则表达式   评论:0 引用:0 浏览:

vbscript中用正则时获得匹配串的心得

作者邮箱:northsnow@163.com vbscript中用正则比在javascript中麻烦一些。javascript中不用创建RegExp对象就可以用正则,但是在vb中就不可以。还有javascript中可以利用RegExp.$1获得模式匹配,但是vb中就不行。需要用到另外一个对象和一个个集合:MatchCollection,Match   举一个例子如下:   假设有一个有这样一个串    strNor=";northsnow:塞北的雪;csdn:中国最大的开发者网络;cr...

阅读全文 Tags: 正则表达式   评论:0 引用:0 浏览:

一个正则表达式验证密码强度

规则如下: 四种组合指 数字,小写字母,大写字母,其它字符 把密码强度分为四等: 1. 密码长度小于或等于四位.或者密码只有一种组合 2. 密码长度大于四位, 且有两种组合. 3. 密码长度大于四位, 且有三种组合. 4. 密码长度大于四位, 且有四种组合. 如果没有输入则返回0 这个是相对简单的一个方法,仔细看来还有待改进。判断函数: <script language="JavaScript"> function Evaluate(word) { re...

阅读全文 Tags: 正则表达式   评论:0 引用:0 浏览:

利用正则快速找出两个字符串的不同字符

<script language="JavaScript"> var str1 = "求一个比较字符串处理功能"; var str2 = "求两或三个比较字符串处理"; var re = new RegExp("(?=.*?)[^" + str1 +"](?=.*?)|(?=.*?)[^" + str2 + "](?=.*?)", "g"); v...

阅读全文 Tags: 正则表达式   评论:0 引用:0 浏览:

javascript与正则表达式培训

首先是三道测试题: 1, var str=“ abbbbacc”; var rs=str.replace(“a”,”0”); (A)0bbbbacc (B)0bbbb0cc 2,var str=“ abbbbacc”; var rs=str.replace(“/a/”,”0”); (A)0bbbbacc (B)0bbbb0cc 3,var str=&ld...

阅读全文 Tags: 正则表达式   评论:0 引用:0 浏览:

.NET正则表达式使用高级技巧之替换类

作者: thinhunan 出处: 博客园 因为.net的基本正则语法和Perl5基本相同,所以基本语法你可以去下载一下M$的JS帮助文档,上面有详细的说明\d表示什么,{,5}表示什么,\[表示什么……,这里我只想提醒大家一点,为了避免和反向引用相冲突,在你用\nn表示八进制的ASCII码时,请在\后加0,就是说,\40在表示ASCII码时,请这样写\040。   替换   Regex类有一个静态的Replace方法,其实例也有一个Replace...

阅读全文 Tags: 正则表达式   评论:0 引用:0 浏览:

分页:[«]1[2][3][4][»]