您当前的位置:首页 > 互联网教程

php打开文件fopen函数的使用说明

发布时间:2025-05-23 03:31:51    发布人:远客网络

php打开文件fopen函数的使用说明

一、php打开文件fopen函数的使用说明

1、本篇文章是对php中的打开文件fopen函数的使用进行了详细的分析介绍需要的朋友参考下

resource fopen(string$filename string$mode [ bool$use_include_path [ resource$zcontext]])函数功能 fopen()将 filename指定的名字资源绑定到一个流上如果filename是"scheme://"的格式则被当成一个 URL PHP将搜索协议处理器(也被称为封装协议)来处理此模式如果该协议尚未注册封装协议 PHP将发出一条消息来帮助检查脚本中潜在的问题并将filename当成一个普通的文件名继续执行下去如果 PHP认为 filename指定的是一个本地文件将尝试在该文件上打开一个流该文件必须是 PHP可以访问的因此需要确认文件访问权限允许该访问如果激活了安全模式或者open_basedir则会应用进一步的限制如果 PHP认为 filename指定的是一个已注册的协议而该协议被注册为一个网络 URL PHP将检查并确认allow_url_fopen已被激活如果关闭了 PHP将发出一个警告而 fopen的调用则失败 filename规定要打开的文件或URL mode规定要求到该文件/流的访问类型 include_path可选如果也需要在include_path中检索文件的话可以将该参数设为或TRUE context可选规定文件句柄的环境 Context是可以修该流的行为的一套选项 mode参数的可能的值 mode说明"r"只读方式打开将文件指针指向文件头"r+"读写方式打开将文件指针指向文件头"w"写入方式打开将文件指针指向文件头并将文件大小截为零如果文件不存在则尝试创建之"w+"读写方式打开将文件指针指向文件头并将文件大小截为零如果文件不存在则尝试创建之"a"写入方式打开将文件指针指向文件末尾如果文件不存在则尝试创建之"a+"读写方式打开将文件指针指向文件末尾如果文件不存在则尝试创建之"x"创建并以写入方式打开将文件指针指向文件头如果文件已存在则 fopen()调用失败并返回 FALSE并生成一条 E_WARNING级别的错误信息如果文件不存在则尝试创建之这和给底层的 open()系统调用指定 O_EXCL|O_CREAT标记是等价的此选项被 PHP以及以后的版本所支持仅能用于本地文件

2、 resource fopen(string$filename string$mode [ bool$use_include_path [ resource$zcontext]])函数功能 fopen()将 filename指定的名字资源绑定到一个流上如果filename是"scheme://"的格式则被当成一个 URL PHP将搜索协议处理器(也被称为封装协议)来处理此模式如果该协议尚未注册封装协议 PHP将发出一条消息来帮助检查脚本中潜在的问题并将filename当成一个普通的文件名继续执行下去如果 PHP认为 filename指定的是一个本地文件将尝试在该文件上打开一个流该文件必须是 PHP可以访问的因此需要确认文件访问权限允许该访问如果激活了安全模式或者open_basedir则会应用进一步的限制如果 PHP认为 filename指定的是一个已注册的协议而该协议被注册为一个网络 URL PHP将检查并确认allow_url_fopen已被激活如果关闭了 PHP将发出一个警告而 fopen的调用则失败 filename规定要打开的文件或URL mode规定要求到该文件/流的访问类型 include_path可选如果也需要在include_path中检索文件的话可以将该参数设为或TRUE context可选规定文件句柄的环境 Context是可以修该流的行为的一套选项 mode参数的可能的值 mode说明"r"只读方式打开将文件指针指向文件头"r+"读写方式打开将文件指针指向文件头"w"写入方式打开将文件指针指向文件头并将文件大小截为零如果文件不存在则尝试创建之"w+"读写方式打开将文件指针指向文件头并将文件大小截为零如果文件不存在则尝试创建之"a"写入方式打开将文件指针指向文件末尾如果文件不存在则尝试创建之"a+"读写方式打开将文件指针指向文件末尾如果文件不存在则尝试创建之"x"创建并以写入方式打开将文件指针指向文件头如果文件已存在则 fopen()调用失败并返回 FALSE并生成一条 E_WARNING级别的错误信息如果文件不存在则尝试创建之这和给底层的 open()系统调用指定 O_EXCL|O_CREAT标记是等价的此选项被 PHP以及以后的版本所支持仅能用于本地文件

3、"x+"创建并以读写方式打开将文件指针指向文件头如果文件已存在则 fopen()调用失败并返回 FALSE并生成一条 E_WARNING级别的错误信息如果文件不存在则尝试创建之这和给底层的 open()系统调用指定 O_EXCL|O_CREAT标记是等价的此选项被 PHP以及以后的版本所支持仅能用于本地文件

二、php fopen('', 'ab');函数里ab能这么写吗

1、不同的操作系统家族具有不同的行结束习惯。当写入一个文本文件并想插入一个新行时,需要使用符合操作系统的行结束符号。基于 Unix的系统使用\n作为行结束字符,基于 Windows的系统使用\r\n作为行结束字符,基于 Macintosh的系统使用\r作为行结束字符。如果写入文件时使用了错误的行结束符号,则其它应用程序打开这些文件时可能会表现得很怪异。

2、Windows下提供了一个文本转换标记("t")可以透明地将\n转换为\r\n。与此对应还可以使用"b"来强制使用二进制模式,这样就不会转换数据。要使用这些标记,要么用"b"或者用"t"作为 mode参数的最后一个字符。

3、默认的转换模式依赖于 SAPI和所使用的 PHP版本,因此为了便于移植鼓励总是指定恰当的标记。如果是操作纯文本文件并在脚本中使用了\n作为行结束符,但还要期望这些文件可以被其它应用程序例如 Notepad读取,则在 mode中使用"t"。在所有其它情况下使用"b"。

4、在操作二进制文件时如果没有指定"b"标记,可能会碰到一些奇怪的问题,包括坏掉的图片文件以及关于\r\n字符的奇怪问题。

三、PHP fopenmode 参数的可能的值

PHP中的fopen()函数用于打开文件,其mode参数非常重要,它决定了打开文件的方式。主要有以下几种:

模式"r":以只读方式打开文件,文件指针将定位到文件头。

模式"r+":读写方式打开,文件指针同样定位到文件头,允许读取和写入。

模式"w":写入方式打开,文件指针指向文件头,如果文件存在,内容会被截断为零。若文件不存在,则尝试创建。

模式"w+":读写方式打开,与"w"类似,但同时允许读取。

模式"a":只写入模式,文件指针定位到文件末尾。如果文件不存在,将尝试创建。

模式"a+":读写模式,文件指针同样定位到文件末尾,支持读取和写入。

模式"x":创建并以写入方式打开,文件指针定位到文件头。如果文件已存在,fopen()将失败并返回FALSE,产生一个E_WARNING级别的错误。如果文件不存在,则新建。

模式"x+":创建并读写模式,与"x"类似,不同之处在于它也允许读取。

这些模式在PHP 4.3.2及以后的版本中可用,仅限于本地文件操作。需要注意的是,"x"和"x+"模式在尝试创建文件时,会利用底层的open(2)系统调用中的O_EXCL和O_CREAT标记,以确保文件的独特性。

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