Php 简明教程
PHP - Open File
PHP 的内置函数库提供了 fopen() 函数来打开一个文件或任何其他流,并返回其“引用指针”,也称为“句柄”。
PHP 中的 fopen() 函数类似于 C 中的 fopen(),只不过在 C 中,它无法打开 URL。
Syntax of fopen()
fopen() 函数具有以下签名 -
fopen(
string $filename,
string $mode,
bool $use_include_path = false,
?resource $context = null
): resource|false
参数 $filename 和 $mode 是必需的。以下是参数说明 -
-
$filename - 此参数是一个字符串,表示要打开的资源。它可以是本地文件系统中的文件,也可以是具有 scheme:// 前缀的远程服务器上的文件。
-
$mode - 一个字符串,用于表示对文件/资源的访问类型。
-
$use_include_path - 一个可选布尔参数,如果要搜索 include_path 中的文件,可以将其设置为“1”或 true。
-
$context - 一个上下文流资源。
Modes of Opening a File
PHP 允许文件以以下模式打开 -
Modes |
Description |
r |
读出打开一个文件。 |
w |
只写打开文件,即使文件已存在,也会创建新文件。 |
a |
以追加模式打开文件 |
x |
创建新文件,只写。 |
r+ |
读/写打开文件。 |
w+ |
读/写打开文件,即使文件已存在,也会创建新文件。 |
a+ |
以追加模式读/写打开文件。 |
x+ |
创建新文件,读/写。 |
c |
如果文件不存在,则以写方式打开;但如果存在,则不截断(w 模式除外)。 |
c++ |
如果文件不存在,则以读/写方式打开;但如果存在,则不截断(w 模式除外)。 |
e |
打开文件描述符时,设置 close-on-exec 标识。仅适用于符合 POSIX.1-2008 规范的 PHP 编译系统中。 |
如果 fopen() 函数执行成功,则会返回绑定到文件流的“文件指针”或“句柄”资源。不过,如果失败,则会返回 FALSE,并发出 E_WARNING。
$handle = fopen('a.txt, 'r');
var_dump($handle);
如果文件存在于当前目录中,则由 output 显示成功 −
resource(5) of type (stream)
如果不显示,则会得到以下 error message −
Warning: fopen(a.txt): Failed to open stream:
No such file or directory in a.php on line 2
bool(false)
Examples
以下示例显示了 fopen() 函数的不同用法 −
<?php
$handle = fopen("hello.txt", "w");
$handle = fopen("c:/xampp/htdocs/welcome.png", "rb");
$handle = fopen("http://localhost/hello.txt", "r");
?>
请注意,当文件名是目录时,此函数也可能成功。在这种情况下,您可能需要使用 is_dir() 函数检查它是否是在执行任何读/写操作之前是一个文件。
一旦打开文件,就可以使用 fwrite() 或 fputs() 等函数在其中写入数据,并使用 fread() 和 fgets() 函数从中读取数据。