使用PHP访问远程文件
飛2019-05-27 11:22:06393访问远程文件
使用PHP不仅可以让用户通过浏览器访问服务器端的文件,还可以通过HTTP或FTP等协议访问其他服务器中的文件,可以在大多数需要用文件名作为参数的函数中使用HTTP和FTP URL来代替文件名。使用fopen()函数将制定的文件名与资源绑定到一个流上,如果文件名是"scheme://..."的格式,则被当成一个URL,PHP将搜索协议器(也被称为封装协议)来处理此模式。
如果需要访问远程文件,必须在PHP的配置文件中激活“allow_url_fopen”选项,才能使用fopen()函数打开远程文件。而且还要确定其他服务器中的文件是否有访问权限,如果使用HTTP协议对远程文件进行连接,只能以“只读”模式打开。如果需要访问的远程FTP服务器中,对所提供的用户开启了“可写”权限,则使用FTP协议连接远程的文件时,就可以使用“只写”或“只读”模式打开文件。但不可以使用“可读可写”的模式。
使用PHP访问远程文件就像访问本地文件一样,都是使用相同的读写函数处理。代码示例如下:
$file = fopen("http://www.baidu.com/","r") or die("打开远程文件失败!");
while(!feof($file))
{
$line = fgets($file,1024); //每读取一行
if(preg_match("/<title>(.*)</title>/",$line,$out)) //如果找到远程文件中的标题标记则取出标题,并退出循环,不在读取文件
{
$title = $out[1];
break;
}
}
fclose($file); //关闭文件资源
echo $title; //输出获取到的远程网页的标题