php中fopen函数用法详解(打开文件)

摘要:
Fopen()将文件名指定的名称资源绑定到流。PHP将发送一条消息,帮助检查脚本中的潜在问题,并继续将文件名作为正常文件名执行。如果PHP认为filename指定了本地文件,请指定要打开的文件或URL。如果还需要包含_如果在路径中检索到文件,则mode参数mode的可能值表示“r”只读模式已打开。编写文本文件并尝试插入新行时。
介绍下php中的fopen函数。

1.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中检索文件的话,可以将该参数设为1或TRUE。
context:可选,规定文件句柄的环境,Context是可以修该流的行为的一套选项。

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

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

Note:
不同的操作系统家族具有不同的行结束习惯。当写入一个文本文件并想插入一个新行时,需要使用 符合操作系统的行结束符号。基于 Unix 的系统使用 作为行结束字符,基于 Windows 的系统使用 作为行结束字符,基于 Macintosh 的系统使用 作为行结束字符。

如果写入文件时使用了错误的行结束符号,则其它应用程序打开这些文件时可能会表现得很怪异。
Windows 下提供了一个文本转换标记('t')可以透明地将 转换为 。与此对应还可以使用'b' 来强制使用二进制模式,这样就不会转换数据。要使用这些标记,要么用 'b' 或者用 't' 作为 mode 参数的最后一个字符。

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

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

免责声明:文章转载自《php中fopen函数用法详解(打开文件)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇2020前端面试题常问集锦VC动态轨迹画线下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Tornado web 框架

Tornado web 框架 其实很简单、深度应用一、简介     Tornado 是 FriendFeed 使用的可扩展的非阻塞式 web 服务器及其相关工具的开源版本。这个 Web 框架看起来有些像web.py 或者 Google 的 webapp,不过为了能有效利用非阻塞式服务器环境,这个 Web 框架还包含了一些相关有用工具及优化。     Tor...

vue3.0的优化(一)

vue3性能优于vue2.x,主要原因有以下四点: 一、diff算法优化: vue2.x的虚拟DOM是进行全量比较。 vue3新增了静态标记(PatchFlag)。 在于上次虚拟节点进行比较的时候,只比较带有静态标记的节点,减少了比较的次数。 使用vue3创建工具查看一下创建结构 export function render(_ctx, _cache...

C# winform自动更新 (附 demo下载)

随着需求的变化,如果Server每次更新出新的内容,Client都要重新安装的话。 太过于复杂化。  所以自动更新是很有必要的。 一、.NET自带的更新方式    以服务器端为主  (自动更新,微软爸爸肯定是有的。 有点:简单方便,便于维护; 缺点:用户没有自己的选择权,一切以服务端为主,每次更新之后,都是全新,继承不了上版本的配置;文件安装位置不可控 )...

lucene.net 应用资料

本文介绍了什么是Lucene,Lucene能做什么. 如何从一个文件夹下的所有txt文件中查找特定的词? 本文将围绕该个实例介绍了lucene.net的索引的建立以及如何针对索引进行搜索.最后还将给出源代码供大家学习. 源代码下载 What’s Lucene Lucene是一个信息检索的函数库(Library),利用它你可以为你的应用加上索引和搜索的功能....

Python之os库的使用

1. os库基本介绍 os库提供通用的、基本的操作系统交互功能 os 库是Python标准库,包含几百个函数 常用路径操作、进程管理、环境参数等几类 详解介绍 路径操作:os.path子库,处理文件路径及信息 进程管理:启动系统中其他程序 环境参数:获得系统软硬件信息等环境参数 2. os库之路径操作 os库使用os.path子库来进行路径操作,...

[原创]C#通过引用Office Excel (2007) 组件实现对Excel文件的操作

对用应用软件来说,将报表转出为Excel文件,进行二次加工,或者根据Excel模版填充数据,是非常常用的。实现对Excel文件的操作,如将报表转出为Excel或根据已有的Excel模版进行填充,有很多方法,比如使用第三方组件,根据Open XML的标准,将WEB页面中的控件直接输出等等,还有一种方式就是引用Office Excel组件,直接由.NET程序调...