PHP的常见函数(持续补充)

这篇博客是记录了博主再做ctf的题目中的时候再代码审计方面遇到的所有php的相关知识,包括但不包含与函数。

因为博主是边做题便学习的PHP函数,所以可能有一些错误,还希望大家能在评论区里进行改错指正。

-----------------------------------------------------------------------分割线。

$this->:含义是表示实例化后的具体对象!

__construct :构造一个函数

__wakeup:反序列化标志函数。在反序列化中一般先执行这个函数。

serialize:序列化函数。将字符以字符串的形式表现出来。

unserialize 反序列化函数,将序列化的字符重新编辑成字符。

include:包含并读取这个文件。一般出现则为文件包含漏洞。用php伪协议中的php://input来抓取这个文件。

$_GET:以GET传参的方式传递这个文件。 

$_POST:以POST传参的方式传递这个文件。

isset()函数 :用来判断函数变量是否存在

$action=isset($_GET['id']) ? $_GET['id']         : '';

        句话的意思就是:如果$_GET['id']已经被设置,即已经有值了,则将$_GET['id']赋给$action;

如果$_GET['id']没有被设置,则$action='';

strlen():返回字符串的长度。

substr():  返回字符串的一部分

        语法:substr(string.start,length)

                string规定返回的部分字符串

                start规定从哪里开始

                        正数 - 在字符串的指定位置开始        

                        负数 - 在从字符串结尾开始的指定位置开始

                        0 - 在字符串中的第一个字符处开始

                length规定返回的字符串的长度。

_decode:对变量进行某一方式的解码。方式写在函数前面,如base64_decode,进行baser64的解码。

_encode:对变量进行某一方式的编码,用法和decode一样。

is_numeric():检测变量是否为数字或数字字符串

  is_array()  :     检测变量是否是一个数组。

count() :函数返回数组中元素的数目。

        语法:count(array)后面添加查看数量的数组。

array_search() :函数在数组中搜索某个键值,并返回对应的键名。

        语法;array_search(value,array,strict)

                value:规定在数组中搜索的键值,array:规定搜索的数组,strict:可以伪true或false(默认)

foreach():和array同时使用。

                第一种:遍历给定的 数组语句 array_expression 数组。每次循环中,当前单元的值被赋给 $value 并且数组内部的指针向前移一步(因此下一次循环中将会得到下一个单元)。

                第二种:同上,同时当前单元的键名也会在每次循环中被赋给变量 $key。

                               其中$value和$key为该函数中的常见变量。其中key为排序1,2,3,4。value为按变量从左向右的顺序输出。

file_get_contents():        将文件的内容读入到一个字符串中

        

        语法:file_get_contents(path,include_path,context,start,max_length)

        path:规定要读取的文件。        

        start:规定在文件中开始读取的位置。

        max_length:规定读取的字节数。

        empty():判断一个变量是否被认为是空。当一个变量并不存在,或者它的值等同于 FALSE,那么它会被认为不存在。如果变量不存在的话,empty()并不会产生警告。

        ini_get:获取php中环境变量的值

        PHP error_reporting():程序函数,该函数设置当前脚本的错误报告级别。

        cookie():多元化操作函数,完成cookie的设置、获取和删除操作       

                语法:cookie($name, $value='', $option=null)

                name:要操作的cookie的变量。

                value(可选):要设置的cookie的值

                option(可选):传入的cookie设置参数,默认为空

                cookie方法增加对数组的支持(采用轻量级的json编码格式保存 减少存储空间)

                        cookie('name',array('name1','name2'));

setcookie():

定义一个和其余的 HTTP 标头一起发送的 cookie。和其它标头一样,cookie 必须在脚本的任何其它输出之前发送。这需要将本函数的调用放到任何输出之前,包括 <html> 和 <head> 标签以及任何空格。如果在调用 setcookie() 之前有任何输出,本函数将失败并返回 FALSE。如果 setcookie() 函数成功运行,将返回 TRUE。这并不说明用户是否接受了 cookie。

                        语法:bool setcookie ( string name [, string value [, int expire [, string path [, string domain [, bool secure]]]]] )

                        

        

nameCookie 的名字

 

valueCookie 的值。此值保存在客户端,不要用来保存敏感数据。

expireCookie 过期的时间。

  

pathCookie 在服务器端的有效路径。
domain该 cookie 有效的域名。
secure指明 cookie 是否仅通过安全的 HTTPS 连接传送。当设成 TRUE 时,cookie 仅在安全的连接中被设置。默认值为FALSE。

注意 cookie 中值的部分在发送的时候会被自动用 urlencode 编码并在接收到的时候被自动解码并把值赋给与自己同名的 cookie 变量。如果不想这样并且在使用 PHP 5 的话,可以用 setrawcookie() 来代替。下面这个简单的例子可以得到刚才所设定的 cookie 的值:

strstr() :搜索字符串在另一字符串中是否存在,如果是,返回该字符串及剩余部分,否则返回 FALSE

        语法:strstr(string,search,before_search)

                string:规定被搜索的字符串。

                search:规定要搜索的字符串。如果该参数是数字,则搜索匹配该数字对应的 ASCII 值的字符。

                before_search:一个默认值为 "false" 的布尔值。如果设置为 "true",它将返回 search 参数第一次出现之前的字符串部分。

                举例:

                        <?php echo strstr("Hello world!","world"); // 输出 world! ?>

str_replace函数:替换字符串中的一些字符

                语法:str_replace(find,replace,string,count)

                find:规定要查找的值。

                replace:规定替换 find 中的值的值。

                string:规定被搜索的字符串。

                conut:一个变量,对替换数进行计数

                实例:<?php
echo str_replace("world","Peter","Hello world!");
?>                                                        把Hello world中的world替换成Peter

strrev():反转字符串

ord():返回字符串第一个字符的 ASCII 值

chr() :        从指定 ASCII 值返回字符

str_rot13():对字符串执行 ROT13 编码

                ROT13 编码是把每一个字母在字母表中向前移动 13 个字母得到

php弱类型比较:

        例如,"42" 是一个字符串而 42 是一个整数。FALSE 是一个布尔值而 "FALSE" 是一个字符串。

==只比较值,不比较类型。

===除了比较值,也比较类型

php调用系统外函数system:

        cat表示抓取文件的数据内容。

        但有时候cat抓取无法看见,我们可以尝试tac抓取

        cat抓取是从第一行抓到最后一行。tac是从最后一行还是抓到第一行。

         rev命令:从第一行抓取到最后一行,然后将抓取的数据倒置。

Releases · xupefei/Locale-Emulator · GitHub

        grep命令:搜索并默认补充数据。比如有一个config.php文件。我们使用cat `grep con*`

        即可先搜索包含con的文件名然后进行抓取。

intval()函数:

         作用:获取变量的整数值

         特点:直到遇到数字或正负号才开始进行转化,且如果转化字符串的时候遇到非数字的字符则会停止。

        补充:php的取反符号~。0取反为0.-1取反为0,-2取反为1,-3取反为2。

                   

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值