热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

php中常用文件操作读写函数介绍_PHP教程-php教程

php中常用文件操作读写函数介绍。本文章介绍了下面几个常用的文件操作函数file_get_contents读取整个文件内容fopen创建和打开文件fclose关闭文件fgets读取文件一行内容file_e
本文章介绍了下面几个常用的文件操作函数 file_get_contents 读取整个文件内容 fopen 创建和打开文件 fclose 关闭文件 fgets 读取文件一行内容 file_exists 检查文件或目录是否存在 file_put_contents 写入文件 fwrite 写入文件

用 PHP 内置函数 file_exists 可以检查某个文件或目录是否存在。如果文件或目录存在,file_exists 函数返回 TRUE,如果不存在,则返回 FALSE。

下面是一个简单的检查文件是否存在的实例代码:

代码如下
$filename = "C:\blabla\php\hello.txt";
if (file_exists($filename))
{echo "The file $filename exists.";
}else {
echo "The file $filename does not exist."
;}?>


如果文件存在,执行该 PHP 文件的显示结果是:

The file C:blablaphphello.txt exists.
如果文件不存在,执行该 PHP 文件的显示结果是:

The file C:blablaphphello.txt does not exist.
你也可以用file_exists 函数测试某个目录是否存在,示例代码如下:

代码如下

if (file_exists("C:\blabla\php"))
{echo "yes";}
else
{echo "no";}


用 PHP 内置函数 file_get_contents 可以读取整个文件内容。

file_get_contents 函数读取整个文件,返回一个字符串。file_get_contents 最简单的写法如下:

file_get_contents(filepath)
举个例子,你有一个 .txt 文件,文件的路径为:

C:blablaphphello.txt
下面的 php 代码用 file_get_contents 函数读取该文件,并输出该文件内容:

代码如下


$f = file_get_contents("C:\blabla\php\hello.txt");
echo $f;?>


注意:由于文件路径含有反斜杠,而在 PHP 字符串里,反斜杠需要转义,要用两个反斜杠表示。(如果你忘记了 PHP 某些特殊字符的转义,请翻阅前面所讲的 PHP 字符串。)

file_get_contents 函数的返回值是所读取的文件内容字符串,如果出错,返回 FALSE。


使用 PHP 内置函数 fopen,可以打开一个文件。

打开文件
fopen 最简单语法如下:

fopen(filepath,mode)
下面是打开一个文件的 PHP 代码示例:

代码如下
$f = fopen("c:\data\info.txt", "r");
?>

其中,c:\data\info.txt 是文件路径,r 表示打开文件的模式(mode) 为只读 (read only) 模式。

fopen 函数打开文件的模式有以下几种:

模式 (mode) 说明
r 只读,文件指针在文件开始处。
r+ 读和写,文件指针在文件开始处。
w 只写,文件指针在文件开始处,将文件长度截成0。

如果文件不存在,创建文件。

w+ 读和写,文件指针在文件开始处,将文件长度截成0。

如果文件不存在,创建文件。

a 只写,文件指针在文件末尾处。

如果文件不存在,创建文件。

a+ 读和写,文件指针在文件末尾处。

如果文件不存在,创建文件。

x 只写,文件指针在文件开始处。

如果文件已经存在,fopen () 函数返回 FALSE 并产生一个E_WARNING 级别的错误。

如果文件不存在,创建文件。

x+ 读和写,文件指针在文件开始处。

如果文件已经存在,fopen () 函数返回 FALSE 并产生一个E_WARNING 级别的错误。

如果文件不存在,创建文件。

如果成功打开文件,fopen 函数的返回值是一个文件指针资源 (a file pointer resource),如果出错,返回 FALSE。

创建文件
选择 fopen 函数参数 mode 的适当的值 ,你可以用 fopen 创建一个文件,比如:

代码如下

$f = fopen("c:\data\101.txt", "w");
$f = fopen("c:\data\102.txt", "w+");
$f = fopen("c:\data\103.txt", "a");
$f = fopen("c:\data\104.txt", "a+");
$f = fopen("c:\data\105.txt", "x");
$f = fopen("c:\data\106.txt", "x+");
?>

用 PHP 内置函数 fgets 可以读取文件的一行内容。

fgets读取文件一行内容的语法是:

fgets(filepointer)
下面我们举个例子讲述如何一行行读取一个文件。

假设我们有一个 sites.txt 文件,该文件有三行,内容如下:

woyouxian.comblabla.cngoogle.com
sites.txt 的文件路径是:

C:blablaphpsites.txt
我们用 PHP 一行行读取文件内容,PHP代码如下:

代码如下


$f= fopen("C:\blabla\php\sites.txt","r");
while (!feof($f)){
$line = fgets($f);
echo "site: ",$line,"
";
}
fclose($f);?>


执行该 PHP 文件,返回的显示结果是:

site: woyouxian.comsite: blabla.cnsite: google.com
该 PHP 代码的第一行是打开文件,最后一行是关闭一个文件。当中的 while 循环语句表示,当文件没有结束,就读取一行,循环执行,直到文件指针到文章末尾为止。

feof 函数是PHP 的一个内置函数,用来测试文件指针是否已经到了文件末尾。如果是返回 TRUE,如果不是,返回 FALSE。eof 的英文意思就是 end of file,很容易记。

正常情况下,fgets 函数的返回值是一个字符串,如果出错,返回 FALSE。


讲述使用 PHP 内置函数 fclose 关闭一个文件。

fclose 函数语法如下:

fclose(filepointer)
如果成功,fclose 函数返回 TRUE,如果失败,fclose 函数返回 FALSE。

下面是一个 fclose 函数的 PHP 代码示例:

代码如下

$f = fopen("c:\data\info.txt", "r");
fclose($f);
?>


这一章节我们讲述如何用 fopen, fwrite, fclose 来实现打开文件、写入文件和保存关闭文件的这一系列的操作。重点讲述 fwrite 函数。

PHP 内置函数 fwrite 用于写入文件。

fwrite 函数的常用语法为:

fwrite(handle,string)
其中,参数 handle 表示文件指针资源 (通常由 fopen 函数创建),string 表示要写入的内容。

下面一个PHP 代码示例演示如何创建一个新文件,并写入内容,然后保存并关闭文件:

代码如下
$f= fopen("C:\blabla\php\write.txt","w");
fwrite($f,"It is awesome.");fclose($f);echo "done";
?>


执行该 PHP 文件后,会创建一个路径为 C:blablaphpwrite.txt 的文件,文件的内容是It is awesome.。

如果你想在现有文件上再追加内容,你只要修改 fopen 的 参数 mode 值即可,如下:

$f= fopen("C:\blabla\php\write.txt","a");
有关 fopen 函数的参数 mode 值,详见 fopen。

fwrite 函数返回写入文件的字节数 (number of bytes) ,如果出错,返回 FALSE。

PHP 内置函数 file_put_contents 用于写入文件。

file_put_contents 函数最简单的写法,可以只用两个参数,一个是文件路径,一个是要写入的内容,语法如下:

file_put_contents(filepath,data)
如果文件不存在,file_put_contents 函数会自动创建文件;如果文件已存在,原有文件被重写。

你可以利用 file_put_contents 函数创建并写入一个新文件,或者重写一个原有文件。

下面是一个使用 file_put_contents 函数的 PHP 代码示例:

代码如下

$cOntent= "one for all";
file_put_contents($path,$content);
if (file_exists($path))
{echo "ok";}else {echo "ng";}
?>

该 PHP 代码示例会创建一个路径为 C:blablafilesysone.txt 的文件,该文件的内容是 one for all 。

如果你想在一个已有文件上追加内容,你也可以使用file_put_contents 函数,只需要加一个参数即可。

file_put_contents(filepath,data,flags)
当 flags 的值为 FILE_APPEND 时,表示在已有文件上追加内容。

比如我们要在上面示例的C:blablafilesysone.txt 文件上追加内容,我们可以这样写:

代码如下
$path ="C:\blabla\filesys\one.txt";
$cOntent= " all for one";
file_put_contents($path,$content,FILE_APPEND);
if (file_exists($path))
{echo "ok";}else {echo "ng";}
?>

执行该 PHP 文件之后,我们再看 C:blablafilesysone.txt 文件,发现文件内容增加了,变成了:

one for all all for one
file_put_contents 函数返回写入文件的字节数 (number of bytes) ,如果出错,返回 FALSE。

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/629216.htmlTechArticle本文章介绍了下面几个常用的文件操作函数file_get_contents 读取整个文件内容fopen 创建和打开文件fclose 关闭文件fgets 读取文件一行内容file_e...


推荐阅读
  • 嵌入式开发环境搭建与文件传输指南
    本文详细介绍了如何为嵌入式应用开发搭建必要的软硬件环境,并提供了通过串口和网线两种方式将文件传输到开发板的具体步骤。适合Linux开发初学者参考。 ... [详细]
  • 本题来自WC2014,题目编号为BZOJ3435、洛谷P3920和UOJ55。该问题描述了一棵不断生长的带权树及其节点上小精灵之间的友谊关系,要求实时计算每次新增节点后树上所有可能的朋友对数。 ... [详细]
  • 在项目部署后,Node.js 进程可能会遇到不可预见的错误并崩溃。为了及时通知开发人员进行问题排查,我们可以利用 nodemailer 插件来发送邮件提醒。本文将详细介绍如何配置和使用 nodemailer 实现这一功能。 ... [详细]
  • 本文详细探讨了JavaScript中的作用域链和闭包机制,解释了它们的工作原理及其在实际编程中的应用。通过具体的代码示例,帮助读者更好地理解和掌握这些概念。 ... [详细]
  • Windows 7 64位系统下Redis的安装与PHP Redis扩展配置
    本文详细介绍了在Windows 7 64位操作系统中安装Redis以及配置PHP Redis扩展的方法,包括下载、安装和基本使用步骤。适合对Redis和PHP集成感兴趣的开发人员参考。 ... [详细]
  • 丽江客栈选择问题
    本文介绍了一道经典的算法题,题目涉及在丽江河边的n家特色客栈中选择住宿方案。两位游客希望住在色调相同的两家客栈,并在晚上选择一家最低消费不超过p元的咖啡店小聚。我们将详细探讨如何计算满足条件的住宿方案总数。 ... [详细]
  • 本文介绍了数据库体系的基础知识,涵盖关系型数据库(如MySQL)和非关系型数据库(如MongoDB)的基本操作及高级功能。通过三个阶段的学习路径——基础、优化和部署,帮助读者全面掌握数据库的使用和管理。 ... [详细]
  • JSOI2010 蔬菜庆典:树结构中的无限大权值问题
    本文探讨了 JSOI2010 的蔬菜庆典问题,主要关注如何处理非根非叶子节点的无限大权值情况。通过分析根节点及其子树的特性,提出了有效的解决方案,并详细解释了算法的实现过程。 ... [详细]
  • 本文详细介绍如何使用CSS自定义HTML5视频播放器的样式,涵盖常见属性及跨浏览器兼容性问题。发布时间:2020-09-14 14:46:29;来源:亿速云;阅读量:58;作者:小新。 ... [详细]
  • 本文详细介绍了如何在预装Ubuntu系统的笔记本电脑上安装Windows 7。针对没有光驱的情况,提供了通过USB安装的具体方法,并解决了分区、驱动器无法识别等问题。 ... [详细]
  • Appium + Java 自动化测试中处理页面空白区域点击问题
    在进行移动应用自动化测试时,有时会遇到某些页面没有返回按钮,只能通过点击空白区域返回的情况。本文将探讨如何在Appium + Java环境中有效解决此类问题,并提供详细的解决方案。 ... [详细]
  • 如何清除Chrome浏览器地址栏的特定历史记录
    在使用Chrome浏览器时,你可能会发现地址栏保存了大量浏览记录。有时你可能希望删除某些特定的历史记录而不影响其他数据。本文将详细介绍如何单独删除地址栏中的特定记录以及批量清除所有历史记录的方法。 ... [详细]
  • Coursera ML 机器学习
    2019独角兽企业重金招聘Python工程师标准线性回归算法计算过程CostFunction梯度下降算法多变量回归![选择特征](https:static.oschina.n ... [详细]
  • 利用Selenium与ChromeDriver实现豆瓣网页全屏截图
    本文介绍了一种使用Selenium和ChromeDriver结合Python代码,轻松实现对豆瓣网站进行完整页面截图的方法。该方法不仅简单易行,而且解决了新版Selenium不再支持PhantomJS的问题。 ... [详细]
  • 本文介绍如何使用PHP在WordPress中根据分类类别ID或名称获取所有相关文章,提供详细的方法和代码示例。 ... [详细]
author-avatar
baisedehuiyi11396
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有