php伪协议


php黑魔法


php代码执行漏洞


一句话木马



eregi(p,src)

src里匹配正则表达式p,可能有\x00截断

stripos(字符串a,字符串b) 

函数查找字符串b在字符串a中第一次出现的位置(不区分大小写)。

file_get_contents

将整个文件读入一个字符串

strlen() 

函数返回字符串的长度

substr(string,start,length) 

length参数可选
如substr($b,0,1)  就是在参数b里面,从0开始返回1个长度的字符串

print_r

打印键值对

scandir

php遍历文件夹

preg_match

int preg_match ( string $pattern , string $subject)//返回匹配次数

extract() 

从数组中将变量导入到当前的符号表。
该函数使用数组键名作为变量名,使用数组键值作为变量值。针对数组中的每个元素,将在当前符号表中创建对应的一个变量。
该函数返回成功设置的变量数目。


empty() 

用于检查一个变量是否为空。
empty() 判断一个变量是否被认为是空的。当一个变量并不存在,或者它的值等同于 FALSE,那么它会被认为不存在

trim(string,charlist)

trim() 函数移除字符串两侧的空白字符或其他预定义字符。

mysql_query()

默认只能执行1条sql查询,即不支持q1;q2;q3;这样的sql语句

一个$和两个$

一个$+变量名:普通变量
两个$+变量名:相当于c++的引用变量


魔术方法

PHP 将所有以 __(两个下划线)开头的类方法保留为魔术方法。所以在定义类方法时,除了上述魔术方法,建议不要以 __ 为前缀。

__sleep()__wakeup()

__wakeup()执行漏洞:一个字符串或对象被序列化后,如果其属性被修改,则不会执行__wakeup()函数,这也是一个绕过点。

serialize()函数

用于序列化对象或数组,并返回一个字符串。序列化对象后,可以很方便的将它传递给其他需要它的地方,且其类型和结构不会改变。
unserialize()函数:用于将通过serialize()函数序列化后的对象或数组进行反序列化,并返回原始的对象结构。
serialize()和unserialize()函数对魔术方法的处理:serialize()函数会检查类中是否存在一个魔术方法__sleep()。如果存在,该方***先被调用,然后才执行序列化操作,此功能可以用于清理对象。
unserialize()函数会检查类中是否存在一个魔术方法__wakeup(),如果存在,则会先调用 __wakeup 方法,预先准备对象需要的资源。

php环境常量

__DIR__ :当前内容写在哪个文件就显示这个文件目录

__FILE__ : 当前内容写在哪个文件就显示这个文件目录+文件名