欢迎访问宙启技术站
智能推送

php函数:文件和目录的操作,如何创建、读取或写入文件和目录

发布时间:2023-06-19 02:48:23

在PHP中,文件和目录操作是一种非常常见的操作,可以用于存储或读取数据,创建新的文件或目录,以及管理文件和目录的权限。本文将介绍几个常用的文件和目录操作函数,并且示例演示如何使用这些函数。

一、文件操作函数

1. fopen():打开文件

语法:fopen(string $filename, string $mode, bool $use_include_path=false, resource $context=null) : resource

$fopen()函数用于打开一个文件,并返回指向该文件的资源句柄,以便进一步的读取或写入操作。$filename指定要打开的文件的名称,$mode指定在打开文件时使用的模式,可以是“r”(只读),“w”(只写,如果文件不存在则创建),“a”(追加),“x”(创建并写入新文件)等。$use_include_path为是否考虑“include path”以找到文件,$context用于指定请求流的上下文,如超时、cookie等信息。

例子:

$myfile = fopen("example.txt", "w") or die("无法打开文件!");
$txt = "Hello World!";
fwrite($myfile, $txt);
fclose($myfile);

上面这个例子中,我们创建一个名为“example.txt”的文件,并在该文件中写入文本“Hello World!”。

2. fwrite():写入文件

语法:fwrite(resource $handle, string $string, int length=null) : int

$fwrite()函数用于将字符串写入打开的文件句柄中。$handle为指向文件的资源句柄,$string为要写入的字符串,$length为要写入的字节数,如果没有指定,则写入整个字符串。

例子:

$myfile = fopen("example.txt", "w") or die("无法打开文件!");
$txt = "Hello World!";
fwrite($myfile, $txt);
fclose($myfile);

上面这个例子中,我们创建一个名为“example.txt”的文件,并在该文件中写入文本“Hello World!”。

3. fread():读取文件

语法:fread(resource $handle, int $length) : string

$fread()函数用于从打开的文件句柄中读取字符串。$handle为指向文件的资源句柄,$length指定要读取的最大字节数,返回读取到的内容字符串。

例子:

$myfile = fopen("example.txt", "r") or die("无法打开文件!");
echo fread($myfile,filesize("example.txt"));
fclose($myfile);

上面这个例子中,我们读取名为“example.txt”的文件中的内容,并将其输出到屏幕上。

4. fgets():读取文件的一行

语法:fgets(resource $handle, int $length=null) : string

$fgets()函数用于从打开的文件句柄中读取一行字符串。$handle为指向文件的资源句柄,$length指定要读取的最大字节数,返回读取的字符串。

例子:

$myfile = fopen("example.txt", "r") or die("无法打开文件!");
echo fgets($myfile);
fclose($myfile);

上面这个例子中,我们读取名为“example.txt”的文件中的 行,并将其输出到屏幕上。

5. fclose():关闭文件

语法:fclose(resource $handle) : bool

$fclose()函数用于关闭文件句柄,释放系统资源。$handle为指向文件的资源句柄,返回一个布尔值,表示该文件是否已成功关闭。

例子:

$myfile = fopen("example.txt", "r") or die("无法打开文件!");
fclose($myfile);

上面这个例子中,我们打开名为“example.txt”的文件,并且在处理完文件后,使用fclose()函数关闭这个文件。

二、目录操作函数

1. mkdir():创建目录

语法:mkdir(string $pathname, int $mode=0777, bool $recursive=false, resource $context=null) : bool

$mkdir()函数用于创建一个新目录。$pathname指定要创建的目录的名称,$mode指定了该目录的权限,$recursive为是否递归地创建目录(如果指定了路径不是已经存在的目录)。$context用于指定请求流的上下文,如超时、cookie等信息。

例子:

mkdir("newdir");

上面这个例子中,我们创建一个名为“newdir”的新目录。

2. opendir():打开目录

语法:opendir(string $path, resource $context=null) : resource

$opendir()函数用于打开指定的目录,返回一个指向目录的句柄资源,以便进一步操作。$path指定要打开的目录的路径,$context用于指定请求流的上下文,如超时、cookie等信息。

例子:

$dir = "/tmp";

//打开目录,返回目录句柄
if ($handle = opendir($dir)) {
    //读取目录中的所有文件
    while (false !== ($entry = readdir($handle))) {
        echo "$entry
";
    }

    //关闭目录
    closedir($handle);
}

上面这个例子中,我们打开了“/tmp”目录,并读取了该目录中的所有文件。最后,我们使用closedir()函数关闭了该目录。

3. readdir():读取目录中的文件

语法:readdir(resource $handle) : string|false

$readdir()函数用于从打开的目录中读取目录项。$handle为指向目录的句柄资源,返回该目录项的名称的字符串。当读到目录项的末尾时,返回false。

例子:

$dir = "/tmp";

//打开目录,返回目录句柄
if ($handle = opendir($dir)) {
    //读取目录中的所有文件
    while (false !== ($entry = readdir($handle))) {
        echo "$entry
";
    }

    //关闭目录
    closedir($handle);
}

上面这个例子中,我们打开了“/tmp”目录,并读取了该目录中的所有文件。最后,我们使用closedir()函数关闭了该目录。

4. rmdir():删除目录

语法:rmdir(string $directory, resource $context=null) : bool

$rmdir()函数用于删除指定的目录。$directory为要删除的目录的名称,$context用于指定请求流的上下文,如超时、cookie等信息。此函数只能删除空目录;如果目录中有任何文件,则rmdir()函数将失败。

例子:

rmdir("example");

上面这个例子中,我们删除了名为“example”的目录。

总结:

文件和目录操作在PHP中非常常见,在开发过程中十分重要。通过上述五个函数,我们可以实现文件和目录的创建、读取、写入、打开和关闭,以及目录的创建和删除等操作。这些函数可以帮助我们更加便捷地进行文件和目录的管理和维护。