Skip to content

php_ref_directory

PHP 提供了一套内置函数,允许您的脚本与服务器的文件系统目录交互。您可以读取目录内容、导航目录结构以及获取目录信息。

这些函数对于文件管理、通过读取图片目录创建图片画廊或扫描目录以查找特定文件等任务至关重要。

目录函数是 PHP 核心的一部分。无需单独安装或启用扩展即可使用它们;在任何标准的 PHP 安装中,它们默认可用。

权限(Permissions): 您的 PHP 脚本读取或修改目录的能力在很大程度上取决于运行 Web 服务器(和 PHP)的用户账户所获得的文件系统权限。权限不足是常见的错误来源。

安全性(Security): 使用目录函数处理用户提供的输入(如目录路径或文件名)时务必小心谨慎。始终验证和清理此类输入,以防止目录遍历漏洞(Directory Traversal vulnerabilities),攻击者可能会诱使您的脚本访问非预期目录(例如,../../etc/passwd)。realpath() 和 basename() 等函数可以帮助缓解这些风险。

现代替代方案(Modern Alternatives): 对于更复杂的文件系统操作,尤其是在面向对象的上下文(Object-Oriented Context)中,可以考虑使用 Standard PHP Library (SPL) 中的 DirectoryIterator 和 RecursiveDirectoryIterator 类。它们提供了更灵活和可迭代的方式来处理目录内容。

函数说明
chdir()更改 PHP 脚本的当前工作目录。
chroot()更改当前进程的根目录(需要 root 权限,使用时务必小心)。
closedir()关闭先前由 opendir() 打开的目录句柄。
dir()返回 Directory 类的一个实例,提供了一种面向对象的方式来读取目录。
getcwd()获取当前工作目录路径。
opendir()打开一个目录句柄,以便与 readdir()、rewinddir() 和 closedir() 一起使用。
readdir()从由 opendir() 打开的目录句柄中读取一个条目(文件或子目录名称)。
rewinddir()将(由 opendir() 打开的)目录句柄重置到开头。
scandir()列出指定路径内的文件和目录,并将其作为数组返回。比 opendir/readdir/closedir 模式更容易用于简单的列表。