在 PHP 中创建、打开和关闭文件
文件在应用程序中的使用
以下是我们在 Web 应用程序中需要文件的一些实际用例。
通常数据存储在 JSON 文件中,amd Php 代码必须读取文件,然后在网页上显示数据。
在一些简单的应用程序中,不使用数据库,而是将数据存储在文件中。
在某些 Web 应用程序中,您可能需要准备一个文件供用户下载,在这种情况下,Php 代码将创建一个文件,在其中写入数据,然后允许用户下载它。
上面的用例只是为了表明经常需要文件处理。
要创建新文件或打开现有文件,我们使用fopen()PHP 提供的函数并使用关闭文件资源fclose()函数。
使用 PHP 创建文件
当我们使用该函数fopen()打开一个不存在的文件时,就会创建该文件。
我们举个例子,
$myfile = 'file.txt'; $handle = fopen($myfile, 'w') or die('Cannot open file: '.$myfile);
fopen()函数将文件名作为第一个参数,第二个参数表示打开文件的模式。
但是,如果文件不存在,并且您正在使用fopen()创建文件,那么您应该保持模式为w,这意味着写入模式。我们将在下面的部分中了解各种模式。
用 PHP 打开文件
要打开文件,使用相同的fopen()函数。打开文件的原因可能有很多,例如读取文件内容、将新内容写入文件或将附加内容附加到文件中的现有内容。
我们举一个简单的例子,然后我们将讨论打开文件的不同模式。
$myfile = 'file.txt'; //打开 file.txt 文件 $handle = fopen($myfile, 'w') or die('Cannot open file: '.$myfile);
同样,fopen()function 需要两个强制参数,一个是文件名,第二个代表mode。
以下是不同的模式以及应该在fopen()函数中作为参数传递的文字。
模式 | 字符 | 说明 |
---|---|---|
读写 | w | 如果文件存在,则打开它以允许在其中进行写操作,如果文件不存在,则创建一个新文件。在这种模式下,文件中的所有现有数据都会被删除。 |
只读 | r | 文件以读取模式打开,文件指针从文件开头开始。 |
追加 | a | 文件以写入模式打开,其中文件的现有内容被删除。在现有内容之后添加的新内容。 |
创建只写文件 | x | 创建一个具有只写访问权限的新文件。如果文件已经存在,则返回错误。 |
除了上面指定的模式之外,我们还可以添加+字符串文字,以允许对给定模式进行读取和写入(默认)操作。
例如,r+模式打开文件进行读写。w+, 分别a+允许对文件进行读取操作以及默认的写入和追加操作。
从技术上讲,文件未打开,fopen()将资源(文件)绑定到流,然后可用于从文件读取或将数据写入文件。
此外,如果文件是本地文件,文件名应该是完全限定名称以及相对路径。该文件名,也可以指定远程FIEL的路径的URL。在这种情况下,一旦 PHP 意识到文件路径不是本地的,它将检查php.ini(PHP 的配置文件)中的allow_url_fopen属性值。如果它是false,PHP 将打印警告并且调用将失败。fopen()
使用 PHP 关闭文件
使用文件资源后关闭它是一种很好的做法。在 PHP 中fclose()函数用于关闭文件资源。它将文件名作为参数或保存文件资源指针的变量作为参数。让我们举个例子:
$myfile = 'file.txt'; //opens the file.txt file or implicitly creates the file $handle = fopen($myfile, 'w') or die('Cannot open file: '.$myfile); // closing a file fclose($handle);
让我们举一个简单的例子,我们将创建一个 PHP 文件来创建一个文本文件,然后打开同一个文件以在其中写入内容。
下面是我们将保留在read-file.php文件中的代码,用于打开file.txt文本文件以在其中写入数据。
$myfile = 'include/file.txt'; //opens the file.txt file $handle = fopen($myfile, 'w') or die('Cannot open file: '.$myfile); // close a file fclose($handle);
我们可以提供要读取的文件的完整路径,也可以提供如上例所示的相对路径。
在接下来的教程中,我们将学习如何读取、写入、将数据附加到文件中。