资源 (resource) 这个词常常与可以发起输入或输出流的实体联系起来. 标准输入或输出文件和网络套接字都是资源的例子. 因此, 你会经常看到本节所介绍的很多函数都是在资源处理的上下文中讨论的, 而不是文件处理, 这本身是因为所有这些函数都能够与前面所述的资源结合使用, 但是, 由于这些函数与文件结合使用是应用中最常见的.
将数据写入一个文件, 有 3 个步骤:
1. 打开文件, 如果文件不存在, 需要先创建
2. 将数据写入这个文件.
3. 关闭这个文件
同样, 从一个文件中读出数据, 也有 3 个步骤:
1. 打开这个文件, 如果这个文件不能打开, 就应该意识到这一点并且正确地退出.
2. 从文件中读出数据
3. 关闭这个文件.
打开文件
要在 PHP 中打开一个文件, 可以使用 fopn() 函数, 当打开一个文件的时候, 还需要指定如何使用它, 也就是, 文件的模式
选择文件模式: 当打开一个文件的时候, 有 3 中选择:
1. 打开文件为只读, 只写或者读和写.
2. 如果要写一个文件, 你可能希望覆盖所有已有的文件内容, 或者仅仅将新数据追加到未文件末尾. 如果该文件已经存在, 也可以终止程序的执行而不是覆盖该文件.
3. 如果希望在一个区分了二进制方式和纯文本方式的系统上写一个文件, 还需要指定采用的方式.
函数 fopen() 支持以上 3 中方式的组合.
$fp=fopen(文件路径, 文件模式,[是否在 include_path 中搜索一个文件][允许文件名以协议
名称开始 (如 http://)])
fopen 函数的文件模式
模式 模式名称 意义
r 只读 文件指针置于文件开头
r+ 读写 文件指针置于文件开头
w 只写 在写入前, 删除文件内容, 将指针返回
到文件开头, 如果文件不存在, 则创建
w+ 读写 在读取或写入之前, 删除文件内容, 将指针
返回到文件开头, 不存在, 则创建
a 只写 文件指针置于文件末尾, 如果不存在, 则创建. 此
模式称为追加 (append)
a+ 读写 文件指针置于文件末尾. 如果不存在, 则创建.
此过程称为追加到文件
b 二进制
t 文本 用于与其他模式集合, 这个模式只是 Windows 系统下
一个选项, 它不是推荐选项, 除非你曾经在代码中
使用过.
如果 fopen 函数调用失败, 函数返回 false, 可以用一种用户友好的方式来处理, 这个错误, 可以通过抑制 PHP 的错误信息并且根据自己的方式给出错误信息.
$fl= fopen('file.txt','r+'); // 在我的 E 盘创建了一个 file.txt 的文件
写文件
在 PHP 中写文件相对比较简单. 可以使用 fwrite() 或 fputs() 函数, 我们可以使用如下方式调用 fwrite
- ();
- fwrite($fp,$outstring,strlen($outstring));
第一个参数: 打开的文件
第二个参数: 要写入的字符串文本
第三个参数: 最大字符串
fwrite() 函数的一个新的替换函数是 file_put_cotents();
- <?PHP
- $fl= fopen('file.txt','r+'); // 在我的 E 盘创建了一个 file.txt 的文件
- $str='您好, 看到请及时联系我.';
- fwrite($fl,$str,strlen($str)); // 在这个文件中写入文字
- ?>
- file_put_contents('file2.txt','中国您好'); // 这个只适用写入一条数据
读出文件
$fp=fopen('file.txt','r');
fgetc(): 读出第一个字符, 并将指针移到下一个字符串
fgets(); 读出一行文字, 可以指定一行显示的长度
fgetss(): 从文件指针中读取一行并过滤掉 htmlI 标记
fread(): 读取定量的字符.
fpassthru(): 输出文件只在乎你处的所有剩余数据
file(): 将整个文件读取数组中, 以行分组
readfile(): 读入一个文件并写入到输出缓冲
file_get_contents(): 将整个文件读入一个字符串
来源: http://www.bubuko.com/infodetail-3102406.html