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() 函数移除字符串两侧的空白字符或其他预定义字符。
默认只能执行1条sql查询,即不支持q1;q2;q3;这样的sql语句 mysql_query()
一个$和两个$
一个$+变量名:普通变量
两个$+变量名:相当于c++的引用变量
魔术方法
PHP 将所有以 __(两个下划线)开头的类方法保留为魔术方法。所以在定义类方法时,除了上述魔术方法,建议不要以 __ 为前缀。
__sleep()和__wakeup()
__wakeup()执行漏洞:一个字符串或对象被序列化后,如果其属性被修改,则不会执行__wakeup()函数,这也是一个绕过点。
serialize()函数
用于序列化对象或数组,并返回一个字符串。序列化对象后,可以很方便的将它传递给其他需要它的地方,且其类型和结构不会改变。
unserialize()函数:用于将通过serialize()函数序列化后的对象或数组进行反序列化,并返回原始的对象结构。
unserialize()函数:用于将通过serialize()函数序列化后的对象或数组进行反序列化,并返回原始的对象结构。
serialize()和unserialize()函数对魔术方法的处理:serialize()函数会检查类中是否存在一个魔术方法__sleep()。如果存在,该方***先被调用,然后才执行序列化操作,此功能可以用于清理对象。
unserialize()函数会检查类中是否存在一个魔术方法__wakeup(),如果存在,则会先调用 __wakeup 方法,预先准备对象需要的资源。
unserialize()函数会检查类中是否存在一个魔术方法__wakeup(),如果存在,则会先调用 __wakeup 方法,预先准备对象需要的资源。
php环境常量
__DIR__ :当前内容写在哪个文件就显示这个文件目录
__FILE__ : 当前内容写在哪个文件就显示这个文件目录+文件名