为了账号安全,请及时绑定邮箱和手机立即绑定

PHP 文件打开/读取/关闭

标签:
PHP

我们在做项目时,打开,读取,关闭文件是非常频繁的工作,基本上很多项目,应用,软件都会有这样的操作。

今天,我们都会学习到这些文件操作。

PHP - fopen():打开文件

readfile()可以打开文件,今天我们提供一个比readfile()更好的函数 - fopen。 此函数为您提供比 readfile() 函数更多的选项。

fopen() 函数打开文件或者 URL。如果打开失败,本函数返回 FALSE。

语法:

fopen(filename,mode,include_path,context)

webp

mode 参数的可选的值

"r"        只读方式打开,将文件指针指向文件头。

"r+"    读写方式打开,将文件指针指向文件头。

"w"    写入方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。

"w+"    读写方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。

"a"    写入方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。

"a+"    读写方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。

"x"    创建并以写入方式打开,将文件指针指向文件头。如果文件已存在,则 fopen() 调用失败并返回 FALSE,并生成一条 E_WARNING 级别的错误信息。如果文件不存在则尝试创建之。

"x+" 创建并以读写方式打开,将文件指针指向文件头。如果文件已存在,则 fopen() 调用失败并返回 FALSE,并生成一条 E_WARNING 级别的错误信息。如果文件不存在则尝试创建之。

说明

fopen() 将 filename 指定的名字资源绑定到一个流上。如果 filename 是 "scheme://..." 的格式,则被当成一个 URL,PHP 将搜索协议处理器(也被称为封装协议)来处理此模式。如果该协议尚未注册封装协议,PHP 将发出一条消息来帮助检查脚本中潜在的问题并将 filename 当成一个普通的文件名继续执行下去。

如果 PHP 认为 filename 指定的是一个本地文件,将尝试在该文件上打开一个流。该文件必须是 PHP 可以访问的,因此需要确认文件访问权限允许该访问。如果激活了安全模式或者 open_basedir 则会应用进一步的限制。

如果 PHP 认为 filename 指定的是一个已注册的协议,而该协议被注册为一个网络 URL,PHP 将检查并确认 allow_url_fopen 已被激活。如果关闭了,PHP 将发出一个警告,而 fopen 的调用则失败。

示例:打开test.txt文件,并读取内容。

$testfile = fopen("text.txt", "r") or die("文件无法打开!");    //打开文件

echo fread($testfile,filesize("text.txt"));                                //读取文件内容

fclose($testfile );    //关闭文件

结果:

webp

PHP  fopen()

PHP 读取文件 - fread():fread()函数读取打开的文件,的第一个参数包含待读取文件的文件名,第二个参数规定待读取的最大字节数。

语法:

fread(file,length)

还是以test.txt文件为例子

echo fread($testfile,filesize("test.txt"));

PHP 关闭文件 - fclose():用完文件后把它们全部关闭是一个良好的编程习惯,因为这样会减少服务器资源。

$testfile = fopen("test.txt", "r");

fclose($testfile );    //关闭文件

PHP 读取单行文件 - fgets():fgets() 函数用于从文件读取单行

webp

结果:

webp

PHP fgets


PHP 检查 end-of-file - feof():feof() 函数检查是否已到达 "end-of-file" (EOF)。

feof() 对于遍历未知长度的数据很有用。

webp

结果:

webp

PHP   feof()

PHP 读取单字符 - fgetc(): fgetc() 函数用于从文件中读取单个字符。

示例:

webp

webp

PHP fgetc



作者:林路同
链接:https://www.jianshu.com/p/a8a6b54a5b2c


点击查看更多内容
1人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消