




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工程经济重要知识梳理试题及答案
- 工程项目中合同管理的关注点试题及答案
- 工程经济市场分析方法试题及答案
- 食品加工工艺与安全卫生管理练习题集合
- 汇聚市政工程考试资料的试题及答案
- 物流运输车队协议
- 生物医学影像诊断技术题库
- 工程经济企业财务预测试题及答案
- 经济法核心知识试题及答案
- 经济法的学术研究与试题及答案
- 《性别平等探讨》课件
- (一模)2024-2025学年佛山市普通高中教学质量检测(一)生物试卷(含答案)
- 灯谜文化知到智慧树章节测试课后答案2024年秋西安交通大学
- NB/T 11543-2024煤矿井下钻孔瞬变电磁探测技术规程
- 【MOOC期末】《英美文学里的生态》(北京林业大学)期末中国大学慕课MOOC答案
- DBJ41-T 145-2015 三轴水泥土搅拌桩帷幕技术规程
- 电子商务平台店铺入驻协议
- 抖音拍摄及剪辑培训课件
- 2024年高血压急症诊疗新进展
- 《产品开发及设计》课件
- 新建220kV变电站工程施工设计方案
评论
0/150
提交评论