导航:首页 > 净水问答 > php正则表达式过滤span

php正则表达式过滤span

发布时间:2025-06-18 05:03:53

① unknownerrorPHP正则的UnknownModifier错误解决方法

当编写PHP代码时,遇到正则表达式错误“Unknown Modifier 'p'”可能令开发者感到困惑。本文将详细介绍此问题的起因与解决办法,旨在帮助PHP开发者顺利解决该问题。

错误提示通常出现在尝试运行以下正则表达式代码时:$a='2tóngdòng垌3';echo preg_replace('/[^<]*?/','',$a);。

问题的根源在于:在使用斜杠(/)作为正则表达式的定界符时,正则表达式内部也包含斜杠,导致PHP误将其中一个斜杠解析为结束定界符,引发未知修饰符错误。

解决这个问题的方法有以下两种:

方法一:通过添加转义符来明确区别正则表达式中的斜杠,避免误识别。修改后的代码如下:echo preg_replace('/[^<]*?<\/span>/','',$a);。

方法二:改变正则表达式的定界符,以避免冲突。可以使用花括号({})作为定界符,代码修改如下:echo preg_replace('{[^<]*?}','',$a);。

通过上述解决方法,可以有效避免在PHP中使用正则表达式时遇到“Unknown Modifier 'p'”错误。理解并正确处理此类错误,对于提升代码质量与编写效率至关重要。希望本文提供的信息能为有需要的PHP开发者提供帮助,助您在编程路上更加顺利。

② 使用php正则式去除字符串中最后一个斜杠及之后的内容

可以参考下面的两种方法:

1、var s = '一句话描/述(您的)/疑问/123一二三abc';

s.replace(/(.*)/{1}.*/, '$1'); //标准模式下,.*会自动匹配到最专后一个位置

//输出属 "一句话描/述(您的)/疑问"

2、$str = '一句话描/述(您的)疑问/123一二三abc';

$str = preg_replace('/(.*)/{1}([^/]*)/i', '$1', $str);

echo $str;

(2)php正则表达式过滤span扩展阅读:

PHP正则表达式中的参考函数:

pattern: 要搜索的模式,字符串类型。

subject:输入字符串。

match: 如果提供了参数matches,它将被填充为搜索结果,数据结构为一维数组。

flags: 可以设置为PREG_OFFSET_CAPTURE,使用搜索结果的第0个元素为匹配的字符串,第1个元素为对应的偏移量(位置)

offset: 搜索从目标字符串的起始位置开始匹配。

pattern:要搜索的模式。可以是一个字符串或字符串数组。

replacement:用于替换的字符串或字符串数组

③ 用php过滤html部分标签

$str=preg_replace("/\s+/", " ", $str); //过滤多余回车
$str=preg_replace("/<[ ]+/si","<",$str); //过滤<__("<"号后面带空格)

$str=preg_replace("/<\!--.*?-->/si","",$str); //注释
$str=preg_replace("/<(\!.*?)>/si","",$str); //过滤DOCTYPE
$str=preg_replace("/<(\/?html.*?)>/si","",$str); //过滤html标签
$str=preg_replace("/<(\/?head.*?)>/si","",$str); //过滤head标签
$str=preg_replace("/<(\/?meta.*?)>/si","",$str); //过滤meta标签
$str=preg_replace("/<(\/?body.*?)>/si","",$str); //过滤body标签
$str=preg_replace("/<(\/?link.*?)>/si","",$str); //过滤link标签
$str=preg_replace("/<(\/?form.*?)>/si","",$str); //过滤form标签
$str=preg_replace("/cookie/si","COOKIE",$str); //过滤COOKIE标签

$str=preg_replace("/<(applet.*?)>(.*?)<(\/applet.*?)>/si","",$str); //过滤applet标签
$str=preg_replace("/<(\/?applet.*?)>/si","",$str); //过滤applet标签

$str=preg_replace("/<(style.*?)>(.*?)<(\/style.*?)>/si","",$str); //过滤style标签
$str=preg_replace("/<(\/?style.*?)>/si","",$str); //过滤style标签

$str=preg_replace("/<(title.*?)>(.*?)<(\/title.*?)>/si","",$str); //过滤title标签
$str=preg_replace("/<(\/?title.*?)>/si","",$str); //过滤title标签

$str=preg_replace("/<(object.*?)>(.*?)<(\/object.*?)>/si","",$str); //过滤object标签
$str=preg_replace("/<(\/?objec.*?)>/si","",$str); //过滤object标签

$str=preg_replace("/<(noframes.*?)>(.*?)<(\/noframes.*?)>/si","",$str); //过滤noframes标签
$str=preg_replace("/<(\/?noframes.*?)>/si","",$str); //过滤noframes标签

$str=preg_replace("/<(i?frame.*?)>(.*?)<(\/i?frame.*?)>/si","",$str); //过滤frame标签
$str=preg_replace("/<(\/?i?frame.*?)>/si","",$str); //过滤frame标签

$str=preg_replace("/<(script.*?)>(.*?)<(\/script.*?)>/si","",$str); //过滤script标签
$str=preg_replace("/<(\/?script.*?)>/si","",$str); //过滤script标签
$str=preg_replace("/javascript/si","Javascript",$str); //过滤script标签
$str=preg_replace("/vbscript/si","Vbscript",$str); //过滤script标签
$str=preg_replace("/on([a-z]+)\s*=/si","On\\1=",$str); //过滤script标签
$str=preg_replace("/&#/si","&#",$str); //过滤script标签,如javAsCript:alert(

清除空格,换行

function DeleteHtml($str)
{
$str = trim($str);
$str = strip_tags($str,"");
$str = ereg_replace("\t","",$str);
$str = ereg_replace("\r\n","",$str);
$str = ereg_replace("\r","",$str);
$str = ereg_replace("\n","",$str);
$str = ereg_replace(" "," ",$str);
return trim($str);
}

过滤HTML属性

1,过滤所有html标签的正则表达式:

复制代码 代码如下:

</?[^>]+>

//过滤所有html标签的属性的正则表达式:

$html = preg_replace("/<([a-zA-Z]+)[^>]*>/","<\\1>",$html);

3,过滤部分html标签的正则表达式的排除式(比如排除<p>,即不过滤<p>):

复制代码 代码如下:

</?[^pP/>]+>

4,过滤部分html标签的正则表达式的枚举式(比如需要过滤<a><p><b>等):

复制代码 代码如下:

</?[aApPbB][^>]*>

5,过滤部分html标签的属性的正则表达式的排除式(比如排除alt属性,即不过滤alt属性):

复制代码 代码如下:

\s(?!alt)[a-zA-Z]+=[^\s]*

6,过滤部分html标签的属性的正则表达式的枚举式(比如alt属性):

复制代码 代码如下:

(\s)alt=[^\s]*

④ php正则表达来获取html中的部分内容

1、几种函数的简单说明:

(1)preg_grep -- 返回与模式匹配的数组单元
preg_grep 返回一个input 数组中与给定的 pattern 模式相匹配的单元所组成的数组。

(2)preg_match -- 进行正则表达式匹配
说明:int preg_match ( string pattern, string subject [, array matches [, int flags]] )在 subject 字符串中搜索与 pattern 给出的正则表达式相匹配的内容。 返回值0或1。

(3)preg_replace -- 执行正则表达式的搜索和替换

(4)preg_split -- 用正则表达式分割字符串

2. 一般来说,如果用正则来获取匹配内容,一般使用 preg_match/ preg_match_all 函数。

补充回答:

正则表达式如下:
'%<div class="wap2"><span>功能</span>(.*?)</div>%si'

以下是代码,经测试,运行正常:

<?php
$str = '<div class="wap2"><span>功能</span>这里面是要获取的内容,不能确定什么字符,可能是数字(123456…)字母(badn…),特殊浮等(o_O\(^o^)/…)</div>';
$pa = '%<div class="wap2"><span>功能</span>(.*?)</div>%si';
preg_match($pa,$str,$r);
echo $r[1];
?>

阅读全文

与php正则表达式过滤span相关的资料

热点内容
污水除泡剂怎么使用 浏览:921
反渗透膜论文 浏览:259
过滤净水器怎么放小苏打 浏览:684
反渗透出来的水是什么水 浏览:311
污水中的污泥怎么处理 浏览:625
奥克斯净化器怎么使用说明 浏览:408
长春污水厂建设 浏览:989
含油量对超滤膜通量的影响 浏览:336
福建古巴胶树脂 浏览:909
陶壶烧水会有水垢吗 浏览:80
西宁印染污水聚丙烯酰胺多少钱 浏览:709
污水处理如何降低水中色度 浏览:371
蒸馏水什么行业需求大 浏览:626
吴川市的污水 浏览:10
csm反渗透膜价格 浏览:780
含煤废水氯根 浏览:934
回力联名鞋防盗扣有什么用 浏览:529
雪铁龙滤芯用的什么品牌的 浏览:803
南京电热水器除垢 浏览:568
污水处理设备医用空气消毒机 浏览:587