PHP代码审计(四)PHP文件操作函数(1)

简介: 改变文件所有者。如果成功则返回 TRUE,如果失败则返回 FALSE。语法:chown(file,owner)

常用PHP文件操作函数

注:文件操作函数的行为受到 php.ini 中设置的影响。

当在 Unix 平台上规定路径时,正斜杠 (/) 用作目录分隔符。而在 Windows 平台上,正斜杠 (/) 和反斜杠 () 均可使用。

 

1:basename()

返回路径中的文件名。分为带扩展名和不带扩展名的。

语法:basename(path,suffix)

Path:必需。规定要检查的路径。

Suffix:可选。规定文件扩展名。如果文件有名有文件扩展名,将不会显示这个扩展名。

php

复制代码

// basename 
    $path = "/testweb/home.php";
    // 输出文件名,包含扩展名
    echo basename($path) ."<br/>";  // home.php
    // 输出文件名,不包含扩展名
    echo basename($path,".php");    // home

2:copy()

复制文件。该函数如果成功则返回 TRUE,如果失败则返回 FALSE。如果目标文件已存在,将会被覆盖。

语法:copy(file,to_file)

File:必需。规定要复制的文件。

to_file:必需。规定复制文件的目的地。

arduino

复制代码

// 复制文件,返回值为bool
    echo copy("source.txt","target.txt");

3:dirname()

返回路径中的目录部分。

语法:dirname(path)

Path:必需。规定要检查的路径。

bash

复制代码

// 返回文件路径
    echo dirname("c:/testweb/home.php")."<br>";  // c:/testweb/
    echo dirname("/testweb/home.php");          // /testweb/

4:disk_free_space()

返回目录的可用空间。,以字节为单位。

语法:disk_free_space(directory)

Directory:必需。规定要检查的目录。(该目录有限制)

arduino

复制代码

// 返回指定目录的可用空间(查询的目录是有限制的)
    echo disk_free_space("D:/wwwroot/xxx.com/");

5:disk_total_space()

返回一个目录的磁盘总容量。返回字节数

语法:disk_total_space(directory)

Directory:必需。规定要检查的目录。

bash

复制代码

echo disk_total_space("C:/Windows/Temp/");
    echo "<hr>";

6:file_exists()

检查文件或目录是否存在。返回bool值

语法:file_exists(path)

Path:必需。规定要检查的路径。

php

复制代码

// 查看test.txt是否存在,返回bool值
    echo file_exists("target.txt");         // 1
    echo "<hr>";

7:file_get_contents()

将文件读入字符串。

语法:file_get_contents(path,include_path,context,start,max_length)

Path:必需。规定要读取的文件。

include_path:可选。如果您还想在 include_path(在 php.ini 中)中搜索文件的话,请设置该参数为 '1'。

Context:可选。规定文件句柄的环境。context 是一套可以修改流的行为的选项。若使用 NULL,则忽略。

Start:可选。规定在文件中开始读取的位置。该参数是 PHP 5.1 中新增的。

max_length:可选。规定读取的字节数。该参数是 PHP 5.1 中新增的。

php

复制代码

// 读取文件
    echo file_get_contents("target.txt");
    echo "<hr>";

提示: 该函数是二进制安全的。(意思是二进制数据(如图像)和字符数据都可以使用此函数写入。)

8:file_put_contents()

将字符串写入文件。如果成功,该函数将返回写入文件中的字符数。如果失败,则返回 False。

语法:int file_put_contents ( string filename,mixedfilename , mixed filename,mixeddata [, int flags=0[,resourceflags = 0 [, resource flags=0[,resourcecontext ]] )

File:必需。规定要写入数据的文件。如果文件不存在,则创建一个新文件。

Data:必需。规定要写入文件的数据。可以是字符串、数组或数据流。

Mode:可选。规定如何打开/写入文件。可能的值:FILE_USE_INCLUDE_PATH/FILE_APPEND/LOCK_EX

Context:可选。规定文件句柄的环境。context 是一套可以修改流的行为的选项。

php

复制代码

// 写入文件
    echo file_put_contents("sites.txt","Runoob");
    echo "<hr>";

作者:camellia

链接:https://juejin.cn/post/7128559059732529183

来源:稀土掘金

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

目录
相关文章
|
3月前
|
PHP
php常见问题,php.ini文件不存在或者找不到,mb_strlen()函数未定义系列问题,dll模块找不到的解决
本文介绍了解决PHP常见问题的步骤,包括定位和创建`php.ini`文件,以及解决`mb_strlen()`函数未定义和DLL模块加载错误的具体方法。
php常见问题,php.ini文件不存在或者找不到,mb_strlen()函数未定义系列问题,dll模块找不到的解决
|
1月前
|
关系型数据库 MySQL 数据库连接
PHP内置函数
PHP内置函数
25 5
|
3月前
|
存储 API PHP
php学习笔记-php数组的创建和使用,数组常用函数-day03
关于PHP数组的创建、使用以及常用函数的详细学习笔记。
php学习笔记-php数组的创建和使用,数组常用函数-day03
|
2月前
|
Unix PHP 数据库
PHP日期和时间Date()函数获取当前时间
通过灵活运用 `date()`函数及其丰富的格式选项,PHP开发者可以轻松地在应用程序中处理和展示日期及时间信息。无论是需要精确到秒的完整时间戳,还是仅仅展示日期或时间的某一部分,`date()`函数都能胜任。理解并熟练应用这些格式化技巧,对于提升代码的可读性和维护性至关重要。
67 1
|
3月前
|
XML SQL PHP
php学习笔记-php字符串及字符串常用函数总结-day04
本文总结了PHP中字符串的三种定义方式和常用字符串处理函数,包括字符串的修剪、转换、长度计算、子串操作、比较、连接、分割及替换等操作。
|
3月前
|
设计模式 存储 算法
PHP中的设计模式:策略模式的深入解析与应用在软件开发的浩瀚海洋中,PHP以其独特的魅力和强大的功能吸引了无数开发者。作为一门历史悠久且广泛应用的编程语言,PHP不仅拥有丰富的内置函数和扩展库,还支持面向对象编程(OOP),为开发者提供了灵活而强大的工具集。在PHP的众多特性中,设计模式的应用尤为引人注目,它们如同精雕细琢的宝石,镶嵌在代码的肌理之中,让程序更加优雅、高效且易于维护。今天,我们就来深入探讨PHP中使用频率颇高的一种设计模式——策略模式。
本文旨在深入探讨PHP中的策略模式,从定义到实现,再到应用场景,全面剖析其在PHP编程中的应用价值。策略模式作为一种行为型设计模式,允许在运行时根据不同情况选择不同的算法或行为,极大地提高了代码的灵活性和可维护性。通过实例分析,本文将展示如何在PHP项目中有效利用策略模式来解决实际问题,并提升代码质量。
|
4月前
|
Linux PHP
Linux CentOS 宝塔 Suhosin禁用php5.6版本eval函数详细图文教程
【8月更文挑战第27天】本文介绍两种禁用PHP执行的方法:使用`PHP_diseval_extension`禁用和通过`suhosin`禁用。由于`suhosin`不支持PHP8,仅适用于PHP7及以下版本,若服务器安装了PHP5.6,则需对应安装`suhosin-0.9.38`版本。文章提供了详细的安装步骤,并强调了宝塔环境下与普通环境下的PHP路径差异。安装完成后,在`php.ini`中添加`suhosin.so`扩展并设置`executor.disable_eval = on`以禁用执行功能。最后通过测试代码验证是否成功禁用,并重启`php-fpm`服务生效。
57 2
|
4月前
|
JavaScript 前端开发 PHP
|
4月前
|
JSON PHP Apache
[GFCTF 2021]Baby_Web(CVE-2021-41773) 从一道题入门PHP代码审计 (保姆级)
[GFCTF 2021]Baby_Web(CVE-2021-41773) 从一道题入门PHP代码审计 (保姆级)
41 1
|
4月前
|
前端开发 网络安全 PHP
PHP代码审计之MVC与ThinkPHP简介
PHP代码审计之MVC与ThinkPHP简介
44 2