返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >PHP文件上传利用的常见函数总结大全
  • 429
分享到

PHP文件上传利用的常见函数总结大全

2024-04-02 19:04:59 429人浏览 八月长安
摘要

目录前言1. deldot2. in_array3. intval4. strrchr5. strtolower6. strrpos7. str_ireplace8. strstr9

前言

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

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

1. deldot

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

function deldot($s){
	for($i = strlen($s)-1;$i>0;$i--){
		$c = substr($s,$i,1);
		if($i == strlen($s)-1 and $c != '.'){
			return $s;
		}

		if($c != '.'){
			return substr($s,0,$i+1);
		}
	}
}

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

因此对于如下输入,

echo deldot("hello world")."\n";
echo deldot("hello world.")."\n";
echo deldot("hello world....")."\n";
echo deldot("hello.world.")."\n";

输出为

hello world
hello world
hello world
hello.world

2. in_array

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

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

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

对于如下输入:

if(in_array("AAA",$arr,false)) echo 1;
if(in_array("aaa",$arr,false)) echo 2;
if(in_array("AAA",$arr,true)) echo 3;
if(in_array("aaa",$arr,true)) echo 4;

输出

13

3. intval

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

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

第一个参数$value为要获取整数值的变量,可以为字符串、数值和数组。
第二个参数$base指定了转换所使用的进制,当且仅当要转换的变量为字符串时有效。

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

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

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

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

echo intval("111");
echo "\n";
echo intval("111a");
echo "\n";
echo intval("0x333");
echo "\n";
echo intval("888",8);
echo "\n";
echo intval("122",3);
echo "\n";
echo intval("11111111111111111111111111111111111");
echo "\n";
echo intval("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";
echo strrchr($S,'h')."\n";
echo strrchr($S,'hwweraer')."\n";
echo strrchr($S,104)."\n";
if(strrchr($S,'k') == false) echo "false";

ha2333
ha2333
ha2333
false

5. strtolower

strtolower(string $string): string

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

$S = "HaHaHaHa,Hello!!";
echo strtolower($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";
echo strrpos($s,"php");
echo strrpos($s,"h");
echo strrpos($s,"P");
if(strrpos($s,"PHP") === false) echo "No exist";

输出:

890No exist

注:测试使用的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
echo str_ireplace("php","","hello.php")."\n";
echo str_ireplace("pHP","","hello.Php")."\n";
echo str_ireplace("php","","hello.phPHpp")."\n";
echo str_ireplace("php","p","hello.phphp")."\n";
echo str_ireplace("php",""."phpphpphpphpphp.php",3)."\n";
echo str_ireplace(array("php","html"),"","hello.php.html")."\n";
echo str_ireplace(array("php","html"),array("1","2"),"hello.php.html")."\n";
echo str_ireplace(array("php","html","CSS"),array("1","2"),"hello.php.css.html")."\n";
echo str_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.1…2
hello.1.1.1
hello.2 hello.3 hello.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";
echo strstr($s,"php")."\n";
echo strstr($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";
echo substr($s,1,3)."\n";
echo substr($s,1,-1)."\n";
echo substr($s,1)."\n";
echo substr($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 = "\n   1   23456789\t\n123456789\r";
echo trim($s);

1 23456789
123456789

附PHP 文件上传处理

  • $_FILES["file"]["name"] 客户端提交文件的原名称
  • $_FILES["file"]["type"] 浏览器提供的文件的 MIME 类型,如 gif 图片为 image/gif 。不过此类型在 PHP 端并不检查,因此不要想当然认为有这个值
  • $_FILES["file"]["size"] 已上传文件的大小,单位为字节
  • $_FILES["file"]["tmp_name"] 文件被上传后在服务端储存的临时文件名
  • $_FILES["file"]["error"] 和该文件上传相关的错误代码,为0则表示上传成功

参考资料

PHP官方

总结

到此这篇关于PHP文件上传利用的常见函数的文章就介绍到这了,更多相关PHP文件上传常见函数内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: PHP文件上传利用的常见函数总结大全

本文链接: https://lsjlt.com/news/141034.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • PHP文件上传利用的常见函数总结大全
    目录前言1. deldot2. in_array3. intval4. strrchr5. strtolower6. strrpos7. str_ireplace8. strstr9...
    99+
    2024-04-02
  • PHP文件上传用的常见函数有哪些
    本文小编为大家详细介绍“PHP文件上传用的常见函数有哪些”,内容详细,步骤清晰,细节处理妥当,希望这篇“PHP文件上传用的常见函数有哪些”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。1. deldotdeldot...
    99+
    2023-06-29
  • PHP常用的文件操作函数总结
    目录1 :basename()2 :copy()3 :dirname()4 :disk_free_space()5 :disk_total_space()6 :f...
    99+
    2022-11-13
    PHP文件操作函数 PHP文件操作
  • 如何利用文件函数实现PHP文件上传
    今天就跟大家聊聊有关如何利用文件函数实现PHP文件上传,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。如果你是一个电脑爱好者,不知道PHP的话你就太落伍了,如果想知道PHP的相关知识,...
    99+
    2023-06-17
  • PHP函数的文件上传函数
    PHP作为一种流行的服务器端编程语言,在Web应用程序开发方面有着广泛的应用。其中文件上传功能也是PHP中常用的功能之一,利用PHP的文件上传函数可以方便地实现文件上传功能。PHP文件上传函数介绍PHP文件上传函数主要用于将客户端传输的文件...
    99+
    2023-05-18
    函数 文件上传 PHP
  • 利用PHP文件上传函数实现文件上传和处理功能的技巧
    利用PHP文件上传函数实现文件上传和处理功能的技巧随着互联网的快速发展,文件上传和处理功能在网站开发中变得越来越重要。PHP作为一种常用的服务器端脚本语言,拥有丰富的文件处理函数,可以轻松实现文件上传和处理的功能。本文将为您介绍一些利用PH...
    99+
    2023-11-20
    文件上传 处理 关键词:PHP PHP 文件上传
  • php中常用的函数总结
    本篇内容主要讲解“php中常用的函数总结”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“php中常用的函数总结”吧!1、字符串编码转换  functio...
    99+
    2024-04-02
  • php中常见的文件操作函数
    这篇文章主要讲解了“php中常见的文件操作函数”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“php中常见的文件操作函数”吧!获取文件内容:file_get_...
    99+
    2024-04-02
  • wordpress常用的函数、条件判断以及文件总结
    WordPress基本模板文件 一套完整的WordPress模板应至少具有如下文件: style.css : CSS(样式表)文件 index.php : 主页模板 archive.php : Archive/Categ...
    99+
    2022-06-12
    wordpress 条件判断
  • 一文汇总PHP中最全的常用函数(收藏)
    本篇文章给大家带来了关于php的相关知识,其中主要给大家总结了PHP常用的函数,包含Math函数、字符串函数、数组函数、多字节字符串函数、时间函数、目录函数、文件系统函数,感兴趣的朋友下面一起来看一下吧,欢迎大家收藏学习!Math 函数ab...
    99+
    2023-05-14
    函数 php
  • 怎么利用​PHP中的 $_FILES上传文件
    小编给大家分享一下怎么利用PHP中的 $_FILES上传文件,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!PHP 中的$_FILESPHP全局$_FILES包含文...
    99+
    2023-06-14
  • PHP 函数在处理文件上传中的应用
    文件上传 php 函数:move_uploaded_file():移动上传的文件file_exists():检查文件是否存在is_uploaded_file():检查文件是否通过 htt...
    99+
    2024-04-24
    文件上传 php
  • PHP模拟上传文件使用CURLFile函数 加精!!!
    一、CURLFile 介绍 CURLFile::__construct (PHP 5 >= 5.5.0, PHP 7) CURLFile::__construct – curl_file_create — 创建 CURLFile 对象 说明...
    99+
    2023-09-14
    php 服务器 开发语言
  • 【总结】php设置文件路径的常见问题和解决方法
    PHP是一种流行的Web编程语言,在Web开发中广泛应用。与其他编程语言不同,它支持从不同的操作系统和服务器中访问和处理文件。在PHP中,文件路径是在操作系统和Web服务器之间进行解释和传递的,因此必须对其进行正确的配置和设置。PHP设置文...
    99+
    2023-05-14
    php
  • 【整理总结】一些php中常用的内置函数
    作为一个广泛使用的编程语言,PHP有许多内置函数可供使用。在编码过程中,掌握这些函数可以使开发人员更快速、高效地编写代码。本文将探讨 PHP 中常用的一些函数。一、字符串处理函数strlen(string $string):获取字符串长度该...
    99+
    2023-05-14
  • PHP 函数返回值的类型如何影响文件上传的安全性?
    php 函数返回值的类型在文件上传安全中发挥着至关重要的作用,包括:is_uploaded_file() 验证文件上传的合法性。filesize() 限制文件大小,防止恶意文件上传。pa...
    99+
    2024-04-15
    php 函数返回值
  • nodejs文件操作模块FS(File System)常用函数简明总结
    件系统操作相关的函数挺多的。首先可以分为两大类。 一类是异步+回调的。 一类是同步的。 在这里只对异步的进行整理,同步的只需要在函数名称后面加上Sync即可 1. 首先是一类最常规的读写函数,函数名称和形式...
    99+
    2022-06-04
    简明 函数 模块
  • 利用PHP邮件函数实现邮件发送和接收功能的方法总结
    利用PHP邮件函数实现邮件发送和接收功能的方法总结随着互联网的普及,电子邮件成为了人们日常生活中必不可少的沟通工具之一。而在网站开发中,也常常需要实现邮件发送和接收的功能。PHP作为一种常用的服务器端脚本语言,提供了一系列强大的邮件函数,可...
    99+
    2023-11-20
    邮件发送 PHP邮件函数 接收 方法总结
  • php安全攻防利用文件上传漏洞与绕过技巧详解
    目录前言文件上传漏洞的一些场景场景一:前端js代码白名单判断.jpg|.png|.gif后缀场景二:后端PHP代码检查Content-type字段场景三:代码黑名单判断.asp|.a...
    99+
    2024-04-02
  • 利用PHP文件下载函数实现文件下载和传输功能的技巧
    利用PHP文件下载函数实现文件下载和传输功能的技巧在Web开发过程中,经常会遇到需要实现文件下载和传输的需求。PHP作为一种功能强大的脚本语言,提供了丰富的函数和类库,能够简便地实现文件下载和传输的功能。本文将介绍如何利用PHP文件下载函数...
    99+
    2023-11-20
    PHP 下载 文件传输
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作