首页
学习
活动
专区
圈层
工具
发布

PHP正则替换preg_replace函数的使用

preg_replace("/0/","A",$str); 这样就是将0变成A的意思了 echo preg_replace("/[0-9]/","",$str);//去掉所有数字 echo preg_replace...("/[a-z]/","",$str); //这样是去掉所有小写字母 echo preg_replace("/[A-Z]/","",$str); //这样是去掉所有大写字母 echo preg_replace...也可以看到,匹配的字符串必须加 / /(看例子的第一个参数) $str="acsdcsscsdcd"; echo preg_replace("//","",$str); //这个是表示去除以结尾的那部份,输出结果是:acsdcssdcd 注意: 上面的 .* 是表示任何字符,也就是说不管包住的是什么都去掉其中....也是字符串,那么所有模式都使用这个字符串来匹配; 图片 replace少于 2.pattern是数组,replace也是数组,则中对应的 元素进行替换 3.如果数组pattern大于replace,

3.5K30

php使用正则表达式实现替换的方法

php正则表达式实现替换的方法:首先创建一个PHP示例文件;然后定义一个字符串;最后通过正则表达式“preg_replace("/[0-9]/","",$str);”去掉字符串中所有数字即可。...]/","",$str); //这样是去掉所有小写字母 echo preg_replace("/[A-Z]/","",$str); //这样是去掉所有大写字母 echo preg_replace("/[...> 经过以上的例子,相信大家知道,[ ] 和里面的,有什么作用了。也可以看到,匹配的字符串必须加 / /(看例子的第一个参数) /","",$str); //这个是表示去除以结尾的那部份,输出结果是:acsdcssdcd 注意:上面的 .* 是表示任何字符,也就是说不管包住的是什么都去掉其中....注意:这时我们又学到了一个知识点{数字} 表示指定前面的个数,*就表示是任意个(0--无限个) 表示重复次数的除了 *, {指定次数} 表示,还有很多表达形式: <?

2.5K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    2024全网最全面及最新的网络安全技巧 1 之 bypass各种waf技巧以及命令执行 ———— 作者:LJS

    简单翻了翻PHP的文档也没找到其他会涉及到可控变量的 在原wp中有一个很厉害的操作,直接reset所有的变量。...除了file_put_contents,error_log函数效果也类似。...其实,除了使用base64特性的方法外,我们还可以利用php://filter字符串处理方法来去除“死亡exit”。我们观察一下,这个实际上是什么?...>被去除了。但回到上面的题目,我们最终的目的是写入一个webshell,而写入的webshell也是php代码,如果使用strip_tags同样会被去除。...但我们要执行的文件仍然排在最后,但我发现这三个文件名中都不包含特殊字符,那么 这个方法似乎行不通了。

    36910

    XSS基础学习

    测试过程中发现单引号无法存入数据库,原因本小白也是半懂不懂;在sql执行的写入的时候单引号会被转义,对此可以尝试双单引号来实现最后也会以单引号的语句保存在表中。 ?...; path= 定义Web服务器上哪些路径下的页面可以获取服务器发送的Cookie文件;Value为/表示Web服务器中所有页面都可以获取Cookie文件;如果缺省,Path的Value...常规防御XSS 字符过滤 输入过滤 永远不要相信用户的输入;一般情况在客户端要设置字符验证过滤敏感的字符、限制长度、要求格式……等。...$value = preg_replace($ra,'',$value); //删除非打印字符,粗暴式过滤xss可疑字符串 $arr[$key] = htmlentities...> 客户端预防 用户在访问网站的时候为了防止恶意脚本在自己的客户端上呗执行,也可以在浏览器上安装一个插件,利用插件的功能来禁止页面的脚本执行。 ----

    1.1K20

    Github-ThinkPHP 2.X 任意代码执行

    ThinkPHP 3.0 版本因为 Lite 模式下没有修复该漏洞,也存在这个漏洞。...所以先来看看preg_replace这个函数,这个函数是个替换函数,而且支持正则,使用方式如下: preg_replace('正则规则','替换字符','目标字符') 这个函数的3个参数,结合起来的意思是...:如果目标字符存在符合正则规则的字符,那么就替换为替换字符,如果此时正则规则中使用了/e这个修饰符,则存在代码执行漏洞。...下面是搜索到的关于/e的解释: e 配合函数preg_replace()使用, 可以把匹配来的字符串当作正则表达式执行; /e 可执行模式,此为PHP专有参数,例如preg_replace函数。...所以有必要了解一下thinkphp的关于这块功能的使用。 thinkphp也是MVC框架,所有的请求都是根据路由来决定的。

    1K80

    正则表达式详解

    3.1 字符 1、普通字符: 由所有那些未显式指定为元字符的打印和非打印字符组成。这包括所有的大写和小写字母字符,所有数字,所有标点符号以及一些符号。...x(PCRE_EXTENDED)   如果设定了此修正符,模式中的空白字符除了被转义的或在字符类中的以外完全被忽略,在未转义的字符类之外的 # 以及下一个换行符之间的所有字符,包括两头,也都被忽略。...\-] //匹配所有的数字,句号和减号 [ \f\r\t\n] //匹配所有的白字符 同样的,这些也只表示一个字符,这是一个非常重要的。...下面是几个排除特定字符的例子: [^a-z] //除了小写字母以外的所有字符 [^\\\/\^] //除了(\)(/)(^)之外的所有字符 [^\"\'] //除了双引号(")和单引号(')之外的所有字符...(点,句号)在正规表达式中用来表示除了“新行”之外的所有字符。所以模式"^.5$"与任何两个字符的、以数字5结尾和以其他非“新行”字符开头的字符串匹配。模式"."

    1.8K10

    SQL注入过滤的绕过

    在实际的项目开发中,程序员一般都会使用函数过滤一些字符,以防止SQL注入比如魔术引号magic_quotes_gpc()之前的文章有提过,再比如preg_replace()函数过滤了一些字符。...不好意思,不存在的!道高一尺魔高一丈,虽然过滤了某些字符,但是已然可以绕过,达到SQL注入的目的。...,$id); //过滤 order return $id; } 由于先匹配到了or,所以把order中的or去除了,并且把by也去除了。...where username=0x61646d696e; 2370265340.png 3966044822.png 这里注意一下,中文无法进行使用16进制编码 4.2 ASCII编码绕过 admin的各个字符的...3498329545.png 我们的Payload如下,其中columns和tables这个字段可以互换,我们也可以在B后面继续加C、D等等 select * from users where id=1

    3.9K10

    Web安全中的XSS攻击详细教学(二)--已完结

    这种攻击多见于论坛,攻击者在发帖的过程中,将恶意脚本连同正常信息一起注入到帖子的内容之中。随着帖子被论坛服务器存储下来,恶意脚本也永久地被存放在论坛服务器的后端存储器中。...后端在入库前应该选择不相信任何前端数据,将所有的字段统一进行转义处理; 后端在输出给前端数据统一进行转义处理; 前端在渲染页面 DOM 的时候应该选择不相信任何后端数据,任何字段都需要做转义处理。...php ​ if( isset( $_POST[ 'btnSign' ] ) ) { //trim() 函数只能去除字符串的首尾字符,这里没有第二个参数,默认去除首尾空格 $message...注入失败 盲注尝试第一个框,而且输入框限制了文字的输入长度 似乎有效果 尝试修改input框的输入长度限制 payload如下 alert()<...trim( $_POST[ 'mtxMessage' ] ); $name = trim( $_POST[ 'txtName' ] ); // strip_tags() 函数用于从字符串中去除

    28400

    谈一谈php:filter的妙用

    其原因是,PHP是基于标签的脚本语言,这个语法也与XML相符合,所以在解析XML的时候会被误认为是XML,而其中内容(比如特殊字符)又有可能和标准XML冲突,所以导致了出错。...所以,在XXE中,我们也可以将PHP等容易引发冲突的文件流用php://filter协议流处理一遍,这样就能有效规避特殊字符造成混乱。...巧用编码与解码 使用编码不光可以帮助我们获取文件,也可以帮我们去除一些“不必要的麻烦”。 记得前段时间三个白帽有个比赛,其中有一部分代码大概类似于以下: <?php $content = '字符串操作方法 有的同学说,base64的算法我不懂,上面的方法太复杂了。 其实,除了使用base64特性的方法外,我们还可以利用php://filter字符串处理方法来去除“死亡exit”。...>被去除了。但回到上面的题目,我们最终的目的是写入一个webshell,而写入的webshell也是php代码,如果使用strip_tags同样会被去除。

    1.1K20

    编程好习惯

    x原码文件默认使用utf-8,使变量名更为广阔 3、语法 去除了,改用!...= / 除 python2.x整型触发返回整数 python3.x整型触发返回浮点数,整除使用// 加入了nonlocal语句 去除了print语句,加入了print()函数 print("zutuanxue_com...", end=" ") print("zutuanxue_com") 去除了raw_input语句,加入了input()函数 新的super(),可以不再给super()传递参数 class A(object...异常 新式的8进制数字变量 4、字符串和字节串 python2.x 字符串以8bit字符串存储 python3.x 字符串以16bit Unicode字符串存储,现在字符串只有str一种类型 5、数据类型...python3.x去除了long类型,现在只有一种整数类型int,但是它的行为就像2.x中long 新增了bytes类型,对应2.x版的八位串 6、面向对象 引入抽象基类 7、异常 所有异常都从

    31220

    PHP字符串格式化特点和漏洞利用点

    格式化字符串的特性 除了上面的一般用法之外,格式化中的一些怪异的用法常常被人忽略,则这些恰好是漏洞的来源。...monkey' 吞掉引号 对上面进行一个简单的总结,除了一些不常见的字符串的格式化用法之外,还存在一些吞掉引号的用法。...此时其中刚好存在有 1 %1$'%s 这种形式的格式化字符串,导致其中的 %1$' 会被去除,剩下 1 %s' ,此时就类似于 SELECT * FROM table WHERE key='%s' AND...其他 虽然本篇文章主要讨论的是PHP中的字符串漏洞,但是对于其他语言如(Java/Python)也在这里进行一个简单的讨论。...总结 看似一些正常功能的函数在某些特殊情况下恰好能够为埋下漏洞的隐患,而字符串格式化刚好就是一个这样的例子,也从侧面说明了安全需要猥琐呀。

    79130

    Sqlilabs通关笔记(五)

    第二十五关 基于错误的GET单引号-你的OR及AND归我所有 这个系列是绕过注入,题目已提示需要绕过的字符,且能显示出输入的payload 源码审计 function blacklist($id){ $...id=1" --tamper "xx.py" --technique E --threads 10 --dbs --batch 第二十五a关 基于GET盲注整型单引号-你的OR及AND归我所有 源码审计...和SELECT归我所有-字符型单引号 源码审计 function blacklist($id){$id= preg_replace('/[\/\*]/',"", $id); //strip out /...和SELECT归我所有-字符型单引号和括号 源码审计 // connectivity $sql="SELECT * FROM users WHERE id=('$id') LIMIT 0,1"; $result...id=1')%0aand%0a1=2%0aunion%0aall%0aselect%0a1,database(),3%0aor ('1 第二十八a关 基于GET盲注-你的UNION和SELECT归我所有

    78910

    正则表达式很难吗?其实也就那样!

    1.普通字符作原子 2.非打印字符作原子 3.通用字符作为原子 4.原子表 1.普通字符作原子: 普通字符是编写正则表达式时最常见的原子了,包括所有的大写和小写字母字符...object; span=(4, 7), match='and'> 说明:re.research返回的是一个match对象 2.非打印字符作为原子: 非打印字符,是一些在字符串中的格式控制符号,...例如下表所示列出了正则表达式中常用的非打印字符及其含义。 ?...下面我给大家列举出一些: \w:包含字母,数字,下划线 \W:除了字母,数字,下划线之外的 \d:十进制的数字 \D:除十进制的数字 \s:空白字符 \S:除空白字符 ---- # 通用字符作为原子 s...“ . ” 除了换行符外的任意一个字符 # 元字符 .

    1K20

    php面试笔记(6)-php基础知识-正则表达式考点

    继而衍生出正则表达式的作用: 分割 分隔符(定界符),主要是正斜线(/),表示一个正则表达式的开始和结束 查找 通用原子 \d :十进制0-9 \D :除了十进制0-9 \w:数字、字母、下划线 \W...:除了数字、字母、下划线 \s:空白符(换行、空格、回车) \S:除了空白符(换行、空格、回车) 元字符模式修正符 U:懒惰模式 u:贪婪模式 i:忽略英文字母大小写 x:忽略空白 s:让元字符“.”匹配包括换行符在内所有字符...e:配合函数 preg_replace() 使用,可以把匹配来的字符串当作正则表达式执行 匹配preg_match() //匹配一个 preg_match_all()// 匹配所有 替换 preg_replace.../u'; //贪婪模式 $res = preg_replace($pattern,'\1',$str); //将第一个匹配到的数据放入数组 var_dump($res); //string(...请看下面这道题: 请写出一个正则表达式,取出页面中所有的img标签中的src值 答案: <?php /** * Created by 冷月小白.

    45330

    常用函数之字符串时间等

    strip_tags — 从字符串中去除 HTML 和 PHP 标记 htmlspecialchars — 将特殊字符转换为 HTML 实体 nl2br — 在字符串所有新行之前插入 HTML...换行标记 trim — 去除字符串首尾处的空白字符 echo — 输出一个或多个字符串 print — 输出字符串 print_r — 打印关于变量的易于理解的信息...var_dump — 打印变量的相关信息 var_export — 输出或返回一个变量的字符串表示 explode — 使用一个字符串分割另一个字符串 implode — 将一个一维数组的值转化为字符串...md5 — 计算字符串的 MD5 散列值 str_replace — 子字符串替换 preg_replace — 执行一个正则表达式的搜索和替换 strpos — 查找字符串首次出现的位置 0...) — 设定用于一个脚本中所有日期时间函数的默认时区 date — Y-m-d H:i:s 格式化一个本地时间/日期 strtotime time — 返回当前的 Unix 时间戳 strtotime

    79030

    posix,perl正则表达式区别

    PERL兼容正则可以使用任何不是字母、数字或反斜线(\)的字符作为定界符,如果作为定界符的字符必须被用在表达式本身中,则需要用反斜线转义。也可以使用(),{},[]和 作为定界符。...x(PCRE_EXTENDED): 如果设定了此修正符,模式中的空白字符除了被转义的或在字符类中的以外完全被忽略。...D(PCRE_DOLLAR_ENDONLY): 如果设定了此修正符,模式中的行结束($)仅匹配目标字符串的结尾。没有此选项时,如果最后一个字符是换行符的话,也会被匹配在里面。...元字符与“[]”相关: 有两组不同的元字符:一种是模式中除了方括号内都能被识别的,还有一种是在方括号“[]”内被识别的。...PERL兼容正则匹配除了换行符外的任意一个字符 .

    1.7K20

    正则表达式的梳理和练习笔记

    使用构造函数的方式,当你知道正则表达式的模式将会改变,或者你不知道模式,并且从其他来源获取它,如用户输入。 普通字符 普通字符包括没有显式指定为元字符的所有可打印和不可打印字符。...这包括所有大写和小写字母、所有数字、所有标点符号和一些其他符号。 这里的所有符号要排除一些特殊符号 非打印字符 非打印字符也可以是正则表达式的组成部分。...下表列出了表示非打印字符的转义序列: # 在有些时候我们需要对编辑器中我们不可见的一些类似于换行符之类的符号做操作时,就需要用到非打印字符了 字符 描述 \s 匹配任何空白字符,包括空格、制表符、换页符等等...如果设置了 RegExp 对象的 Multiline 属性,则 $ 也匹配 '\n' 或 '\r'。要匹配 $ 字符本身,请使用 \$。...会包含除了最后一个> 以外的全部字符 如果使用非贪婪 // 就只会匹配到 , 这里匹配到第一个>时,就会认为已经触发结束条件了。

    64730

    PHP基础编程之鬼斧神工的正则表达式-正则表达式初探+常用的正则表达式函数

    2.正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串。 3.正则表达式是繁琐的,但它是强大的,学会之后的应用会让你除了提高效率外,会给你带来绝对的成就感。...preg_match() 匹配到一次就返回,preg_match_all()匹配所有的结果,返回值为成功匹配的次数。 我们来看一段实例代码: <?...接收3个参数: 参数名 说明 $pattern 输入要搜索的模式,也就是正则字符串 $replacement 替换的字符串或字符串数组 $subject 要进行搜索和替换的字符串或字符串数组 preg_replace...区别只有在匹配字符串数组时preg_filter 只返回匹配结果,不匹配的直接忽略,而 preg_replace 将不匹配的结果也一起返回。 我们来看一段示例代码: 4.preg_split() preg_replace 函数通过一个正则表达式分隔字符串。也就是根据正则来分隔字符串。

    82010

    【代码审计】后台Getshell的两种常规姿势

    00 前言 在早些年刚接触web安全的时候,基础套路都是找注入--找后台--找上传点--找数据库备份--Getshell,然而在代码审计的角度,也存在类似的基本操作。...,$filePath) { $fp=fopen($filePath,'w+'); fwrite($fp,$str); fclose($fp); } ---- 综上,在表达式替换字符串的过程中...,只是作为简单的字符串替换,并未做任何匹配限制,我们可以将构造好的代码写入配置中,导致程序在实现上存在代码执行漏洞。...m=system&s=managemodel'); } } } ---- 在模块上传的过程中,先删除temp目录中存在的所有文件,然后解压缩文件到temp目录下,我们可以上传一个压缩打包好的一句话木马...,除了上传点,那么这两种常规姿势是非常有效的,当然思路不局限,只是分享一个审计套路而已。

    1.1K20
    领券