这篇博客是记录了博主再做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]]]]] )

name Cookie 的名字

 

value Cookie 的值。此值保存在客户端,不要用来保存敏感数据。
expire Cookie 过期的时间。
path Cookie 在服务器端的有效路径。
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命令:从第一行抓取到最后一行,然后将抓取的数据倒置。

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

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

intval()函数:

         作用:获取变量的整数值

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

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

PHP的常见函数(持续补充)相关推荐

  1. php程序员面试题(持续补充,偏中级面试题)

    博主最近找工作,记录了不少面试题,有些还是挺值的学习的,这里记录一下.有些我会给出参考链接,有些需要大家自己百度了,持续补充.. 一.公司一 1.php的接口和抽象类有什么区别,应用场景有哪些 htt ...

  2. 本地环境可以,生产环境不行(持续补充)

    "我本地是可以的啊,为什么生产上就不行了???" 上面那句话相信大家都有说过,现在似乎已经被戏称为"程序员最大的谎言",呵呵--我就来以我个人的遭遇来总结下教训 ...

  3. 【Matlab 绘图——持续补充中】

    Matlab 绘图--持续补充中 目录 plot() 函数 常用线型.颜色.symbol loglog,semilogx,semilogy,plotyy 图片完善--标题title,坐标轴名称xlab ...

  4. Pandas 函数方法汇总一览查询(持续补充改进)

    Pandas 函数方法汇总一览查询(持续补充改进) 文章目录 Pandas 函数方法汇总一览查询(持续补充改进) 初衷 Pandas 最最常用函数罗列 Pandas 函数用法示例 初衷 NumPy.P ...

  5. Vim中的常用命令总结(持续补充完善)

    文章目录 前言 VIM命令 Vim的三种模式 (1) 命令模式 (2) 插入模式 (3) 退出模式 跳转 (1) gg :跳转到文件开头 (2) Shift + g :跳转到文件结尾 分割窗口 (1) ...

  6. 在前端网页设计中 align 和 valign 两种对齐方式的不同取值区分(持续补充)

    文章目录 前言 一.align 与 valign 的对齐方式与取值 二.常见应用区分整理 2.1.H5 页面设计的取值 2.2.表格标题的取值 2.3.表格属性的取值 总结 前言 不知道大家在学习 H ...

  7. 数学建模-MATLAB算法精讲系列文章目录介绍(持续补充ing)

    前言 结合实际案例,从算法背景开始一步步到最终代码实现,本系列文章主要以matlab代码为主,为照顾学习其他编程语言的小伙伴,大部分算法会附带python.Java.C++.R语言等市面上主流代码,满 ...

  8. Linux学习之路(持续补充中......)

    Linux学习之路 Linux的基础知识 第一章:Linux的概述以及系统安装及使用 第一节:简单了解一下Linux发展历史与历程 Linux是一种自由.开源的类UNIX操作系统. linux 的创始 ...

  9. Arcpy报错及解决——持续补充中

    1.报错:arcgisscripting.ExecuteError: ERROR 000539: Invalid field one_1 分析: 如果Python表达式中引用的字段不存在或拼写错误,发 ...

最新文章

  1. 我们破解了几乎所有智能手机的人脸识别,唯独没有iPhone
  2. Python中join()方法和os.path.join()方法
  3. magisk安装失败_如何使用Magisk去维补boot实现root权限-适合小米一加全部机型
  4. Oracle数据类型Long需要注意的问题
  5. android 无线视频,Android系统无线视频流媒体的接收、解码与播放
  6. C语言 嵌入式 面试小知识点(一)
  7. 为什么没有普及128位操纵系统的计算机?
  8. 利用思科 Webex中的3个漏洞,以 ghost 用户身份参会
  9. dispatch作用 react_javascript – redux-react中的dispatch函数
  10. Python cx_Oracle执行的sql字符串拼接含分号导致报“ORA-01756“引号内的字符串没有正确结束
  11. TestStand 语言配置文件说明
  12. android 五大框架,YunOS 6要做手机界Wintel 破功Android五大怪
  13. 安装heg时找不到java,记录安装HEG的坑
  14. 解决索尼WH-1000XM3使用蓝牙连接电脑无法使用麦克风的问题
  15. 成为REAL程序员的终极指南
  16. 学习率设置的学问(如何设置学习率)
  17. Android 7.1.1 Dialer中通话记录显示详解
  18. 1. Java的历史和演变
  19. Zephyr启动过程与中断响应
  20. Windows10无法打开NVIDA控制面板

热门文章

  1. 玩转 Excel 数据导入
  2. 成熟短视频直播APP软件开发必备接口
  3. Vim:如何退出Vim编辑器?
  4. ubuntu 分区安装
  5. 中医笔记1-悟道修身、生命的认识、神通
  6. 重型工业机械设备远程监控解决方案
  7. python获取客户端ip_各种脚本语言获取客户端真实IP的方法
  8. Oracle 10046 trace追踪脚本
  9. python文件编译_python下编译py成pyc和pyo
  10. 多目录Makefile编写