代码审计的时候经常会遇到种类繁杂的转义函数,最可怕的是他们长的都很像,还是拿出来总结一下吧。...DBMS 没有一个转义函数,并且使用 \ 来转义特殊字符,你可以使用这个函数。...在运行时调用转义函数(如 addslashes())更有效率。...(3)不便 由于不是所有数据都需要转义,在不需要转义的地方看到转义的数据就很烦。比如说通过表单发送邮件,结果看到一大堆的 \’。针对这个问题,可以使用 stripslashes() 函数处理。...0X08 mysqli_real_escape_string/mysqli_escape_string –> (PHP >= 5 ,PHP 7) 此函数用来对字符串中的特殊字符进行转义, 以使得这个字符串是一个合法的
数据中有个字段叫 content,里面保存了文章内容,含有大量 HTML 标签,这个字段在转 json 的时候需要转义,因为有大量的特殊字符会破坏 json 的结构。...那么有哪些字符是需要转义的呢?看下图: ? 如果 PHP 版本 > 5.2,json_encode 自带转义。如果是旧版本的 PHP 则可以用下面的函数。
PHP中PRGE正则函数的学习 正则表达式的作用想必不用我多说了,大家在日常的开发中或多或少都会接触到。特别是对于一些登录(邮箱、手机号)以及网页爬虫来说,正则表达式就是神器一般的存在。...在 PHP 中,有两种处理正则表达式的函数,今天我们就来学习其中的一种。...POSIX 类型的正则函数库不是二进制安全的,并且对 utf8 的支持也不好,所以从 PHP5.3 开始如果使用 ereg_xxx 这类的函数就会报一个 E_DEPRECATED 错误。....\*\), preg_quote() 函数其实是有点类似于 addslashes() 函数,它是针对正则中的特殊符号添加转义斜杠的。...不过我的电脑上还没有安装 PHP8 所以这块内容就不展示了。 总结 PHP 中正则操作的函数就这些,但正则真正的精髓其实是在于正则表达式怎么写这一块。
正则表达式中有一些特殊的字符需要转义,收集整理如下: 特殊字符 说明 $ 匹配输入字符串的结尾位置。...\ 将下一个字符标记为或特殊字符、或原义字符、或向后引用、或八进制转义符。例如, ‘n' 匹配字符‘n'。'\n' 匹配换行符。序列 ‘\\' 匹配 “\”,而 ‘\(' 则匹配 “(”。
php正则替换函数的整理 1、preg_filter函数用于执行一个正则表达式搜索和替换。 preg_filter()等价于preg_replace(),但它仅仅返回与目标匹配的结果。...2、preg_replace_callback函数执行一个正则表达式搜索并且使用一个回调进行替换。...$callback: 一个回调函数,在每次需要替换时调用,调用时函数得到的参数是从subject 中匹配到的结果。 $subject: 要搜索替换的目标字符串或字符串数组。...以上就是php正则替换函数的整理,本篇主要介绍了两种函数,有趣的可以就其他函数继续拓展。更多php学习指路:php教程 推荐操作系统:windows7系统、PHP5.6、DELL G3电脑
定义 一个转义字符的目的是开始一个字符序列,使得转义字符开头的该字符序列具有不同于该字符序列单独出现时的语义。 转义就是指转换该字符的原本意义,从而变成另外的意义。...\作为Java的转义字符 1.在java字符常量中,反斜杠(\)是一个特殊的字符,被称为转义字符,它的作用是用来转义后面一个字符。...\在正则表达式中 \表示将下一字符标记为特殊字符。如\d表示数字字符匹配,等效于 [0-9]。\w表示匹配任何字类字符,包括下划线。与"[A-Za-z0-9_]"等效。...在 Java 中,\\ 表示:我要插入一个正则表达式的反斜线,所以其后的字符具有特殊的意义。 \\中的第一个\表示java的转义字符\由编译器解析,第二个\是正则表达式\由正则表达式引擎解析。...Java正则表达式中匹配一个普通的反斜杠是\\\\ 注意观察下图中的静态代码中的变量定义和运行中的内存变量之间的区别。
今天做了一个小项目,给别人之后发现post数据被自动转义了,我郁闷了半天,我google了一下发现是PHP魔术引号在作怪。。。我煞费苦心终于找到了原因,可是怎么解决呢?百度。。。...其实都挺好的 在处理mysql和GET、POST的数据时,常常要对数据的引号进行转义操作。 PHP中有三个设置可以实现自动对’(单引号),”(双引号),\(反斜线)和 NULL 字符转转。...magic_quotes_runtime 如果打开的话,大部份从外部来源取得数据并返回的函数,包括从数据库和文本文件,所返回的数据都会被反斜线转义。...该选项可在运行的时改变,在 PHP 中的默认值为 off。 magic_quotes_sybase 如果打开的话,将会使用单引号对单引号进行转义而非反斜线。...文件(修改php.ini这个方法就不说了,大家可以google下) 对策二:把转义的给取消了 第一步:找到你提交的数据比如$_POST[‘content’],将其改成$content=stripslashes
以此类推, 例如大家熟悉的smarty模板引擎中编译后替换的方法 5.第四个参数的$limit的使用,第四个参数的意思是每个模式在每个subject上进行替换的最大次数 如果limit为n,它只用正则替换...我们可以理解为str_replace是preg_repalce的一个子集.只是str_replace中的第一个参数写的是string,而preg_replace写的是一个正则表达式
static public function test6() { //在数据库随便拿一条有中文的数据 $user = DB::t...
正则表达式中有些字符具有特殊的含义,如果在匹配中要用到它本来的含义,需要进行转义(在其前面加一个\)。 下面总结了常见的一些需要转义的特殊字符: 匹配输入字符串的结尾位置。...匹配前面子表达式零次或一次,或指明一个非贪婪限定符 \ 将下一个字符标记为或特殊字符或原意字符或后向引用或八进制转义符。例如:‘n’匹配字符‘n’,而‘\n’匹配换行符。
匹配 n 次(n 为正整数) x{n,m} 匹配至少 n 次,最多 m 次(n 和 m 为正整数) x{n,} 匹配至少 n 次(n 为正整数) 1、贪婪模式: 默认情况下,正则表达式引擎会尝试尽可能多地重复量词字符...当正则表达式引擎(实现正则表达式搜索的程序模块)遇到 \b 时,它会检查字符串中的位置是否是词边界。 有三种不同的位置可作为词边界: 捕获组: 模式的一部分可以用括号括起来 (...)。...那么对于一个后面跟着 € 的整数js正则表达式转义字符,正则表达式应该为:\d+(?=€)。 ...语法为如下: let str = "1 turkey costs $30"; // 美元符号被转义 \$ alert( str.match(/(?...[1]: https://xuan.ddwoo.top/index.php/archives/74/" ↩
当时初学PHP根本不知道PHP有专门抓包的工具,就像Simple_html_dom.php(在我的其他博文中有提到),之前根本就不知道有这东西,所以就自己废着劲去学习正则表达式,然后再学习PHP中正则表达式的函数是如何使用的...有种调侃正则表达式式的说法,把正则表达式叫做火星文。当第一次用到Simple_html_dom.php这个工具包时有点相见恨晚的赶脚。不过还好,毕竟自己学了正则表达式了嘛,多学点东西还是没错的。...自己写正则表达式然后再结合PHP中正则表达式函数使用,好处就是比用工具包灵活。 ...下面是当时学习PHP中的正则表达式所总结的内容,和大家分享一下,欢迎大家批评指正 PHP中的正则表达式函数 在PHP中有两套正则表达式函数库。...需要注意的是,在双引号中反斜线作为转义符使用,所以必须使用“\\0”,“ \\1”的形式。 eregi_replace()和ereg_replace()的功能一致,只是前者忽略大小写。
PHP 中使用 addslashes() 函数转义字符串。所谓字符串转义,就是在某些特殊字符前面加上转义符号\,这些特殊字符包括单引号'、双引号"、反斜线\与空字符NUL。...addslashes() 函数的语法格式如下: string addslashes ( string $str ) 该函数返回转义后的字符串,参数 $str 是要被转义的字符。...DBMS 没有一个转义函数,并且需要使用\来转义特殊字符,那么就可以使用 addslashes() 函数。...当 PHP 指令 magic_quotes_sybase 被设置成 on 时,意味着插入'时将使用'进行转义。 转义字符串的示例如下: <?...( string $str ) 该函数返回未经转义的原始字符串,参数 $str 是转义后的字符串。
做 OLog(https://log.ouorz.com) 时发现的 Php 函数: addslashes() 与 stripslashes() 在使用 Php 对 Mysql 数据库进行操作时,在写...sql 语句时难免会遇到引号与内容冲突的情况,这时候就需要人工地在内容字符串的引号前加入转义符「 \ 」 以上两个函数可以使字符串自动转义一些特殊字符,这些字符是单引号「'」、双引号「"」、反斜线「\」...与 NULL「NULL 字符」 addslashes(str) 参数 str 「要转义的字符」 返回值 返回转义后的字符 stripslashes(str) 参数 str 「输入的字符串」 返回值...返回一个去除转义反斜线后的字符串「\' 转换为 ' 等等」。
在一个自媒体合作方RSS接入规范中提到的一条要求,显示1、生成的json串,仅对双引号字符进行转义,非双引号字符不转义; 2、rss接口返回的数据为纯文本样式(Content-Type: text/plain...),非html样式;在php中直接采用json_encode生成的不符合官方要求。
创建正则表达式 (1)使用字面量: var 变量名 = / 表达式 / (2)使用RegExp构造函数:var 变量名 = RegExp(/ 表达式 /) 或 var 变量名 = new...等价于[a-zA-Z0-9] \W:除所有字母、数字和下划线以外的字符js正则表达式转义字符,相当于[ ^a-zA-Z0-9 ] \b:单词分界符 \s:匹配空格(包括换行符、制表符、空格符等...),相当于[\t\r\n\v\f] 强调:转义字符 ' \ ',若要输出反斜杠,要使用连续两个’ \ ‘ (5)字符范围示例 [cat]:匹配字符集合中的任意一个字符c、a、t [ ^cat...(6)量词符 {mjs正则表达式转义字符,n}:表示{}之前的字符可以出现m~n次 {n}:表示{}之前的字符可以出现n次 ?:匹配 ?之前的字符零次或一次。例如:hi?...正则表达式的优先级(优先匹配) 一级:\ 转义字符 (最高) 二级:()、[ ] 三级:*、+、?
正则表达式,作为一种快速、便捷的处理字符串的工具,在各种编程语言中都有着广泛的用途,通过在PHP中的一些使用,下面记录一下关于PHP中正则使用的一些技巧。...PHP中的正则函数: php中有两套正则函数,两者功能差不多,分别为: 一套是由PCRE(Perl Compatible Regular Expression)库提供的。...使用以“ereg_”为前缀命名的函数;(POSIX的正则函数库,自PHP 5.3以后,就不在推荐使用,从PHP6以后,就将被移除) 由于POSIX正则即将推出历史舞台,并且PCRE和perl的形式差不多...正则中重要的几个概念有:元字符、转义、模式单元(重复)、反义、引用和断言,这些概念都可以在文章[1]中轻松的理解和掌握。...ereg http://cn.php.net/manual/en/function.ereg.php 3、PHP正则函数
; } PHP中函数是全局的,只要定义了就可以在任何地方调用 函数内部可以写任何有效的PHP代码,就算定义函数和类也是可以的 PHP不支持函数重载,也不能取消定义和重写义已声明函数 递归调用时,要避免超过...php function foo() { return ['one', 'two']; } list($a, $b) = foo(); 函数返回引用类型值时,函数声明和函数调用前都必须加& php function &foo() { $a = 1; return $a; } $b = &foo(); 可变函数 如果变量名后有(),PHP将寻找与变量的值同名的函数,并尝试执行...PHP有很多内置函数,有些函数是需要和特定的扩展一起编译 function_exists()判断函数是否存在 get_extension_funcs()获取某个模块的函数列表 dl()加载模块 匿名函数...sub>PHP 7.4 箭头函数跟匿名函数一样,都是通过Closure实现,只是比匿名函数更简洁,也只能实现比较简单的功能 箭头函数会自动捕获父作用域变量进行值拷贝 <?
PHP函数 定义函数 基本语法: function 函数名 (参数1,参数2...){ 函数主体; [return] } 调用函数 function test1 (){ echo..."函数被调用"; } test1();//调用函数 函数的参数 PHP参数传递有三种: 1、值传递:将实参的值传给形参 php function text2($value){ $value *=3; echo $value.'...变量 说明 局部变量 在函数内部定义的函数,只能在函数内部使用 全局变量 在函数外部定义的函数,能在整个PHP文件使用,但在用户定义的函数内使用需要加global关键字 静态变量 在函数调用完毕后依然保留变量值的变量...,在调用时需要加static关键字声明变量 可变函数 可变函数类似于可变变量,通过在变量名后面添加一对括号,PHP就会自动寻找与变量名的值相同的函数,并且执行该函数 <?
请点击上面蓝色PHP关注 你知道这些简单的函数中的方法吗? count() 函数计算数组中的单元数目或对象中的属性个数。 对于数组,返回其元素的个数,对于其他值,返回 1。...规定函数的模式。可能的值:0 - 默认。不检测多维数组(数组中的数组)。1 - 检测多维数组。注释:该参数是 PHP 4.2 中加入的。 0 - 默认。不检测多维 数组(数组中的数组)。...注释:该参数是 PHP 4.2 中加入的。 注释:当变量未被设置,或是变量包含一个空的数组,该函数会返回 0。可使用 isset() 变量来测试变量是否被设置。...strtr() 函数转换字符串中特定的字符。 strtr(string,from,to);或者strtr(string,array); 参数 描述 string 必需。...php echo strtr("Hilla Warld","ia","eo"); ?> 输出:Hello World 例: <?