本篇主要学习php的fopen()函数。此函数一般用于打开文件,和file_get_contents()函数的作用差不多。

一、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/78552961

2、在打开比较大的文件的时候,使用file_get_contents()函数会加大内存的占用率,这是非常不合适的。因此这种情况下,更建议使用fopen()函数。

3、关于为什么每次使用fopen()函数,后面都要用fclose()函数关闭文件的问题。正常来说php的资源会在脚本结束的时候全部释放掉,因此普遍的情况都可以省略fclose。不过如果你fopen了一个很大的文件,早点fclose会比较节省资源。也算是良好编码习惯的一种。

end

php的fopen函数打开文件详解以及如何打开中文名文件相关推荐

  1. 计算机科学类专升本复习之“C语言fopen函数的用法”详解(初稿)

    C语言fopen函数的用法,C语言打开文件详解 在C语言中,"操作文件" 之前 必须 先"打开文件"; 所谓"打开文件",就是让 " ...

  2. XML格式文件详解及Java解析XML文件内容方法

    XML格式文件详解 1.概述 XML,即可扩展标记语言,XML是互联网数据传输的重要工具,它可以跨越互联网任何的平台,不受编程语言和操作系统的限制,可以说它是一个拥有互联网最高级别通行证的数据携带者. ...

  3. fopen函数mode参数详解

    函数简介: 函数功能:fopen能打开磁盘内的文件,使程序能对文件进行读写. 函数原型:FILE *fopen(const char *path, const char * mode); 传入参数说明 ...

  4. 痞子衡嵌入式:ARM Cortex-M开发文件详解(3)- 工程文件(.ewp)

    出处:https://www.cnblogs.com/henjay724/p/8232585.html 大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家讲的是嵌入式开发里的project文件. ...

  5. 机械师怎么打开计算机管理,详解机械师win10打开fn热键功能教程

    不同的电脑品牌对于的fn热键的功能会有一定的差异,熟悉fn热键可以让我们更好的操作系统.有使用机械师电脑的小伙伴想了解机械师fn热键功能有哪些,今天小编就给大家分享些机械师win10打开fn热键功能教 ...

  6. [学习笔记 ]IAR的链接配置.icf文件详解——RT1052芯片的链接文件

    本文主要通过以下几个部分解释IAR中的链接配置icf文件: 1.参考解析IAR的ILink链接器icf配置文件介绍icf文件作用以及icf文件主要内容: 2.介绍icf常使用的命令 3.RT1052芯 ...

  7. Linux命令 - /etc/group文件详解

    Linux命令 - /etc/group文件详解   在Linux /etc/group文件是有关于系统管理员对用户和用户组管理的文件,linux用户组的所有信息都存放在/etc/group文件中.具 ...

  8. META-INF文件详解

    META-INF文件详解 java工程的JAR 文件中,会包含了一个 META-INF/MANIFEST.MF 文件,这个文件是在生成 JAR 文件的时候自动创建的.该文件中最重要的两个信息是: Cl ...

  9. centos永久修改主机名以及etc/hosts文件详解

    目录 1 在CentOS7中,有三种定义的主机名 2 查看主机名 3 修改主机名 3.1 方法1:临时有效 3.2 方法2:永久生效 4 注意事项 5 etc/hosts文件详解 1 在CentOS7 ...

  10. c语言fputc输入字符串,C语言fgetc和fputc函数用法详解(以字符形式读写文件)

    C语言fgetc和fputc函数用法详解(以字符形式读写文件),文件,字符,指针,函数,字节 C语言fgetc和fputc函数用法详解(以字符形式读写文件) 易采站长站,站长之家为您整理了C语言fge ...

最新文章

  1. 程序集强命名与GAC
  2. 光流 | 光流交流群
  3. 【Linux系统编程】Linux 可执行文件结构与进程结构
  4. springboot 之Spring Web Mvc Framework
  5. hive学习07-常见的优化
  6. 个人博客系统毕业设计开题报告
  7. [转载] 将整数k转换成实数python表达式_Python程序设计课后习题答案-第一单元
  8. Hadoop——Yarn(4)
  9. python编程正方形面积_编程里面的算法真的很难吗?
  10. [转帖]DRAM芯片战争,跨越40年的生死搏杀
  11. C++程序设计语言练习4.2 茴字的几种写法
  12. Python 与金融科技6|上证50的收盘价汇总
  13. 三十岁,真的是人生的分水岭吗
  14. Localize a WPF application
  15. 程序员的薪资为什么这么高?
  16. 【软件测试】稳定性和可靠性测试在软件开发中的重要性
  17. 畅游Python 二十一:Web框架 - Tornado
  18. Lammps切削过程实现及工件表面识别
  19. fgetc和方fread读不到文件末尾出现ffffff或0时解决方法
  20. Gephi使用详解 实现图可视化(janusgraph)

热门文章

  1. 程序员 -- 黎明前凋零的奇葩
  2. spss实现中心化处理、标准化处理和归一化处理
  3. 程序员英文面试题及回答(带中文翻译)
  4. 移动硬盘需要格式化才能打开如何解决?
  5. 移动硬盘无法打开,提示需格式化
  6. 移动硬盘插入提示需要格式化RAW_使用驱动器X:中的光盘之前需要将其格式化
  7. PMP笔记-项目管理过程中的审计类型
  8. 机器学习-Numpy的学习
  9. Android studio - UI 界面设计(仿问卷星登陆注册界面)
  10. 接口测试系列之——接口安全测试