PHP 文件() 处理和函数

什么是文件?

文件只是计算机上用于存储信息的资源。

文件通常用于存储信息,例如

  • 程序配置文件
  • 简单数据,例如联系人姓名和电话号码。
  • 图像、图片、照片等。

PHP 文件格式支持

PHP 文件函数支持多种文件格式,包括

  • File.txt
  • File.log
  • File.custom_extension 即 file.xyz
  • File.csv
  • File.gif, file.jpg 等
  • 与需要其他软件和技能来管理 DBMS 系统的数据库相比,文件为简单数据提供了经济高效的永久数据存储解决方案。
  • 您想存储服务器日志等简单数据以供将来检索和分析
  • 您想存储程序设置,例如 program.ini

PHP file() 函数

PHP 通过其丰富的内置函数集合,提供了一种方便的文件处理方式。

Windows 和 MAC OS 等操作系统不区分大小写,而 Linux Unix 操作系统则区分大小写。

采用仅使用小写字母进行文件命名的命名约定是确保最大跨平台兼容性的好习惯。

现在让我们看一些最常用的 PHP 文件函数。

PHP file_exists() 函数

此函数用于确定文件是否存在。

  • 当我们在处理文件之前想知道文件是否存在时,它就派上用场了。
  • 在创建新文件并希望确保文件在服务器上尚不存在时,您也可以使用此函数。

file_exists 函数具有以下语法。

<?php
file_exists($filename); 
?>

此处,

  • “file_exists()”是 PHP 函数,如果文件存在则返回 true,如果不存在则返回 false。
  • “$file_name”是要检查的文件的路径和名称

下面的代码使用 file_exists 函数来确定文件 my_settings.txt 是否存在。

<?php
if (file_exists('my_settings.txt'))
 {    
        echo 'file found!';
 } 
else
 {     
        echo 'my_settings.txt does not exist';
  } 
?>

将上面的代码保存在一个名为 file_function.php 的文件中。假设您将文件保存在 htdocs 的 phptuts 文件夹中,请在浏览器中打开 URL https:///phptuts/file_function.php。您将看到以下结果。

PHP file_exists() Function

PHP fopen() 函数

fopen 函数用于打开文件。它具有以下语法

<?php
fopen($file_name,$mode,$use_include_path,$context);
 ?>

此处,

  • “fopen”是 PHP 打开文件函数
  • “$file_name”是要打开的文件名
  • “$mode”是文件的打开模式,下表显示了各种模式
模式 描述
r • 从头开始读取文件。
• 如果文件不存在,则返回 false。
• 仅读取
r+ • 从头开始读取文件
• 如果文件不存在,则返回 false。
• 读取和写入
w • 在文件开头写入
• 将文件截断为零长度
• 如果文件不存在,则尝试创建它。
• 仅写入
w+ • 在文件开头写入,将文件截断为零长度
• 如果文件不存在,则尝试创建它。
• 读取和写入
a • 追加到文件末尾
• 如果文件不存在,则尝试创建它。
• 仅写入
a+ • PHP 追加到文件末尾
• 如果文件不存在,则尝试创建它
• 读取和写入
  • “$use_include_path”是可选的,默认为 false。如果设置为 true,该函数也会在 include path 中搜索。
  • “$context”是可选的,可用于指定上下文支持。

PHP fwrite() 函数

fwrite 函数用于写入文件。

它具有以下语法

<?php
fwrite($handle, $string, $length);
?>

此处,

  • “fwrite”是 PHP 用于写入文件的函数
  • “$handle”是文件指针资源
  • “$string”是要写入文件的数据。
  • “$length”是可选的,可用于指定最大文件长度。

PHP fclose() 函数

fclose() 函数用于关闭 PHP 中已打开的文件

它具有以下语法。

<?php
fclose($handle); 
?>

此处,

  • “fclose”是用于关闭打开文件的PHP 函数
  • “$handle”是文件指针资源。

现在让我们看一个创建 my_settings.txt 的示例。

我们将使用以下函数。

  • Fopen
  • Fwrite
  • fclose

下面的代码“create_my_settings_file.php”实现了上述示例。

打开文件
<?php 

$fh = fopen("my_settings.txt", 'w')

or

die("Failed to create file"); ?>
关闭文件
<?php

fclose($fh);

?>
创建文件
<?php 

$fh = fopen("my_settings.txt", 'w') or die("Failed to create file"); 

$text = <<<_END 

localhost;root;pwd1234;my_database 

_END; 

fwrite($fh, $text) or die("Could not write to file"); 

fclose($fh); 

echo "File 'my_settings.txt' written successfully"; ?>    

代码测试

在浏览器中打开 URL https:///phptuts/create_my_settings.php

您将看到以下页面

PHP fclose Function

注意:如果磁盘已满或您没有写入文件的权限,您将收到一条错误消息。

切换回 URL https:///phptuts/file_function.php

您会得到什么结果?

PHP fgets() 函数

fgets 函数用于逐行读取 PHP 文件。它具有以下基本语法:fgets($handle); 其中:

  • “$fgets”是 PHP 用于读取文件行的函数
  • “$handle”是文件指针资源。

现在让我们看一个使用 fopen 和 fgets 函数读取 my_settings.txt 文件的示例。

下面的代码 read_my_settings.php 实现了上述示例。

<?php
$fh = fopen("my_settings.txt", 'r') or die("File does not exist or you lack permission to open it");
$line = fgets($fh);
echo $line; fclose($fh);
 ?>

此处,

  • “fopen”函数返回指定文件路径的文件的指针
  • 如果发生错误,则调用“die()”函数。它会显示一条消息并停止脚本执行

PHP copy() 函数

PHP copy 函数用于复制文件。它具有以下基本语法:copy($file,$copied_file); 其中:

  • “$file”指定要复制的文件的文件路径和名称。
  • “copied_file”指定复制文件的路径和名称

下面的代码说明了实现方法

<?php
copy('my_settings.txt', 'my_settings_backup.txt') or die("Could not copy file");
echo "File successfully copied to 'my_settings_backup.txt'"; 
?>

删除文件

unlink 函数用于删除文件。下面的代码说明了实现方法。

<?php
if (!unlink('my_settings_backup.txt'))
{
     echo "Could not delete file";
 }
else
{
     echo "File 'my_settings_backup.txt' successfully deleted"; 
}
 ?>

PHP file_get_contents() 函数

file_get_contents 函数用于读取整个文件内容。

下面的代码说明了实现方法。

file_get_contents 和 fgets 的区别在于,file_get_contents 将文件数据作为字符串返回,而 fgets 逐行读取文件。

<?php
echo "<pre>"; // Enables display of line feeds
echo file_get_contents("my_settings.txt");
echo "</pre>"; // Terminates pre tag
?>

摘要

  • 文件是用于存储数据的资源
  • PHP 具有丰富的内置函数集合,可简化文件操作。
  • 常用的文件函数包括 fopen、fclose、file_get_contents
  • 下表总结了所涵盖的函数
函数 描述
File_exists 用于确定文件是否存在
fopen 用于打开文件。返回已打开文件的指针
fwrite 用于向文件写入
fclose 用于打开已关闭的文件
fgets 用于逐行读取文件
copy 用于复制现有文件
unlink 用于删除现有文件
file_get_contents 用于将文件内容作为字符串返回