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

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

9:filesize()

函数返回指定文件的大小。

如果成功,该函数返回文件大小的字节数。如果失败,则返回 FALSE。

语法:filesize(filename)

Filename:必需。规定要检查的文件。

php

复制代码

// 返回文件大小
    echo filesize("target.txt");
    echo "<hr>";

10:filetype()

函数返回指定文件或目录的类型。

若成功,则返回 7 种可能的值。若失败,则返回 false。

语法:filetype(filename)

Filename:必需。规定要检查的文件。

php

复制代码

// 返回文件类型
    echo filetype("target.txt");
    echo "<hr>";

11:glob()

返回一个包含匹配指定模式的文件名/目录的数组。

glob() 函数返回匹配指定模式的文件名或目录。

该函数返回一个包含有匹配文件 / 目录的数组。如果出错返回 false。

语法:glob(pattern,flags)

File:必需。规定检索模式。

Size:可选。规定特殊的设定。

       GLOB_MARK - 在每个返回的项目中加一个斜线

       GLOB_NOSORT - 按照文件在目录中出现的原始顺序返回(不排序)

       GLOB_NOCHECK - 如果没有文件匹配则返回用于搜索的模式

       GLOB_NOESCAPE - 反斜线不转义元字符

       GLOB_BRACE - 扩充 {a,b,c} 来匹配 'a','b' 或 'c'

       GLOB_ONLYDIR - 仅返回与模式匹配的目录项

       GLOB_ERR - 停止并读取错误信息(比如说不可读的目录),默认的情况下忽略所有错误

       注释:GLOB_ERR 是 PHP 5.1 添加的。

bash

复制代码

echo "<pre>";
    var_dump(glob("*.*"));
    echo "<hr>";

12:is_dir()

判断指定的文件名是否是一个目录。

语法:is_dir(file)

File:必需。规定要检查的文件。

bash

复制代码

$file = "D:/wwwroot/xxx.com/";
    if(is_dir($file))
    {
        echo ("$file is a directory");
    }
    else
    {
        echo ("$file is not a directory");
    }
    echo "<hr>";

13:is_writable()

判断文件是否可写。如果文件存在并且可写则返回 true。

语法:is_writable(file)

File:必需。规定要检查的文件。

bash

复制代码

$file = "target.txt";
    if(is_writable($file))
    {
        echo ("$file is writeable");
    }
    else
    {
        echo ("$file is not writeable");
    }
    echo "<hr>";

14:mkdir()

创建目录,如果成功该函数返回 TRUE,如果失败则返回 FALSE。

语法:mkdir(path,mode,recursive,context)

Path:必需。规定要创建的目录的名称。

Mode:可选。规定权限。默认是 0777(允许全局访问)。

mode 参数由四个数字组成:

第一个数字通常是 0

第二个数字规定所有者的权限

第三个数字规定所有者所属的用户组的权限

第四个数字规定其他所有人的权限

可能的值(如需设置多个权限,请对下面的数字进行总计):

1 = 执行权限

2 = 写权限

4 = 读权限

Recursive:可选。规定是否设置递归模式。(PHP 5 中新增的)

Context:可选。规定文件句柄的环境。context 是一套可以修改流的行为的选项。(PHP 5 中新增的)

bash

复制代码

echo mkdir("testing");
    echo "<hr>";

注释: mode 参数在 Windows 平台上被忽略。

15:move_uploaded_file()

将上传的文件移动到新位置。若成功,则返回 true,否则返回 false。

文件上传的核心就是这个文件

语法:move_uploaded_file(file,newloc)

File:必需。规定要移动的文件。

Newloc:必需。规定文件的新位置。

注释:本函数仅用于通过 HTTP POST 上传的文件。

注意:如果目标文件已经存在,将会被覆盖。

16:parse_ini_file()

函数解析一个配置文件(ini 文件),并以数组的形式返回其中的设置。

语法:parse_ini_file(file,process_sections)

File:必需。规定要检查的 ini 文件。

process_sections:可选。如果设置为 TRUE,则返回一个多维数组,包括了配置文件中每一节的名称和设置。默认是 FALSE。

bash

复制代码

echo "<pre>";
    var_dump(parse_ini_file("test.ini"));
    echo "<hr>";

注:此ini文件不一定非的是php.ini,也可以是你自己的ini配置文件。

17:realpath()

该函数删除所有符号连接(比如 '/./', '/../' 以及多余的 '/'),并返回绝对路径名。

如果失败,该函数返回 FALSE。

语法:realpath(path)

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

echo realpath("test.ini");

18:rename()

rename() 函数重命名文件或目录。

如果成功,该函数返回 TRUE。如果失败,则返回 FALSE。

语法:rename(oldname,newname,context)

Oldname:必需。规定要重命名的文件或目录。

Newname:必需。规定文件或目录的新名称。

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

bash

复制代码

echo rename("test.ini","testss.ini");
    echo "<hr>";

19:tempnam()

创建唯一的临时文件。若成功,则该函数返回新的临时文件名。若失败,则返回 false。

语法:tempnam(dir,prefix)

Dir:必需。规定创建临时文件的目录。

Prefix:必需。规定文件名的开头。

bash

复制代码

echo tempnam("D:wwwrootxxx.com","TMP0");
    echo "<hr>";

注:此方法创建的文件,如果不再需要该文件则要删除此文件,不会自动删除的。

目录
相关文章
|
7天前
|
PHP
php常见问题,php.ini文件不存在或者找不到,mb_strlen()函数未定义系列问题,dll模块找不到的解决
本文介绍了解决PHP常见问题的步骤,包括定位和创建`php.ini`文件,以及解决`mb_strlen()`函数未定义和DLL模块加载错误的具体方法。
php常见问题,php.ini文件不存在或者找不到,mb_strlen()函数未定义系列问题,dll模块找不到的解决
|
7天前
|
存储 API PHP
php学习笔记-php数组的创建和使用,数组常用函数-day03
关于PHP数组的创建、使用以及常用函数的详细学习笔记。
php学习笔记-php数组的创建和使用,数组常用函数-day03
|
7天前
|
XML SQL PHP
php学习笔记-php字符串及字符串常用函数总结-day04
本文总结了PHP中字符串的三种定义方式和常用字符串处理函数,包括字符串的修剪、转换、长度计算、子串操作、比较、连接、分割及替换等操作。
|
8天前
|
设计模式 存储 算法
PHP中的设计模式:策略模式的深入解析与应用在软件开发的浩瀚海洋中,PHP以其独特的魅力和强大的功能吸引了无数开发者。作为一门历史悠久且广泛应用的编程语言,PHP不仅拥有丰富的内置函数和扩展库,还支持面向对象编程(OOP),为开发者提供了灵活而强大的工具集。在PHP的众多特性中,设计模式的应用尤为引人注目,它们如同精雕细琢的宝石,镶嵌在代码的肌理之中,让程序更加优雅、高效且易于维护。今天,我们就来深入探讨PHP中使用频率颇高的一种设计模式——策略模式。
本文旨在深入探讨PHP中的策略模式,从定义到实现,再到应用场景,全面剖析其在PHP编程中的应用价值。策略模式作为一种行为型设计模式,允许在运行时根据不同情况选择不同的算法或行为,极大地提高了代码的灵活性和可维护性。通过实例分析,本文将展示如何在PHP项目中有效利用策略模式来解决实际问题,并提升代码质量。
|
2月前
|
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`服务生效。
27 2
|
2月前
|
JavaScript 前端开发 PHP
|
2月前
|
JSON PHP Apache
[GFCTF 2021]Baby_Web(CVE-2021-41773) 从一道题入门PHP代码审计 (保姆级)
[GFCTF 2021]Baby_Web(CVE-2021-41773) 从一道题入门PHP代码审计 (保姆级)
18 1
|
2月前
|
SQL 安全 API
PHP代码审计示例(一)——淡然点图标系统SQL注入漏洞审计
PHP代码审计示例(一)——淡然点图标系统SQL注入漏洞审计
62 4
|
2月前
|
前端开发 网络安全 PHP
PHP代码审计之MVC与ThinkPHP简介
PHP代码审计之MVC与ThinkPHP简介
32 2
|
2月前
|
监控 安全 网络安全
PHP代码审计之简单思路方法
PHP代码审计之简单思路方法
90 1