php的fopen函数打开文件详解以及如何打开中文名文件
2018-01-04 16:44
791 查看
本篇主要学习php的fopen()函数。此函数一般用于打开文件,和file_get_contents()函数的作用差不多。
2、fopen(filename,mode,include_path,context)
常用的参数主要是filename和mode。这里的filename代表我们要打开的文件路径或者url的链接。mode是规定要求到该文件/流的访问类型。
具体可参考手册:http://www.w3school.com.cn/php/func_filesystem_fopen.asp
3、常见例子:
1)在E盘下新建文件,text.txt
2)使用下面的代码打开
执行这段代码之后,浏览器上就能输出我们写在text.txt文件中的内容了。
1)feof() 函数检测是否已到达文件末尾 (eof)。
如果文件指针到了 EOF 或者出错时则返回 TRUE,否则返回一个错误(包括 socket 超时),其它情况则返回 FALSE。我们上面的代码,在获取到$file资源之后,循环判断是否到了文件结尾,没到结尾的话,就继续执行下面的代码。
2)注意
提示:feof() 函数对遍历长度未知的数据很有用。
注意:如果服务器没有关闭由 fsockopen() 所打开的连接,feof() 会一直等待直到超时而返回 TRUE。默认的超时限制是 60 秒,可以使用 stream_set_timeout() 来改变这个值。
注意:如果传递的文件指针无效可能会陷入无限循环中,因为 EOF 不会返回 TRUE。
2、fgets()函数
1)fgets() 函数从文件指针中读取一行。
3、fclose()
1) fclose() 函数关闭一个打开文件。
fclose() 函数关闭该指针指向的文件。如果成功则返回 true,否则返回 false。文件指针必须有效,并且是通过 fopen() 或 fsockopen() 成功打开的。
报错:
也就是说,不能直接用fopen()来打开中文名的文件,这里,我们需要进行一些处理。
2、修改中文名的编码
2、在打开比较大的文件的时候,使用file_get_contents()函数会加大内存的占用率,这是非常不合适的。因此这种情况下,更建议使用fopen()函数。
3、关于为什么每次使用fopen()函数,后面都要用fclose()函数关闭文件的问题。正常来说php的资源会在脚本结束的时候全部释放掉,因此普遍的情况都可以省略fclose。不过如果你fopen了一个很大的文件,早点fclose会比较节省资源。也算是良好编码习惯的一种。
end
一、fopen()函数
1、fopen() 函数打开文件或者 URL。如果打开失败,本函数返回 FALSE。打开成功的话,会返回一个资源。2、fopen(filename,mode,include_path,context)
常用的参数主要是filename和mode。这里的filename代表我们要打开的文件路径或者url的链接。mode是规定要求到该文件/流的访问类型。
具体可参考手册:http://www.w3school.com.cn/php/func_filesystem_fopen.asp
3、常见例子:
1)在E盘下新建文件,text.txt
2)使用下面的代码打开
$file = fopen("E:/text.txt","r"); if ($file){ //接着采用while循环(后面语言结构语句中的循环结构会详细介绍)一行行地读取文件,然后输出每行的文字 while (!feof($file)) { //判断是否到最后一行 $line = fgets($file); //读取一行文本 echo $line; //输出一行文本 echo "<br />"; //换行 } } fclose($file);//关闭文件
执行这段代码之后,浏览器上就能输出我们写在text.txt文件中的内容了。
二、feof(),fgets(),fclose()函数讲解
1、feof()函数1)feof() 函数检测是否已到达文件末尾 (eof)。
如果文件指针到了 EOF 或者出错时则返回 TRUE,否则返回一个错误(包括 socket 超时),其它情况则返回 FALSE。我们上面的代码,在获取到$file资源之后,循环判断是否到了文件结尾,没到结尾的话,就继续执行下面的代码。
2)注意
提示:feof() 函数对遍历长度未知的数据很有用。
注意:如果服务器没有关闭由 fsockopen() 所打开的连接,feof() 会一直等待直到超时而返回 TRUE。默认的超时限制是 60 秒,可以使用 stream_set_timeout() 来改变这个值。
注意:如果传递的文件指针无效可能会陷入无限循环中,因为 EOF 不会返回 TRUE。
2、fgets()函数
1)fgets() 函数从文件指针中读取一行。
3、fclose()
1) fclose() 函数关闭一个打开文件。
fclose() 函数关闭该指针指向的文件。如果成功则返回 true,否则返回 false。文件指针必须有效,并且是通过 fopen() 或 fsockopen() 成功打开的。
三、使用fopen()打开中文名的文件
1、当我把text.txt改成“哈哈.txt”,指向上面的代码。报错:
也就是说,不能直接用fopen()来打开中文名的文件,这里,我们需要进行一些处理。
2、修改中文名的编码
//使用这行代码即可解决,可以正常的打开文件 $file = fopen ( iconv ( 'UTF-8', 'GBK', 'E:/哈哈.txt' ), 'r' );
四、fopen()的一些使用问题
1、fopen()函数的使用比起file_get_contents()函数麻烦一些。在大多数情况下,还是使用file_get_contents()函数要方便一些。file_get_contents()的使用方法:http://blog.csdn.net/LJFPHP/article/details/785529612、在打开比较大的文件的时候,使用file_get_contents()函数会加大内存的占用率,这是非常不合适的。因此这种情况下,更建议使用fopen()函数。
3、关于为什么每次使用fopen()函数,后面都要用fclose()函数关闭文件的问题。正常来说php的资源会在脚本结束的时候全部释放掉,因此普遍的情况都可以省略fclose。不过如果你fopen了一个很大的文件,早点fclose会比较节省资源。也算是良好编码习惯的一种。
end
相关文章推荐
- php中fopen函数用法详解(打开文件)
- php 使用fopen函数创建、打开文件详解及实例代码
- php中fopen() 函数用打开文件模式说明
- PHP fopen()函数 打开文件
- PHP使用fopen()函数打开文件提示权限不够问题
- php中的函数运用-高考倒计时,打开目录文件,加密和解密以及网站敏感词过滤
- php 中关于 fopen 如何打开或创建中文文件的使用说明
- 解析php中的fopen()函数用打开文件模式说明
- PHP语言 fopen()函数不能打开文件的问题
- php中file文件操作函数readfile fread fgets fgetc以及不需要加fopen的file_get_contents file_put_contents file()
- PHP下使用fopen函数打开文件时的几点注意
- php中file文件操作函数readfile fread fgets fgetc以及不需要加fopen的file_get_contents file_put_contents file()
- php 在linux 用fopen() 函数打开,file_get_contents(),fread()函数 读取 另外一台服务器映射过来的文件 总是返回false,null的情况。
- 解析php中的fopen()函数用打开文件模式说明
- 文件编程:库函数fopen打开
- fopen打开文件的模式详解
- 如何解决Visual c++不能打开文件以及工程不能添加文件的问题
- c语言中所有文件操作函数详解fopen、fwrite、fread、fgetc、fputc、fscanf、fprintf、ftell、fseek等函数
- php文件怎么打开 如何执行php文件