PHP fopen() aiki

Ba da cikakken bayani

fopen() aiki na fageni fayil ko URL.

Idan an samu hankali daidai, bai samu FALSE ba.

Ba da cikakken bayani

fopen(filename,mode,include_path,context)
Ba da cikakken bayani Ba da cikakken bayani
filename Dabam. An samu hankali daidai na fayil ko URL.
mode Dabam. An samu hankali daidai na daidai. An samu hankali daidai a cikin taba.
include_path An samu hankali daidai. Idan ana neman daidai a cikin include_path, za a iya sanya shi da 1 ko TRUE.
context An samu hankali daidai na daidai. Context yana daidai da kai tsaye da kai tsaye da kai tsaye na kai tsaye.

An samu hankali daidai na mode

mode 说明
"r" An fageni daidai kuma a kama na farkon fayil.
"r+" An fageni daidai kuma a kama na farkon fayil.
"w" An fageni daidai kuma a kama na farkon fayil, kuma a kama kai tsaye da kai tsaye na farkon fayil. Idan fayil bai daɗa ba, an kiyasta ya yiwa.
"w+" An fageni daidai kuma a kama na farkon fayil, kuma a kama kai tsaye da kai tsaye na farkon fayil. Idan fayil bai daɗa ba, an kiyasta ya yiwa.
"a" An fageni daidai kuma a kama na farkon fayil. Idan fayil bai daɗa ba, an kiyasta ya yiwa.
"a+" An fageni daidai kuma a kama na farkon fayil. Idan fayil bai daɗa ba, an kiyasta ya yiwa.
"x"

Anfani da a tsontai kuma a fageni daidai, kuma a kama na farkon fayil. Idan fayil ya daɗa, an samu hankali daidai da FALSE, kuma an samu rarrabu na kai tsaye da kai tsaye na E_WARNING. Idan fayil bai daɗa ba, an kiyasta ya yiwa.

这和给底层的 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 以及以后的版本所支持,仅能用于本地文件。

说明

fopen() 将 filename 指定的名字资源绑定到一个流上。如果 filename 是 "scheme://..." 的格式,则被当成一个 URL,PHP 将搜索协议处理器(也被称为封装协议)来处理此模式。如果该协议尚未注册封装协议,PHP 将发出一条消息来帮助检查脚本中潜在的问题并将 filename 当成一个普通的文件名继续执行下去。

如果 PHP 认为 filename 指定的是一个本地文件,将尝试在该文件上打开一个流。该文件必须是 PHP 可以访问的,因此需要确认文件访问权限允许该访问。如果激活了安全模式或者 open_basedir 则会应用进一步的限制。

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

context 的支持是 PHP 5.0.0 添加的。

提示和注释

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

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

Na farko na zagayoyin rarraba ana ba da izi a cikin SAPI da PHP version da a amfani da, domin ganin ganin portability, ana kawarin kuma ana kawarin ta amfani da "b" na farko. Bugu da ƙari, amfani da "t" domin amfani da fayilolin launin da ba a saka "\n" na farko ba, amma ana kirki a cikin Notepad da wasu shirye-shiryen da ke kaiwa.

Daga baya, domin amfani da fayilolin binary da ba a saka "b" na farko ba, za a sami wasu masu kura da kura, ciki har da fayilolin tasiri da wasu rashin aiki kan "\r\n" karin.

Tunani:Daga baya, domin ganin portability, ana kawarin kuma ana kawarin ta amfani da "b" na farko a cikin fopen() domin fiyayya.

Tunani:Daga baya, domin ganin portability, ana kawarin kuma ana kawarin ta kawar da aikace-ai da sukar "t" na farko domin amfani da sauri da saukar "b".

Shirin

<?php
$file = fopen("test.txt","r");
$file = fopen("/home/test/test.txt","r");
$file = fopen("/home/test/test.gif","wb");
$file = fopen("http://www.example.com/","r");
$file = fopen("ftp://user:password@example.com/test.txt","w");
?>