fopen
(PHP3 , PHP4)
fopen --- 开启文件或URL
语法 :
int fopen
(string filename, string mode [, int use_include_path])说明 :
如果filename是以"http://"开始的,则HTTP1.0开启连结到指定的伺服器,而且文件指标指到传回的文件的起点。一个'host:'与请求一起送出,是为了处理name-based虚拟主机。
无法处理HTTP转向(redirects),因此必须包含延伸的斜线(slashes)在目录上。
如果filename是以"ftp://"开始的,则ftp开启连结到指定的伺服器,而且传回所请求文件的指标,如果伺服器并不提供被动模式ftp(passive mode ftp)时,这将会失败。你可以经由ftp开启文件来读或写(两者不能同时)。
如果filename是"php://stdin","php://stdout","php://stderr"其中之一时,将会开启stdio资料流(stream)。这是在PHP 3.0.13中引见的,在先前的版本中,像是"/dev/stdin" 或 "/dev/fd/0"的文件名称,必须用来存取stdio资料流。
如果filename不是上述的样式,则会从文件系统开启文件,而且传回文件指标。
如果开启失败,则会传回false。
mode可以是下列任何一个 :
' r ' -- 开启文件成为唯读,文件指标指到文件的开始处
' r+ ' -- 开启文件成为读与写,文件指标指到文件的开始处
' w ' -- 开启文件成为只有写入,文件指标指到文件的开始处并且将原本的文件
内容设为0长度,即删除原来的资料,若文件不存在则试着去建立新档
' w+ ' -- 开启文件成为读与写,文件指标指到文件的开始处并且将原本的文件内
容设为0长度,即删除原来的资料,若文件不存在则试着建立新档
' a ' -- 开启文件成为只有写入,文件指标指到文件的最后处,若文件不存在则试
着建立新档
' a+ ' -- 开启文件为读与写,文件指标指到文件的最后处,若文件不存在则试着
建立新档
mode可以包含字母'b',这只有在二进制和文字档之间有差异的系统才有用(例如在Unix它是无效的),如果不需要,它将会被忽略。
如果你想要在include_path中搜寻文件,你可以使用第三个选项并将它设为"1"。
Example :
<?php
$fp = fopen ("/home/rasmus/file.txt", "r");
$fp = fopen ("/home/rasmus/file.gif", "wb");
$fp = fopen ("http://www.php.net/", "r");
$fp = fopen ("ftp://user:password@example.com/", "w");
?>
如果你在读与写文件有问题,而且你是使用PHP的伺服器模组时,记得确认你所使用的文件与目录是伺服器程序(process)可利用的。
在Windows平台,文件的路径必须小心的使用来逃脱任何的反斜线( \ ),或是使用斜线( / )。
Example :
<?php
$fp = fopen ("c:\\data\\info.txt", "r");
?>
参考 : fclose( ) fsockopen( ) popen( )