6.2.13 通过HTTP协议打开文件
通过HTTP协议打开文件,就是使用函数fopen()打开一个远程文件,这和使用函数fopen()打开一个本地文件几乎没有区别。下面通过一个具体示例程序说明如何通过HTTP协议打开文件,代码6-14就是这样一个示例程序。
代码6-14 通过HTTP协议打开文件6-14.php
01 <?php
02 echo"<H3>通过http协议打开文件</H3>";
03 echo"<br/>";
04
05 if(!($file=fopen("http://localhost/ch06/server_data.txt","r")))//通过HTTP协议打开文件
06 {
07 echo"文件不能打开";
08 exit;
09 }
10 while(!feof($file))
11 {
12 $line=fgetss($file,255);//按行读取文件中的内容
13 echo$line;
14 echo"<br/>";
15 }
16
17 fclose($file);//关闭文件的句柄
18 ?>
【代码解析】代码6-14首先通过函数fopen()打开本地HTTP服务路径下,ch06目录中的server_data.txt文件,如代码第5行所示,这里也可以通过HTTP协议打开一个远程服务器的文件。如果找到该文件,则在没有达到文件末尾时,循环读出文件内容,如代码第10~15行所示。注意,这里使用函数fgetss()读取文件内容,这里简单说明一下该函数的用法,其语法如下所示。
string fgetss(resource$handle)
函数fgetss()从参数$handle所指文件中读取一行内容,并将其中的HTML标记过滤掉,事实上,这也是它和函数fgets()的唯一不同之处。假如在程序所指目录下(代码第5行所示),存在一个名为server_data.txt的文件,其中内容如图6-15所示,那么6-14.php的执行结果就会如图6-16所示。
从图6-15和图6-16可以看出,使用函数fopen()打开了一个文件,并且使用函数fgetss()获取文件内容后,原文件中的HTML标记都被删除。