怎么在php中利用fopen函数打开文件

介绍

怎么在php中利用fopen函数打开文件?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

<强>函数功能:
fopen()将文件名指定的名字资源绑定到一个流上。如果文件名是“方案://暗母袷?则被当成一个URL, PHP将搜索协议处理器(也被称为封装协议)来处理此模式。如果该协议尚未注册封装协议,PHP将发出一条消息来帮助检查脚本中潜在的问题并将文件名当成一个普通的文件名继续执行下去。
如果PHP认为文件名指定的是一个本地文件,将尝试在该文件上打开一个流。该文件必须是PHP可以访问的,因此需要确认文件访问权限允许该访问。如果激活了安全模式或者open_basedir则会应用进一步的限制。

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

<强>文件名:强规定要打开的文件或URL。
<强>模式:强规定要求到该文件/流的访问类型。
<强>包含路径:可选,如果也需要在文件名中检索文件的话,可以将该参数设为1或真的。
<强>背景:可选,规定文件句柄的环境,上下文是可以修该流的行为的一套选项。

<强> 模式,说明
“r",只读方式打开,将文件指针指向文件头。
“r +“;,读写方式打开,将文件指针指向文件头。
“w",写入方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。
“w +“;,读写方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。
“a",写入方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。
“+”;,读写方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。
“x",
创建并以写入方式打开,将文件指针指向文件头。如果文件已存在,则fopen()调用失败并返回假,并生成一条E_WARNING级别的错误信息。如果文件不存在则尝试创建之。
这和给底层的开放(2)系统调用指定O_EXCL | O_CREAT标记是等价的。
此选项被PHP 4.3.2以及以后的版本所支持,仅能用于本地文件。

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

<强>注意:
强不同的操作系统家族具有不同的行结束习惯。当写入一个文本文件并想插入一个新行时,需要使用符合操作系统的行结束符号。基于Unix的系统使用\ n作为行结束字符,基于Windows的系统使用\ r \ n作为行结束字符,基于Macintosh的系统使用\ r作为行结束字符。
如果写入文件时使用了错误的行结束符号,则其它应用程序打开这些文件时可能会表现得很怪异。
Windows下提供了一个文本转换标记(& # 39;t # 39;)可以透明地将\ n转换为\ r \ n。与此对应还可以使用& # 39;b # 39;来强制使用二进制模式,这样就不会转换数据。要使用这些标记,要么用& # 39;b # 39;或者用& # 39;t # 39;作为模式参数的最后一个字符。
默认的转换模式依赖于SAPI和所使用的PHP版本,因此为了便于移植鼓励总是指定恰当的标记。如果是操作纯文本文件并在脚本中使用了\ n作为行结束符,但还要期望这些文件可以被其它应用程序例如记事本读取,则在模式中使用& # 39;t # 39;。在所有其它情况下使用& # 39;b # 39;。
在操作二进制文件时如果没有指定& # 39;b # 39;标记,可能会碰到一些奇怪的问题,包括坏掉的图片文件以及关于\ r \ n字符的奇怪问题。

关于怎么在php中利用fopen函数打开文件问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注行业资讯频道了解更多相关知识。

怎么在php中利用fopen函数打开文件