在PHP网站开发中,存储数据通常有两种方式,一种以文本文件方式存储,比如txt文件,一种是以数据库方式存储,比如Mysql,相对于数据库存储,文件存储并没有什么优势,但是文件读写操作在基本的PHP开发中还是时有使用。

  将数据写入文件的操作主要涉及三个步骤及部分文件操作函数如下:

  1、打开文件(文件操作函数:fopen)

  2、写入文件(文件操作函数:fwrite等)

  3、关闭文件(文件操作函数:fclose)

  下面通过文件读写操作代码实例教程来讲解。

  基本的PHP文件写入操作函数fopen、fwrite、fclose应用教程

<?
@$fp = fopen("leapsoulcn.txt","w");
if(!$fp){
echo "system error";
exit();
}else {
$fileData = "domain"."\t"."ok.lanou3g.com"."\n";
$fileData = $fileData."description"."\t"."PHP网站,面向PHP初学者的
PHP教程
网。"."\n";
$fileData = $fileData."title"."\t"."本文主要讲述PHP文件读写操作中最基本的文件写入教程。";
fwrite($fp,$fileData);
fclose($fp);
}
?>

  注释:在这段文件读写操作实例代码中,主要功能是在文件写入两行文字。

  知识点:

  1、使用fopen函数打开文件,在应用fopen函数准备打开文件时,你首先需要明确:

  打开文件干什么?是读文件中的数据呢,还是将数据写入文件,亦或者读写文件?

  另外你需要考虑如果文件中已经存在相关数据,你是覆盖原有文件中的数据呢,还是仅仅将新数据添加至文件末尾。

  这些问题涉及到PHP文件读写操作中的fopen函数中的文件模式的应用,fopen函数原型如下:

  fopen(filename,mode,include_path,context)

  调用文件操作函数fopen()时,通常需要传递两个或三个参数。

  filename:规定要打开的文件或URL。可以指定文件的绝对路径,Windows一般为C:\,Unix为/,通过URL,你也可以打开远程文件。在这里写入的文件与PHP文件写入代码文件我放在同一个目录。

  mode:规定要求到该文件/流的访问类型。即打开文件的模式。

  include_path:可选项。如果需要在include_path中搜索文件的话,可以将该参数设为1或TRUE。

  常用的fopen的文件操作模式说明:

  “r” - 以只读方式打开文件,从文件头开始读。

  “r+” - 以读写方式打开文件。

  w” - 以写入方式打开文件,从文件头开始写。如果文件不存在则尝试创建,如果文件存在,则先删除文件中的内容。

  w+” - 以读写方式打开文件,从文件头开始读写。如果文件不存在则尝试创建,如果文件存在,则先删除文件中的内容。

  a” - 以写入方式打开,从文件末尾开始追加写。如果文件不存在则尝试创建。

  a+” - 以读写方式打开,从文件末尾开始追加写写或者读。如果文件不存在则尝试创建。

  注意:在进行文件读写操作时,你一定要确保打开的文件具有相应的读写权限,否则fopen会报错。你可以使用@来抑制产生的错误,然后合理处理错误。

  2、在使用文件操作函数fopen打开文件后,需要通过对变量赋值,然后写到$fp指向的文件指针中去,在上述PHP文件写入操作教程实例中,我使用的是一行一行存储,即换行储存,主要通过\n作为换行分隔符。

  fwrite文件写入函数原型如下:

  代码如下:

  fwrite(fp,string,length)

  在这里你也可以使用文件写入函数fputs,其是fwrite的别名函数,功能与用法与fwrite一样。

  在文件写入函数fwrite中length是可选项,主要用来设定写入文件的最大字符数,如果设定了这个参数,fwrite会按设定的length,在指定文件中写入规定长度的字符。fwrite()返回写入文件的字符数,出现错误时则返回false。

  在文件写入操作完成后,需要关闭文件句柄,否则会占用系统资源等。可以使用fclose($fp)函数来完成这件事。文件关闭成功则返回true,否则返回false。

  至此文件写入操作就完成了。

  下面来介绍读取文件的几种方式:

  1. fread()

<?php
$file_path = "test.txt";
if(file_exists($file_path)){
$fp = fopen($file_path,"r");
$str = fread($fp,filesize($file_path));//指定读取大小,这里把整个文件内容读取出来
echo $str = str_replace("\r\n","<br />",$str);
}
?>

2.

<?php
$file_path = "test.txt";
if(file_exists($file_path)){
$str = file_get_contents($file_path);//将整个文件内容读入到一个字符串中
$str = str_replace("\r\n","<br />",$str);
echo $str;
}
?>

3.

<?php
$file_path = "test.txt";
if(file_exists($file_path)){
$fp = fopen($file_path,"r");
$str = "";
$buffer = 1024;//每次读取 1024 字节
while(!feof($fp)){//循环读取,直至读取完整个文件
$str .= fread($fp,$buffer);
}
$str = str_replace("\r\n","<br />",$str);
echo $str;
}
?>

4.

<?php
$file_path = "test.txt";
if(file_exists($file_path)){
$file_arr = file($file_path);
for($i=0;$i<count($file_arr);$i++){//逐行读取文件内容
echo $file_arr[$i]."<br />";
}
/*
foreach($file_arr as $value){
echo $value."<br />";
}*/
}
?>

5.

<?php
$file_path = "test.txt";
if(file_exists($file_path)){
$fp = fopen($file_path,"r");
$str ="";
while(!feof($fp)){
$str .= fgets($fp);//逐行读取。如果fgets不写length参数,默认是读取1k。
}
$str = str_replace("\r\n","<br />",$str);
echo $str;
}
?>

  以上就是PHP读取文件方式汇总与操作代码详解的详细内容,更多请关注鸥课学院其它相关文章!