如题,正则也不是怎么会用,后来搜索了下相关的问题,得到的结果多是这样的正则去除
$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标签的
$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标签的
$allow_tags = '<b>';
$s = strip_tags($s, $$allow_tags);//$s是字符串,$allow_tags是不过滤掉的标签
但是 我要去除的是用户指定的 某个或多个标签
如果在用户指定的 一次循环中 我调用strip_tags允许<b>那么其他的也就完全给替换掉了
有些是要保留的 指定的标签 不是 一次全去完