正则去除指定的html代码问题

小脚丫666 2010-07-20 05:24:27
如题,正则也不是怎么会用,后来搜索了下相关的问题,得到的结果多是这样的正则去除


$tagname 是指定要去除的html标签
$sc = '/<' . $tagname . '(?:\s[^>]*)\?\>([\s\S]*?)?<\/' . $tagname . '>/is';


拿a标签举例:
如果没理解错误的话是 上面是取得<a 任何内容1>任何内容2</a>这样的结果
如果我要是替换的掉所取得的内容的话 里面的任何内容2 应该也就被替换掉了,我要保留这部分
所以改成了

$tagname 是指定要去除的html标签
$sc="/<*?".$tagname."[^>]*?>/is";


但是这样能把前面的东西去掉,后面的</a></div> 等等 却不能去掉了

之前看到过有人用| 或的方式 "(<" + tag[i] + @"[\s\S]*?>)|(</" + tag[i] + @"[\s\S]*?>)";
但是 似乎依旧不起作用,报错。

请问下我该如何更改这例正则呢?可以完全去除 指定的html标签的
...全文
223 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
小脚丫666 2010-07-24
  • 打赏
  • 举报
回复
UP..
Dleno 2010-07-21
  • 打赏
  • 举报
回复
$sc="/<(\/)?[^>]*?".$tagname."[^>]*?>/is";
美人心计1999 2010-07-21
  • 打赏
  • 举报
回复
帮顶...................
小脚丫666 2010-07-21
  • 打赏
  • 举报
回复
恩 知道 自带的有这个 strip_tags
但是 我要去除的是用户指定的 某个或多个标签
如果在用户指定的 一次循环中 我调用strip_tags允许<b>那么其他的也就完全给替换掉了
有些是要保留的 指定的标签 不是 一次全去完
小脚丫666 2010-07-21
  • 打赏
  • 举报
回复
恩 楼上的这个 基本算是 实现了 但是 内容里多了好多/
kyzy_yy_pm 2010-07-20
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 yangball 的回复:]
引用 1 楼 jakey9826 的回复:

strip_tags试试这个函数.

对,strip_tags 这个函数就能去除了。
[/Quote]$s = 'sa;d<b>f</b>js<a href="http://www.baidu.com">百度</a>aldjflksjadlf';
$allow_tags = '<b>';
$s = strip_tags($s, $$allow_tags);//$s是字符串,$allow_tags是不过滤掉的标签
床上等您 2010-07-20
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 jakey9826 的回复:]

strip_tags试试这个函数.
[/Quote]
对,strip_tags 这个函数就能去除了。
程序猿之殇 2010-07-20
  • 打赏
  • 举报
回复
strip_tags试试这个函数.

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧