PHP 文件(File)

在本教程中,您将学习如何使用PHP的文件系统函数动态创建,访问(或读取)和操纵文件。

使用PHP处理文件

由于PHP是服务器端编程语言,因此它使您可以使用Web服务器上存储的文件和目录。在本教程中,您将学习如何使用PHP文件系统函数在Web服务器上创建,访问和操作文件。

用PHP fopen() 函数打开文件

要使用文件,首先需要打开文件。PHP fopen()函数用于打开文件。该函数的基本语法可以通过以下方式给出:

fopen(filename, mode)

传递给fopen()的第一个参数指定要打开的文件的名称,第二个参数指定应以哪种模式打开文件。 例如:

示例<?php

$handle = fopen("data.txt", "r");

?>测试看看‹/›

可以通过以下方式之一打开文件:

模式它能做什么r打开文件只读。

r+打开文件进行读写。

w打开仅用于写入的文件,并清除文件内容。如果该文件不存在,PHP将尝试创建它。

w+打开文件进行读写,并清除文件内容。如果该文件不存在,PHP将尝试创建它。

a追加。打开仅用于写入的文件。通过写入文件末尾来保留文件内容。如果该文件不存在,PHP将尝试创建它。

a+读取/追加。打开文件进行读写。通过写入文件末尾来保留文件内容。如果该文件不存在,PHP将尝试创建它。

x打开仅用于写入的文件。 如果文件已存在,则返回False并生成错误。 如果该文件不存在,PHP将尝试创建它。

x+打开文件进行读写;否则,其行为与“ x”相同。

如果您试图打开一个不存在的文件,PHP将生成一条警告消息。因此,为了避免这些错误消息,在尝试访问某个文件或目录之前,应该使用PHP file_exists()函数实现一个简单的检查,检查文件或目录是否存在。

示例<?php

$file = "data.txt";

//检查文件是否存在

if(file_exists($file)){

// 尝试打开该文件

$handle = fopen($file, "r");

} else{

echo "ERROR: File does not exist.";

}

?>测试看看‹/›

提示:对文件和目录的操作容易出错。因此,实现某种形式的错误检查是一个好习惯,这样,如果发生错误,您的脚本将可以优雅地处理错误。请参考有关PHP错误处理的教程。

使用PHP fclose()函数关闭文件

使用完文件后,需要将其关闭。fclose()函数用于关闭文件,如以下示例所示:

示例<?php

$file = "data.txt";

//检查文件是否存在

if(file_exists($file)){

//打开要读取的文件

$handle = fopen($file, "r") or die("ERROR: Cannot open the file.");

/* 这里是一些要执行的代码 */

//正在关闭文件句柄

fclose($handle);

} else{

echo "ERROR: File does not exist.";

}

?>测试看看‹/›

注意:虽然PHP会在脚本终止时自动关闭所有打开的文件,但最好在执行所有操作后关闭文件。

使用PHP fread()函数从文件读取

现在您已经了解了如何打开和关闭文件。 在下一节中,您将学习如何从文件中读取数据。 PHP有几个用于从文件读取数据的函数。 您可以使用单个操作从一个字符读取整个文件。

读取固定数量的字符

fread()函数可用于从文件中读取指定数量的字符。可以使用此函数的基本语法。

fread(file handle, length in bytes)

此函数接受两个参数-文件句柄和要读取的字节数。 下面的示例从“data.txt”文件读取20个字节,包括空格。 假设文件“data.txt”包含一段文本“The quick brown fox jumps over the lazy dog.”。

示例<?php

$file = "data.txt";

//检查文件是否存在

if(file_exists($file)){

//打开要读取的文件

$handle = fopen($file, "r") or die("ERROR: Cannot open the file.");

//从文件中读取固定的字节数

$content = fread($handle, "20");

//关闭文件的句柄

fclose($handle);

//显示文件内容

echo $content;

} else{

echo "ERROR: File does not exist.";

}

?>测试看看‹/›

上面的示例将产生以下输出:

The quick brown fox

读取文件的全部内容

fread()函数可以与filesize()函数结合使用,一次读取整个文件。filesize()函数的作用是:以字节为单位返回文件的大小。

示例<?php

$file = "data.txt";

//检查文件是否存在

if(file_exists($file)){

//打开要读取的文件

$handle = fopen($file, "r") or die("ERROR: Cannot open the file.");

//正在读取整个文件

$content = fread($handle, filesize($file));

//正在关闭文件句柄

fclose($handle);

//显示文件内容

echo $content;

} else{

echo "ERROR: File does not exist.";

}

?>测试看看‹/›

上面的示例将产生以下输出:The quick brown fox jumps over the lazy dog.

在PHP中读取文件全部内容的最简单方法是使用readfile()函数。此函数允许您在不需要打开文件的情况下读取文件的内容。以下示例将生成与上述示例相同的输出:

示例<?php

$file = "data.txt";

//检查文件是否存在

if(file_exists($file)){

//读取并输出整个文件

readfile($file) or die("ERROR: Cannot open the file.");

} else{

echo "ERROR: File does not exist.";

}

?>测试看看‹/›

上面的示例将产生以下输出:The quick brown fox jumps over the lazy dog.

另一种无需打开即可读取文件全部内容的方法是使用file_get_contents()函数。此函数接受文件的名称和路径,并将整个文件读入字符串变量。下面是一个实例:

示例<?php

$file = "data.txt";

//检查文件是否存在

if(file_exists($file)){

// 将整个文件读入字符串

$content = file_get_contents($file) or die("ERROR: Cannot open the file.");

//显示文件内容

echo $content;

} else{

echo "ERROR: File does not exist.";

}

?>测试看看‹/›

从文件读取全部数据的另一种方法是PHP的file()函数。 它的功能与file_get_content()函数类似,但它将文件内容作为行数组返回,而不是以单个字符串的形式返回。 返回的数组的每个元素对应于文件中的一行。

要处理文件数据,您需要使用foreach循环遍历数组。这是一个示例,该示例将文件读入数组,然后使用循环显示它:

示例<?php

$file = "data.txt";

//检查文件是否存在

if(file_exists($file)){

//将整个文件读入数组

$arr = file($file) or die("ERROR: Cannot open the file.");

foreach($arr as $line){

echo $line;

}

} else{

echo "ERROR: File does not exist.";

}

?>测试看看‹/›

使用PHP fwrite() 函数写入文件

同样,您可以使用PHP fwrite()函数将数据写入文件或追加到现有文件。该函数的基本语法可以通过以下方式给出:

fwrite(file handle, string)

fwrite()函数接受两个参数—文件句柄和要写入的数据字符串,如以下示例所示:<?php

$file = "note.txt";

//要写入的数据字符串

$data = "The quick brown fox jumps over the lazy dog.";

//打开文件进行写入

$handle = fopen($file, "w") or die("ERROR: Cannot open the file.");

//将数据写入文件

fwrite($handle, $data) or die ("ERROR: Cannot write the file.");

//关闭文件句柄

fclose($handle);

echo "数据已成功写入文件。";

?>

在上面的示例中,如果“ note.txt”文件不存在,PHP将自动创建该文件并写入数据。但是,如果“ note.txt”文件已经存在,PHP将在写入新数据之前擦除此文件的内容(如果有的话),但是,如果您只想追加文件并保留现有内容,上面的示例请使用模式 a而不是w。

另一种方法是使用file_put_contents()函数。它是file_get_contents()函数的对应功能,提供了一种无需打开即可将数据写入文件的简便方法。该函数接受文件的名称和路径以及要写入文件的数据。这是一个实例:<?php

$file = "note.txt";

//要写入的数据字符串

$data = "The quick brown fox jumps over the lazy dog.";

//将数据写入文件

file_put_contents($file, $data) or die("ERROR: Cannot write the file.");

echo "数据已成功写入文件。";

?>

如果file_put_contents()函数中指定的文件已经存在,则默认情况下PHP将覆盖它。如果要保留文件的内容,可以将特殊FILE_APPEND标志作为第三个参数传递给file_put_contents()函数。它将简单地将新数据追加到文件中,而不是覆盖它。这是一个实例:<?php

$file = "note.txt";

//要写入的数据字符串

$data = "The quick brown fox jumps over the lazy dog.";

//将数据写入文件

file_put_contents($file, $data, FILE_APPEND) or die("ERROR: Cannot write the file.");

echo "数据已成功写入文件。";

?>

用PHP rename()函数重命名文件

您可以使用PHP的rename()函数重命名文件或目录,如下所示:<?php

$file = "file.txt";

//检查文件是否存在

if(file_exists($file)){

//尝试重命名文件

if(rename($file, "newfile.txt")){

echo "文件重命名成功。";

} else{

echo "错误:无法重命名文件。";

}

} else{

echo "错误:文件不存在。";

}

?>

使用PHP unlink()函数删除文件

您可以使用PHP的unlink()函数删除文件或目录,如下所示:<?php

$file = "note.txt";

//检查文件是否存在

if(file_exists($file)){

//尝试删除该文件

if(unlink($file)){

echo "文件已成功删除。";

} else{

echo "错误:无法删除文件。";

}

} else{

echo "错误:文件不存在。";

}

?>

在下一章中,我们将学习有关在PHP中解析目录或文件夹的更多信息。

PHP文件系统函数

下表概述了一些其他有用的PHP文件系统函数,这些函数可用于动态读取和写入文件。

函数描述fgetc()一次读取一个字符。

fgets()一次读取一行。

fgetcsv()读取一行用逗号分隔的值。

filetype()返回文件的类型。

feof()检查是否已到达文件末尾。

is_file()检查文件是否为常规文件。

is_dir()检查文件是否为目录。

is_executable()检查文件是否可执行。

realpath()返回规范化的绝对路径名。

rmdir()删除一个空目录。

请查看PHP文件系统参考,以获取其他有用的PHP文件系统函数。

如何用php创建一个文件怎么打开,PHP 文件(File)相关推荐

  1. Windows上快速创建一个1G以上的大文件

    利用fsutil命令 fsutil file createnew e:\b.txt 1073741824 以上命令就是在e盘创建一个1G的b.txt文件

  2. 如何创建一个没有密码的加密文件夹

    就像这样 using System; using System.Collections.Generic; using System.IO; using System.Windows;namespace ...

  3. vscode老编译之前的文件_vscode 打开新文件不替换旧文件

    设置 "workbench.editor.enablePreview": false- 主要是模仿robocopy的部分功能 (robocopy /L 参数可以列出本地目录和备份目 ...

  4. 本地html本地xml文件怎么打开,xml文件怎么打开

    xml文件怎么打开 xml文件一般用用记事本或都是IE都可以打开. XML是可扩展标记语言(Extensible Markup Language,XML)缩写,用于标记电子文件使其具有结构性的标记语言 ...

  5. android打开hex文件怎么打开,hex文件怎么打开

    hex文件怎么打开 hex文件是ASCII文本文件,一般可以使用ultraedit或WinHex打开. Hex 全称 (Intel HEX)文件是由一行行符合Intel HEX文件格式的文本所构成的A ...

  6. 菜鸟收藏:什么是.rar文件?如何打开rar文件?_下载加速吧

    rar文件怎么打开?如何打开rar文件?问题虽小,但rar文件怎么打开这个问题困住了不少电脑小白用户."rar文件怎么打开"问题只有一种解决方法,就是安装一个支持 解压 缩rar文 ...

  7. html中bak是什么文件怎么打开,bak文件怎么打开?打开bak文件的方法

    bak文件怎么打开?打开bak文件的方法 Jjhl7684dggds系统之家下载站http://www.windows114.com/ bak文件一般是备份文件,什么程序备份的就要用什么程序打开,除了 ...

  8. apk文件怎么打开(apk文件怎么打开下载)

    APK文件是Android设备上安装应用程序的文件格式.在Google Play商店中下载应用程序时,文件将以APK格式下载到您的手机或平板电脑中.有时,您可能需要手动安装APK文件,例如从非官方来源 ...

  9. 文件流下载ppt文件无法打开或文件已损坏

    在项目中遇到"文件流下载ppt文件无法打开或文件已损坏"这种情况,我也是查阅资料来一个排查问题的汇总 1.要设置responseType,在接口传参的时候传参过去 2.注意接口返回 ...

  10. 【UE5】打开他人的UE4/5项目没有.sln文件,打开c++文件失败

    [UE5]打开他人的UE4/5项目没有 .sln文件,打开c++文件失败 rt,下了个项目 进入项目后发现无法从虚幻引擎里打开c++文件,打开失败,进入项目文件夹查看后发现没有sln文件. 拷贝他人的 ...

最新文章

  1. F# 4.5提供Spans、Match!等特性
  2. 美国防部报告传指联想产品带来网络威胁
  3. python3 中 布尔 bool 类型转换
  4. 《那些年啊,那些事——一个程序员的奋斗史》——59
  5. 在centos服务器上运行第一个Helloworldjava程序
  6. Qt文档阅读笔记-Transformations解析及例子
  7. 红魔游戏手机6 Pro氘锋透明版明日开启预售:售价5599元
  8. 【Flink】Flink 1.9 本地运行无法访问界面 {“errors“:[“Not found.“]}
  9. An unknown error occurred.
  10. Python_base_正则表达式
  11. JavaWeb项目自动部署,持续集成
  12. 我是 SPI,我让框架更加优雅了!
  13. [软件工程] UML 用例图详解
  14. vue配置sass全局变量
  15. .Net插件编程模型:MEF和MAF
  16. android图片上传后台后旋转的关键原因:ExifInterface
  17. android打地鼠案例
  18. 最新中国土地市场网JS逆向分析
  19. 钓鱼篇-利用RLO隐藏exe文件捆绑office免杀-远程模板加载上线CS
  20. 树莓派什么都不装(包括python)测试摄像头的方法

热门文章

  1. 游戏自评——CF手游
  2. 不会 ps 没关系,在线一键抠图
  3. 电子科大和四川大学计算机考研分数线,最新!川大、电子科大公布考研复试分数线...
  4. 什么是Restfull
  5. 电脑登录QQ后自动弹出腾讯新闻,如何关闭自动弹出
  6. 中文预处理流程(以搜狐语料全网新闻数据为例)
  7. YouTube视频规格
  8. centos7安装nvida显卡驱动
  9. 【UWP通用应用开发】使用Toast通知与动态磁贴
  10. GC垃圾回收算法三种方式