方法:
1.数组
2.字符串
3.科学计数法/16进制
and 和 && 的问题: &&使用正常,但是 and 的运算优先级低于 = ,就是说先计算=,再计算 and;
于是会出现当 $a = true and false ; 结果$a的结果是true;
由下表可以看出,and,or的优先级非常低,比 == 低,在使用时也应多加注意
运算符优先级如下表
extract()作用:独立数组(结构体?)中变量 √ 涉及变量覆盖,看参数。
strcmp()作用:比较字符串 √ 在传入数组的情况下,即使两个不相等,返回值也是0。
urldecode() 作用:url解码 √ 在使用_$GET的情况下,由于输入,浏览器会自动解码一次,再加上urldecode(),就是两次解码。即要进行两次编码。
md5() 作用:md5加密 √ 1.无法处理数组 2.加密后若为0e开头会当作科学计数法, 0^n0 QNKCDZO
s878926199a
s155964671a
s214587387a
s214587387a
s878926199a
s1091221200a
d131dd02c5e6eec4693d9a0698aff95c2fcab58712467eab4004583eb8fb7f89
55ad340609f4b30283e488832571415a085125e8f7cdc99fd91dbdf280373c5b
d8823e3156348f5bae6dacd436c919c6dd53e2b487da03fd02396306d248cda0
e99f33420f577ee8ce54b67080a80d1ec69821bcb6a8839396f9652b6ff72a70
and
d131dd02c5e6eec4693d9a0698aff95c2fcab50712467eab4004583eb8fb7f89
55ad340609f4b30283e4888325f1415a085125e8f7cdc99fd91dbd7280373c5b
d8823e3156348f5bae6dacd436c919c6dd53e23487da03fd02396306d248cda0
e99f33420f577ee8ce54b67080280d1ec69821bcb6a8839396f965ab6ff72a70
有完全相同的 MD5:79054025255fb1a26e4bc422aef54eb4
#强网杯某大牛wp
$Param1="\x4d\xc9\x68\xff\x0e\xe3\x5c\x20\x95\x72\xd4\x77\x7b\x72\x15\x87\xd3\x6f\xa7\xb2\x1b\xdc\x56\xb7\x4a\x3d\xc0\x78\x3e\x7b\x95\x18\xaf\xbf\xa2\x00\xa8\x28\x4b\xf3\x6e\x8e\x4b\x55\xb3\x5f\x42\x75\x93\xd8\x49\x67\x6d\xa0\xd1\x55\x5d\x83\x60\xfb\x5f\x07\xfe\xa2";
$Param2="\x4d\xc9\x68\xff\x0e\xe3\x5c\x20\x95\x72\xd4\x77\x7b\x72\x15\x87\xd3\x6f\xa7\xb2\x1b\xdc\x56\xb7\x4a\x3d\xc0\x78\x3e\x7b\x95\x18\xaf\xbf\xa2\x02\xa8\x28\x4b\xf3\x6e\x8e\x4b\x55\xb3\x5f\x42\x75\x93\xd8\x49\x67\x6d\xa0\xd1\xd5\x5d\x83\x60\xfb\x5f\x07\xfe\xa2";
#008ee33a9d58b51cfeb425b0959121c9
#知乎Belleve
$data1="\xd1\x31\xdd\x02\xc5\xe6\xee\xc4\x69\x3d\x9a\x06\x98\xaf\xf9\x5c\x2f\xca\xb5\x07\x12\x46\x7e\xab\x40\x04\x58\x3e\xb8\xfb\x7f\x89\x55\xad\x34\x06\x09\xf4\xb3\x02\x83\xe4\x88\x83\x25\xf1\x41\x5a\x08\x51\x25\xe8\xf7\xcd\xc9\x9f\xd9\x1d\xbd\x72\x80\x37\x3c\x5b\xd8\x82\x3e\x31\x56\x34\x8f\x5b\xae\x6d\xac\xd4\x36\xc9\x19\xc6\xdd\x53\xe2\x34\x87\xda\x03\xfd\x02\x39\x63\x06\xd2\x48\xcd\xa0\xe9\x9f\x33\x42\x0f\x57\x7e\xe8\xce\x54\xb6\x70\x80\x28\x0d\x1e\xc6\x98\x21\xbc\xb6\xa8\x83\x93\x96\xf9\x65\xab\x6f\xf7\x2a\x70";
$data2="\xd1\x31\xdd\x02\xc5\xe6\xee\xc4\x69\x3d\x9a\x06\x98\xaf\xf9\x5c\x2f\xca\xb5\x87\x12\x46\x7e\xab\x40\x04\x58\x3e\xb8\xfb\x7f\x89\x55\xad\x34\x06\x09\xf4\xb3\x02\x83\xe4\x88\x83\x25\x71\x41\x5a\x08\x51\x25\xe8\xf7\xcd\xc9\x9f\xd9\x1d\xbd\xf2\x80\x37\x3c\x5b\xd8\x82\x3e\x31\x56\x34\x8f\x5b\xae\x6d\xac\xd4\x36\xc9\x19\xc6\xdd\x53\xe2\xb4\x87\xda\x03\xfd\x02\x39\x63\x06\xd2\x48\xcd\xa0\xe9\x9f\x33\x42\x0f\x57\x7e\xe8\xce\x54\xb6\x70\x80\xa8\x0d\x1e\xc6\x98\x21\xbc\xb6\xa8\x83\x93\x96\xf9\x65\x2b\x6f\xf7\x2a\x70";
#79054025255fb1a26e4bc422aef54eb4
ereg() 作用:判断正则表达式 √ 可用%00 截断。
strcmp(string1,string2) 作用:在一个字符串(strings1)中找特定的一段(strings2) 此函数配合弱类型php显得极其垃圾。因为当找到的时候,返回值是strings2首字母出现的位置,故存在0的情况,此时虽然匹配成功,但0==false。所以便尝试使用 !== 来判断,但这样一来又会带来另外一个问题,就是当strings1或strings2 为数组时,函数返回值总为NULL,由于类型不同,NULL!==false………………于是只好多加几个if来判断了。
ord() 返回首字母ascii
php or die(exit) 语句 :$file = fopen($filename, 'r') or die("抱歉,无法打开: $filename"); 在大部分语言中,在bool or bool式子中,如果前面一个为真,后面就不会判断了,称之为短路操作,所以在此语句中,如果前面一个判断成功后面就不会进行die导致中止脚本,否则就会中止脚本。