如何应用fopen()函数的选择模式?

黄舟
Release: 2023-03-07 20:00:01
Original
1677 people have browsed it

如何应用fopen()函数的选择模式?

一、fopen()函数

在php中使用fopen()函数打开一个文件,具体语法格式如下:

resource fopen ( string filename , string $mode [, int use_include_path[, resource zcontext ]] )
Copy after login

参数 filename 指定打开的文件名。

注意:

参数 filename可以使包含文件路径的文件名(比如:“C:/Windows/php.ini”或者“./php.ini”),可为了避免不同系统之间切换可能会带来的麻烦,采用“/”作为路径分隔符,参数 filename 也可以是由魔种协议给出的 URL (比如:“http://mrbccd.cn”或者“ftp://www.mrbccd.cn//”),如果指定 URL 地址,则可以打开远程文件。

参数 mode 设置打开文件的方法,参数值如下表:

mode模式名称说明
r只读读模式—进行读取,文件指针位于文件的开头
r+读写读写模式—进行读写,文件指针位于文件的开头。在现有文件的内容的末尾之前进行写入就会覆盖原有的
W只写写模式—进行写入文件,文件指针指向头文件。如果文件存在,则所有文件内容被删除,否则函数将创建这个文件
w+读写读写模式—进行读写,文件指针指向头文件。如果文件存在,则所有文件内容被删除,否则函数将创建这个文件
x谨慎写写模式打开文件,从文件头开始写。如果文件已经存在,则该文件将不会被打开,函数返回false,PHP将产生一个警告
x+谨慎写读/写模式打开文件,从文件头开始写。如果文件已经存在,则该文件将不会被打开,函数返回false,PHP将产生一个警告
a追加追加模式打开文件,文件指针指向尾文件,如果该文件已有内容,则将从文件末尾开始追加,如果该文件不存在,则函数将创建这个文件
a+追加追加模式打开文件,文件指针指向头文件,如果该文件已有内容,则将从文件末尾开始追加或者读取,如果该文件不存在,则函数将创建这个文件
b二进制二进制模式—用于与其他模式进行连接。如果文件系统能够区分二进制文件和文本文件,可能会使用它。Windows可以区分;UNIX则不区分,推荐使用这个选项,便于获得最大程度的可移植性。它是默认模式
t文本用于与其他模式的结合。这个模式只是 Windows下的一个选项

参数use_include_path 可为选择参数,决定是否在 include_path(php.ini 的include_path选项)定义的目录中搜索filename 文件,比如:在php.ini文件中设置include_path 选项的值为“E:\AppServ\www\MR\Instance\07\”,如果希望服务器在这个路径下打开所指定的文件,则设置参数 use_include_path 的值为 1 或者 TRUE。

参数 context 称为上下文,同样为可选参数,它是设置流操作的特定选项,用于控制流的操作特性。一般情况下只需要默认的流操作设置,不需要使用此参数。

二、模式选择

不同的操作系统具有不同得行结束习惯,当要在文本文件中插入一个新行时,对于行结束符的选择必须适合用户的操作系统,如果使用错误的行结束符,那么当打开文件时,输出的可以是一堆乱码,所以正确的使用行结束符是非常重要的。

基于UNIX 的系统使用\n作为行结束符,基于 Windows的系统,使用\r\n作为行结束符,基于 Macintosh 的系统使用\r作为行结束符。

在 Windows 下提供一个文本转换标记(“t”)可以将\n转换位\r\n;或者也可以使用(“b”)设置二进制模式,这样就不会对数据进行转换。所以,在Windows系统要使用行结束符有两个选择:一使用文本转换标记(“t”)进行转换;二使用(“b”)设置mode参数的模式为二进制。

默认的转换模式依赖于 SAPI 和使用的 PHP版本,因此为了便于移植,建议在应用 fopen()函数时要制定恰当的模式。

如果想让\n作为行结束符的纯文本文件在其他应用程序(如 Notepad)中也有效。那么建议在在脚本中使用(“t”)模式。在其他情况下使用(“b”)。

如果在操作二进制文件时没有指定(“b”)模式,可能会输出一些奇怪的内容,因此,考虑到程序的可移植性,强烈建议在在用 fopen()打开文件时总是使用(“b”)模式;同时,建议重写那些依赖于(“t”)模式的代码。使其使用正确的行结束符和正确的(“b”)模式。

关于如何应用fopen()函数的选择模式我们就介绍到这里,小伙伴们可以自己在本地试一试~

The above is the detailed content of 如何应用fopen()函数的选择模式?. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact [email protected]
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!