PHP中通过fopen()函数访问远程文件示例


Posted in PHP onNovember 18, 2014

使用PHP不仅可以让用户通过浏览器访问服务器端的文件,还可以通过HTTP或FTP等协议访问其他服务器中的文件,可以在大多数需要用文件名作为参数的函数中使用HTTP和FTP URL来代替文件名。使用fopen()函数将指定的文件名与资源绑定到一个流上,如果文件名是“scheme://…”的格式,则被当成一个URL,PHP将搜索协议处理器(也被成为封装协议)来处理此模式。

如果需要远程访问文件,必须在PHP的配置文件中激活“allow_url_fopen”选项,才能使用fopen()函数打开远程文件。而且还要确定其他服务器中的文件是否有访问权限,如果使用HTTP协议对远程文件进行连接,只能以“只读”模式打开。如果需要访问的远程FTP服务器中,对所提供的用户开启了“可写权限,则使用FTP协议连接远程文件时,就可以使用“只写”或“只读”模式打开文件。但不可以使用“可读可写”模式。

使用PHP访问远程文件就像访问本地文件一样,都是使用相同的读写函数处理。例如,可以用以下范例来打开远程Web服务器上的文件,解析我们需要的输出数据,然后就将这些数据用在数据库的检索中,或者简单地将其输出到网站剩下内容的样式匹配中。代码如下所示:

<?php

//通过http打开远程文件

$file = fopen(https://3water.com, "r") or die("打开远程文件失败!!");

while (!feof($file)){

    $line = fgets($file,1024);     //每读取一行

//如果找到远程文件中的标题标记则取出标题,并退出循环,不在读取文件

    if (preg_match("/<titile>(.*/)<\/title>",$line,$out)){     //使用正则匹配标题标记

        $title = $out[1];     //将标题标记中的标题字符取出

        break;     //退出循环,结束远程文件读取

    }

}

 

fclose($file);

echo $title;

?>

如果有合法的访问权限,可以以一个用户的身份和某FTP服务器建立连接,这样就可以向该FTP服务器端的文件进行写操作了。可以用该技术来存储远程日志文件等操作,但仅能用该方法来创建新的文件,如果尝试覆盖已经存在的文件,fopen()函数的调用将会失败。而且要以匿名(anonymous)以外的用户名连接服务器,并需要指明用户名(甚至密码),例如“ftp://user:password@ftp.lampbrother.net/path/to/file”。代码如下所示:

<?php

    //在ftp.lampbrother.net的远程服务器上创建文件,以写的模式打开

    file = fopen("ftp://user:password@ftp.lapbrother.net/path/to/file", "w");

    //将一个字符串写入到远程文件中去

    fwrite($file, "Linux+Apache+MySQL+PHP");

 

    fclose($file);

?>

为了避免由于访问远程主机时发生的超时错误,可以使用set_time_limit()函数对程序的运行时间加以限制。

PHP 相关文章推荐
再次研究下cache_lite
Feb 14 PHP
利用PHP和AJAX创建RSS聚合器的代码
Mar 13 PHP
PHP 冒泡排序 二分查找 顺序查找 二维数组排序算法函数的详解
Jun 25 PHP
PHP IE中下载附件问题解决方法
Jan 07 PHP
php使用base64加密解密图片示例分享
Jan 20 PHP
php简单统计字符串单词数量的方法
Jun 19 PHP
Symfony2学习笔记之控制器用法详解
Mar 17 PHP
PHP生成制作验证码的简单实例
Jun 12 PHP
php7安装mongoDB扩展的方法分析
Aug 02 PHP
基于PHP实现的多元线性回归模拟曲线算法
Jan 30 PHP
PHP使用pdo实现事务处理操作示例
Sep 05 PHP
php 中self,this的区别和操作方法实例分析
Nov 04 PHP
PHP移动文件指针ftell()、fseek()、rewind()函数总结
Nov 18 #PHP
PHP文件锁函数flock()详细介绍
Nov 18 #PHP
php字符比较函数similar_text、strnatcmp与strcasecmp用法分析
Nov 18 #PHP
PHP操作文件的一些基本函数使用示例
Nov 18 #PHP
一个经典的PHP文件上传类分享
Nov 18 #PHP
php数组查找函数总结
Nov 18 #PHP
一个经典的PHP验证码类分享
Nov 18 #PHP
You might like
PHP中几个常用的魔术常量
2012/02/23 PHP
详解WordPress中用于更新和获取用户选项数据的PHP函数
2016/03/08 PHP
php 算法之实现相对路径的实例
2017/10/17 PHP
js实现按钮加背景图片常用方法
2014/11/01 Javascript
关于编写性能高效的javascript事件的技术
2014/11/28 Javascript
jQuery的图片滑块焦点图插件整理推荐
2014/12/07 Javascript
javascript学习笔记之函数定义
2015/06/25 Javascript
javascript获取本机操作系统类型的方法
2015/08/13 Javascript
JavaScript中的数据类型转换方法小结
2015/10/26 Javascript
js实现网页收藏功能
2015/12/17 Javascript
JS中sort函数排序用法实例分析
2016/06/16 Javascript
原生js仿jquery实现对Ajax的封装
2016/10/04 Javascript
详解nodejs 文本操作模块-fs模块(二)
2016/12/22 NodeJs
JS查找字符串中出现最多的字符及个数统计
2017/02/04 Javascript
JS查找英文文章中出现频率最高的单词
2017/03/20 Javascript
vue router的基本使用和配置教程
2018/11/05 Javascript
原生JS实现手动轮播图效果实例代码
2018/11/22 Javascript
基于vue.js实现分页查询功能
2018/12/29 Javascript
vuejs+element UI table表格中实现禁用部分复选框的方法
2019/09/20 Javascript
js实现时钟定时器
2020/03/26 Javascript
解决vue与node模版引擎的渲染标记{{}}(双花括号)冲突问题
2020/09/11 Javascript
js实现类选择器和name属性选择器的示例步骤
2021/02/07 Javascript
Linux环境下MySQL-python安装过程分享
2015/02/02 Python
Python实现生成随机数据插入mysql数据库的方法
2017/12/25 Python
解决pip install xxx报错SyntaxError: invalid syntax的问题
2018/11/30 Python
Python实现PyPDF2处理PDF文件的方法示例
2019/09/25 Python
Python tkinter实现简单加法计算器代码实例
2020/05/13 Python
Python为何不支持switch语句原理详解
2020/10/21 Python
Timberland法国官网:购买靴子、鞋子、衣服、夹克和配饰
2019/11/30 全球购物
网页设计个人找工作求职信
2013/11/28 职场文书
大连导游词
2015/02/12 职场文书
事业单位个人总结
2015/02/12 职场文书
2016教师给学生的毕业寄语
2015/12/04 职场文书
天谕手游15杯全调酒配方和调酒券的获得方式
2022/04/06 其他游戏
Python查找算法的实现 (线性、二分,分块、插值查找算法)
2022/04/24 Python
在容器中使用nginx搭建上传下载服务器
2022/05/11 Servers