PHP文件读写操作相关函数总结

一、fwrite()写入文件

将程序中的数据保存到文件中比较容易,使用fwrite()函数就可以将字符串内容写入文件中。在文件中中通过字符序列\n表示换行符,表示文件中一行的末尾。当需要一次输入或输出一行信息时,请记住这一点。不同的操作系统具有不同的结束符号,基于UNIX的系统使用“\n”作为行结束字符,基于Windows系统使用“\r\n”作为行结束字符,基于Macintosh的系统使用“\r”作为行结束字符。当要写入一个文本文件并想插入一个新行时,需要使用相应操作系统的行结束符号。函数fwrite()的原型如下所示:

代码如下:

int fwrite(resource handle,string string[,int length])           //写入文件

第一个参数需要提供fopen()函数打开的文件资源,该函数将第二个参数提供的字符串内容输出到由第一个参数指定的资源中。如果给出了第三个可选参数lenth,fwrite()将在写入了length个字符时会停止。否则将一直写入,直到到达内容结尾时才停止。如果写入的内容少于length个字节,该函数也会在写完全部内容后停止。函数fwrite()执行完成以后会返回写入的字符数,出现错误时则返回FALSE。下面的代码是写入文件的一个示例。

代码如下:

<?php
//声明一个变量用来保存文件名
$fileName = "data.txt";
//使用fopen()函数以只写的模式打开文件,如果不存在则创建它,打开失败则通过程序
$handle = fopen($fileName,'w') or die('打开<b>'.$fileName.'</br>文件失败!!');
//循环10次写入10行数据到文件中
for($row=0;$row<10;$row++){
fwrite($handle, $row.":www.lampbrother.net\n");
}
fclose($handle);
?>

该程序执行后,如果当前目录下存在data.txt文件,则清空该文件并写入10行数据。如果不存在data.txt文件,则会创建该文件并将10行数据写入。另外写入文件还可以使用fputs()函数,该函数是fwrite()函数的别名函数如果需要快速写入文件,可以使用file_put_contents()函数,和依次调用fopen(),fwrite()以及fclose()函数的功能一样。该函数的使用代码如下所示:

代码如下:

<?php
//声明一个变量用来保存文件名
$fileName = "data.txt";
//声明一个变量用来保存被写入文件中的数据
$data = "共10行数据\n";
for($row=0;$row<10;$row++){
//将10数据都存放到一个字符串变量中
$data .= $row.":www.lampbrother.net\n";
}
//一次将所有数据写入到指定的文件中
file_put_contents($fileName, $data);
?>

该函数可以将数据直接写入到指定的文件中。如果同时调用多次时,并向同一个文件中写入数据,则文件中只保存了最后一次调用该函数写入的数据。因为在每次掉哟哦那个时都会重新打开文件并将文件中原有的数据清空,所以不能像第一个程序那样连续写入多行数据。

二、读取文件内容

在PHP中提供了多个从文件中读取内容的标准函数,可以根据它们的功能特性在程序中选择哪个函数使用。这些函数功能及其描述如下表所示。

在读取文件时,不仅要注意行结束符号“\n”,程序也需要一种标准的方式来识别何时到达文件的末尾,这个标准通常成为EOF(End Of File)字符。EOF是非常重要的概念,几乎每种主流的编程语言中都提供了相应的内置函数,来分析是否到达了文件EOF。在PHP中,使用feof()函数。该函数接受一个打开的文件资源,判断一个文件指针是否位于文件的结束处,如果在文件末尾处,则返回TRUE。

①函数fread()

该函数用来在打开的文件中读取指定长度的字符串。也可以安全用于二进制文件,在区分二进制文件和文本文件的系统上(如Windows)打开文件时,fopen()函数的mode参数要加上'b'。函数fread()的原型如下所示:

代码如下:

string fread(int handle,int length)         //读取打开的文件

该函数从文件指针资源handle中读取最多length个字节。在读取完length个字节数,或到达EOF时,或(对于网络流)当一个包可用时都会停止读取文件,就看先碰到哪种情况了。该函数返回读取的内容字符串,如果失败则返回FALSE。函数的使用代码如下所示:

代码如下:

<?php
//从文件中读取指定字节数的内容存入到一个变量中
$filename = "data.txt";
$handle = fopen($filename, 'r') or die("文件打开失败 ");
$contents = fread($handle, 100);         //从文件中读取100个字节
fclose($handle);         //关闭文件资源
echo $contents;          //将从文件中读取的内容输出
 
//从文件中读取全部内容到一个变量中,每次读取一部分,循环读取
$filename = "c:\\files\\somepic.gif";
$handle = fopen($filename, 'rb') or die("文件打开失败");     //以只读的方式,模式加了‘b'
$contents = "";
while(!feof($handle)){          //使用feof()判断文件结尾
$contents .=fread($handle, 1024);        //每次读取1024个字节
}
fclose($handle);       //关闭文件资源
echo $contents;         //将从文件中读取的全部内容输出
 
//另一种从文件中读取全部内容的方法
$filename = "data.txt";
$handle = fopen($filename, "r")or die("文件打开失败");
$contents = fread($handle, filesize($filename));        //使用fielsize()函数一起读出
fclose($handle);
echo $contents;
?>

如果你只是想将一个文件的内容读入到一个字符串中,可以用file_get_contents()函数,它的性能比上面的代码好得多。file_get_contents()函数是用来将文件的内容读入到一个字符串中的首选方法,如果操作系统支持,还会使用内存映射技术来增强性能。该函数的使用代码如下所示:

代码如下:

<?php
echo file_get_contents("data.txt"); //读取文本文件中的内容并输出
echo file_get_contents("c:\\files\\somepic.gif"); //读取二进制文件中的内容并输出
?>

②函数fgets()、fgetc()

fgets()该函数一次至多从打开的文件资源中读取一行内容。函数fgets()的原型如下所示:

代码如下:

string fgets(int handle[,int length])                             //从打开的文件中返回一行

第一个参数提供使用fopen()函数打开的资源。如果提供了第二个可选参数length,该函数返回length-1个字节。或者返回遇到换行或EOF之前读取的所有内容。如果忽略可选的length参数,默认为1024个字符。在大多数情况下,这意味着fgets()函数将读取到1024个字符前遇到换行符号,因此每次成功调用都会返回下一行。如果读取失败则返回FALSE。该函数的使用代码如下所示:

代码如下:

<?php
$handle = fopen("data.txt", "r") or die("文件打开失败 "); //以只读模式打开文件
while(!feof($handle)){
$buffer = fgets($handle,4096); //一次读取一行内容
echo $buffer."<br>"; //输出每一个航
}
fclose($handle);
?>

函数fgetc()在打开的文件资源中只读取当前指针位置处的一个字符。如果遇到文件结束标志EOF,则返回FALSE值。该函数的使用代码如下所示:

代码如下:

<?php
$fp = fopen('data.txt','r') or die("文件打开失败");
while(false !==($char = fgetc($fp))){
echo $char."<br>";
}
?>

③函数file()

该函数非常有用,与file_get_contents()类似,不需要使用fopen()函数打开文件,不同的是file()函数可以把整个文件读入到一个数组中。数组中的每个元素对应文件中相应的行,各元素由换行符分割,同时换行符仍附加在每个元素的末尾。这样,就可以使用数组的相关函数对文件内容进行处理。该函数的使用代码如下所示:

代码如下:

<?php
//将文件test.txt中的内容读入到一个数组中,并输出
print_r(file(test.txt));
?>

④函数readfile()

该函数可以读取指定的整个文件,立即输出到输出缓冲区,并返回读取的字节数。该函数也不需要使用fopen()函数打开文件。在下面的示例中,轻松地将文件内容输出到浏览器。代码如下所示:

代码如下:

<?php
//直接将文件data.txt中的数据读出并输出到浏览器
readfile("data.txt");
?>

(0)

相关推荐

  • PHP操作文件的一些基本函数使用示例

    在对文件进行操作时,不仅可以对文件中的数据进行操作,还可以对文件本身进行操作.例如复制文件.删除文件.截取文件及为文件重命名等操作.在PHP中已经提供了这些文件处理方式的标准函数,使用也非常容易,如下表所示: 在表中,四个函数如果执行成功,则都会返回TRUE,失败则返回FALSE.它们的使用代码如下所示: 复制代码 代码如下: <?php //复制文件示例 if(copy('./file1.txt','../data/file2.txt')){ echo "文件复制成功!"; }

  • PHP常用文件操作函数和简单实例分析

    PHP最常用的文件操作就是读取和写入了,今天就主要讲解一下读取和写入函数,并且做一个页面访问的计数功能,来记录一个页面的访问量. fopen():PHP中没有文件创建函数,创建和打开文件都用fopen()函数,函数的形式为:resource fopen( string filename, string mode ) 参数filename为打开或创建并打开的文件名,参数mode为打开的模式,具体模式如下: fread():PHP中可用于读取文件,函数的形式为:string fread( resou

  • PHP打开和关闭文件操作函数总结

    在处理文件内容之前,通常需要建立与文件资源的连接,即打开文件.同样,结束该资源的操作后,应当关闭连接资源.所谓打开文件,实际是建立文件的各种有关信息,并使文件指针指向该文件,就可以发起输入或输出的实体联系在一起,也就禁止再对该文件进行操作.在PHP中可以通过标准函数fopen()建立与文件资源的连接,使用fclose()函数关闭通过fopen()函数打开的文件资源. ①函数fopen() 该函数用来打开一个文件,并在打开一个文件时,还需要指定如果使用它.也就是以哪种文件模式打开文件资源.服务器上

  • php文件夹与文件目录操作函数介绍

    php文件夹操作函数 string basename ( string path [, string suffix] )给出一个包含有指向一个文件的全路径的字符串,本函数返回基本的文件名.如果文件名是以 suffix 结束的,那这一部分也会被去掉.在 Windows 中,斜线(/)和反斜线()都可以用作目录分隔符.在其它环境下是斜线(/). string dirname ( string path ) 给出一个包含有指向一个文件的全路径的字符串,本函数返回去掉文件名后的目录名.在 Windows

  • php常用文件操作函数汇总

    本文实例分析了php常用文件操作函数.分享给大家供大家参考.具体方法如下: 这里搜集了大量的php中文件操作函数如有文件打开,创建,删除,更变组,读取写文件,文件上传以及打开远程文件,把内容写入文件等实例. 复制代码 代码如下: $fp=fopen("test.txt","r"); //以只读方式打开文件,将文件指针指向文件头 $fp=fopen("test.txt","r+"); //以读写方式打开文件,将文件指针指向文件头

  • PHP文件读写操作相关函数总结

    一.fwrite()写入文件 将程序中的数据保存到文件中比较容易,使用fwrite()函数就可以将字符串内容写入文件中.在文件中中通过字符序列\n表示换行符,表示文件中一行的末尾.当需要一次输入或输出一行信息时,请记住这一点.不同的操作系统具有不同的结束符号,基于UNIX的系统使用"\n"作为行结束字符,基于Windows系统使用"\r\n"作为行结束字符,基于Macintosh的系统使用"\r"作为行结束字符.当要写入一个文本文件并想插入一个新

  • python文件读写操作与linux shell变量命令交互执行的方法

    本文实例讲述了python文件读写操作与linux shell变量命令交互执行的方法.分享给大家供大家参考.具体如下: python对文件的读写还是挺方便的,与linux shell的交互变量需要转换一下才能用,这比较头疼. 代码如下: 复制代码 代码如下: #coding=utf-8 #!/usr/bin/python import os import time #python执行linux命令 os.system(':>./aa.py') #人机交互输入 S = raw_input("

  • IOS 文件读写操作详解及简单实例

    iPhone 文件读写操作 1,写文件操作 - (IBAction)btnWrite:(id)sender { //创建文件管理器 NSFileManager *fileManager = [NSFileManager defaultManager]; //获取路径 //参数 要获取的哪种路径 NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSSt

  • Android编程之文件读写操作与技巧总结【经典收藏】

    本文实例总结了Android文件读写操作.分享给大家供大家参考,具体如下: 在Android中的文件放在不同位置,它们的读取方式也有一些不同. 本文对android中对资源文件的读取.数据区文件的读取.SD卡文件的读取及RandomAccessFile的方式和方法进行了整理.供参考. 一.资源文件的读取: 1) 从resource的raw中读取文件数据: String res = ""; try{ //得到资源中的Raw数据流 InputStream in = getResources

  • PHP文件读写操作之文件写入代码

    在PHP网站开发中,存储数据通常有两种方式,一种以文本文件方式存储,比如txt文件,一种是以数据库方式存储,比如Mysql,相对于数据库存储,文件存储并没有什么优势,但是文件读写操作在基本的PHP开发中还是时有使用,今天和大家分享如何利用PHP技术实现文件读写之文件写入操作教程,也算是对PHP文件读写操作的入门学习. 将数据写入文件的操作主要涉及三个步骤及部分文件操作函数如下: 1.打开文件(文件操作函数:fopen) 2.写入文件(文件操作函数:fwrite等) 3.关闭文件(文件操作函数:f

  • PHP文件读写操作之文件读取方法详解

    PHP文件读取操作相对于文件写入操作涉及更多的PHP文件操作函数,在代码实例中会详细介绍这些函数. 读取文本文件中存储数据的方式主要涉及的三个步骤及部分文件操作函数如下: 1.打开文件(文件操作函数:fopen) 2.文件数据读取(文件操作函数:fgets.file.readfile.feof等) 3.关闭文件(文件操作函数:fclose) 下面仍然以PHP文件读写操作代码实例讲解文件读取方法的具体应用,在实例中,通过调用不同的PHP文件读取操作函数读取文本文件中的数据,你可以加深PHP文件读取

  • Android编程之在SD卡上进行文件读写操作实例详解

    本文实例讲述了Android编程之在SD卡上进行文件读写操作的方法.分享给大家供大家参考,具体如下: 很多知识只有真正理解掌握之后才能运用自如,举一反三.对Java中的文件操作和android系统SD卡里面的文件操作,你觉得有区别吗,显然没有本质区别,如果勉强说有,那也是不足为道滴,但我们在实际运用中却要注意如下几点,不然问题会缠上你. 1.首先想要对android系统SD卡里文件操作需要添加使用权限: android系统是不会让外来程序随意动自己内存的,如果没有许可证,不好意思,不准你动我地盘

  • 详解C++文件读写操作

    在看C++编程思想中,每个练习基本都是使用ofstream,ifstream,fstream,以前粗略知道其用法和含义,在看了几位大牛的博文后,进行整理和总结: 这里主要是讨论fstream的内容: #include <fstream> ofstream //文件写操作 内存写入存储设备 ifstream //文件读操作,存储设备读区到内存中 fstream //读写操作,对打开的文件可进行读写操作 1.打开文件 在fstream类中,成员函数open()实现打开文件的操作,从而将数据流和文件

  • Python3之文件读写操作的实例讲解

    文件操作的步骤: 打开文件 -> 操作文件 -> 关闭文件 切记:最后要关闭文件(否则可能会有意想不到的结果) 打开文件 文件句柄 = open('文件路径', '模式') 指定文件编码 文件句柄= open('文件路径','模式',encoding='utf-8') 为了防止忘记关闭文件,可以使用上下文管理器来打开文件 with open('文件路径','模式') as 文件句柄: 打开文件的模式有: r,只读模式(默认). w,只写模式.[不可读:不存在则创建:存在则删除内容:] a,追加

  • Scala的文件读写操作与正则表达式

    目录 在本篇文章中你将会学习并了解常用的文件处理任务,例如读取文件的一行文本,本博客的要点包含: 1.Source.fromFile(...).getLines.toArray 输出文件所有行 2.Source.fromFile(...).mkString 以字符串形式输出文件内容 3.将字符串转换为数字,可以使用toInt或toDouble方法 4.使用java的PrintWriter写入文本文件 5."正则".r是一个Regex对象 6.若你的正则表达式包含反斜杠或者引号,请用&q

随机推荐