PHP文件上传利用的常见函数总结大全_第1页
PHP文件上传利用的常见函数总结大全_第2页
PHP文件上传利用的常见函数总结大全_第3页
PHP文件上传利用的常见函数总结大全_第4页
PHP文件上传利用的常见函数总结大全_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第PHP文件上传利用的常见函数总结大全目录前言1.deldot2.in_val4.strrchr5.strtolower6.strrpos7.str_ireplace8.strstr9.substr10.trim附PHP文件上传处理参考资料总结

前言

收集了几个在文件上传利用中常见的函数。

对这些函数的深入理解应该有助于文件上传利用的顺利进行。

1.deldot

deldot函数为upload-lab中一个常见的函数,它实际为一个自定义函数,定义于common.php中,函数定义如下:

functiondeldot($s){

for($i=strlen($s)-1;$i$i--){

$c=substr($s,$i,1);

if($i==strlen($s)-1and$c!='.'){

return$s;

if($c!='.'){

returnsubstr($s,0,$i+1);

即从字符串的尾部开始,从后向前删除点.,直到该字符串的末尾字符不是.为止。

因此对于如下输入,

echodeldot("helloworld")."\n";

echodeldot("helloworld.")."\n";

echodeldot("helloworld....")."\n";

echodeldot("hello.world.")."\n";

输出为

helloworld

helloworld

helloworld

hello.world

2.in_array

in_array(mixed$needle,array$haystack,bool$strict=false):bool

其中第一个参数$needle为待搜索的值,$haystack为被搜索的数组,第三个参数决定是否进行类型比较。

第三个类型默认为false,即不考虑类型是否相同。

对于如下输入:

if(in_array("AAA",$arr,false))echo1;

if(in_array("aaa",$arr,false))echo2;

if(in_array("AAA",$arr,true))echo3;

if(in_array("aaa",$arr,true))echo4;

输出

13

3.intval

intval(mixed$value,int$base=10):int

intval函数用于获取变量的整数值。

第一个参数$value为要获取整数值的变量,可以为字符串、数值和数组。

第二个参数$base指定了转换所使用的进制,当且仅当要转换的变量为字符串时有效。

当第二个参数为0时,会检测变量的格式来决定使用的转换进制。

当存在前置的0x或0X时,使用16进制。当存在前置的0时,使用8进制。否则使用10进制。

intval函数返回的数值为一个int类型的数值。当转换不成功时,返回0。

特别要注意,使用该函数返回的值有上限。当转换的数值大于php的整数范围时,返回的结果为整型数值的取值上限。

echointval("111");

echo"\n";

echointval("111a");

echo"\n";

echointval("0x333");

echo"\n";

echointval("888",8);

echo"\n";

echointval("122",3);

echo"\n";

echointval("11111111111111111111111111111111111");

echo"\n";

echointval("2222222222222222222222222222222");

输出为

111

111

0

0

17

9223372036854775807

9223372036854775807

4.strrchr

strrchr(string$haystack,mixed$needle):string

strrchr函数在字符串$haystack中查找$needle,并将最后一次查找到的$needle及其后面的字符串返回。如果没有在该字符串中查找到$needle,则返回false。

注:

如果第二个参数不是不是单个字符,则只使用该字符串的第一个字符进行查找匹配。如果第二个参数是一个数值,则将该数值转换为对应的ASCII码进行匹配。

$S="hhhahahaha2333";

echostrrchr($S,'h')."\n";

echostrrchr($S,'hwweraer')."\n";

echostrrchr($S,104)."\n";

if(strrchr($S,'k')==false)echo"false";

ha2333

ha2333

ha2333

false

5.strtolower

strtolower(string$string):string

将字符串$string中的各个英文字符转换为小写并返回。

$S="HaHaHaHa,Hello!!";

echostrtolower($S);

hahahaha,hello!!

6.strrpos

strrpos(string$haystack,string$needle,int$offset=0):int

返回字符$needle最后一次出现的位置。

在php4中,$needle只能为单个字符。如果$needle中存在多个字符,仅使用第一个字符做匹配。

和strrchr相似,如果$needle是一个数值,则使用该数值对应的ASCII码字符进行匹配。

从php5开始,$needle可以为多个字符。

从php5开始,strrpos新增一个参数$offset,可以指定从$haystack的哪儿位置开始进行匹配。

返回匹配的下标位置,没有匹配到时返回false。

注意:

因为返回值可能为零,所以在判断返回值是否为false的时候必须使用全等于符号===。该函数区分大小写。与该函数相似的函数有:stripos:查找首个出现的位置,不区分大小写。strpos:查找首个出现的位置,区分大小写。strripos:查找最后一个出现的位置,不区分大小写。即出现i则为不区分大小写,出现rr则为查找最后一个。

$s="Phpphphpphpp";

echostrrpos($s,"php");

echostrrpos($s,"h");

echostrrpos($s,"P");

if(strrpos($s,"PHP")===false)echo"Noexist";

输出:

890Noexist

注:测试使用的PHP版本为5.3.3。

在PHP4中结果可能不一样。

7.str_ireplace

str_ireplace(

mixed$search,

mixed$replace,

mixed$subject,

int$count=

):mixed

str_ireplace函数用于对数组中的元素或字符串中的子串进行替换。

第一个参数$search为需要替换的内容(子串或数组),第二个参数$replace为替换成的内容(字符串或数组),第三个参数$subject为被替换的字符串。

如果$search和$replace都为字符串,那么将会把$subject中匹配的子串$search替换为$replace。如果$search和$replace都为数组时,将会进行映射替换。如果$replace的值的个数少于search的个数,多余的替换将使用空字符串来进行。如果$search为数组而$replace为字符串,则对于$subject中出现的每一个search的元素,都会使用$replace做替换。

$count可以用于限定替换次数。

注:

替换从左到右进行。该函数替换不区分字母大小写。(另外一个函数str_replace区分大小写)

php

echostr_ireplace("php","","hello.php")."\n";

echostr_ireplace("pHP","","hello.Php")."\n";

echostr_ireplace("php","","hello.phPHpp")."\n";

echostr_ireplace("php","p","hello.phphp")."\n";

echostr_ireplace("php",""."phpphpphpphpphp.php",3)."\n";

echostr_ireplace(array("php","html"),"","hello.php.html")."\n";

echostr_ireplace(array("php","html"),array("1","2"),"hello.php.html")."\n";

echostr_ireplace(array("php","html","css"),array("1","2"),"hello.php.css.html")."\n";

echostr_ireplace(array("php","html","css"),"1","hello.php.css.html")."\n";

foreach(str_ireplace(array("php","html","css"),array("1","2","3"),array("hello.html","hello.css","hello.html"))as$it){

echo"$it";

hello.

hello.

hello.Hpp

hello.php

3

hello

hello.1.2

hello.12

hello.1.1.1

hello.2hello.3hello.2

8.strstr

strstr(string$haystack,mixed$needle,bool$before_needle=false):string

查找字符串$needle在$haystack中首次出现的位置,并将$needle及其之后的字符串返回。

PHP5起新增第三个参数$before_needle,如果$before_needle取值为true,则返回$needle前面的部分。

$s="123phpphp.php";

echostrstr($s,"php")."\n";

echostrstr($s,"php",true)."\n";

phpphp.php

123

9.substr

substr(string$string,int$offset,int$length=null):string

返回字符串$string中的子串。

$offset指定子串首个字符在$string中的下标位置,$length指定截取的子串长度。

$length的取值:

$length为默认取值时,函数会将$offset至$length的字符串截取并返回。$length取正数时,会从$offset开始将最多$length个字符截取返回出来。$length取0时,返回一个空字符串。$length取负数时,会将$offset至字符串$string倒数第$length前的字符返回出来。

$s="123456789";

echosubstr($s,1,3)."\n";

echosubstr($s,1,-1)."\n";

echosubstr($s,1)."\n";

echosubstr($s,1,0)."\n";

234

2345678

23456789

10.trim

trim(string$str,string$character_mask=\t\n\r\0\x0B):string

去除字符串$str的首尾的空白字符。

当第二个参数保持默认时,去除的字符为:

空格\t制表符\n换行符\r回车符\0空字节符\x0B垂直制表符

$s="\n123456789\t\n123456789\r";

echotrim($s);

123456789

123456789

附PHP文件

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论