在PHP中,有两种读取远程文件的方法。一种通过设置php配置文件实现,另一种通过加载PHP扩展cURL来实现。下面分别介绍这两种方法。
方法一
:开启allow_url_open
- 开启方法是在php配置文件中将“allow_url_open”的值设为On或1,保存文件后重启Apache。
- 示例:
<?php
// 通过开启allow_url_open来读取远程文件
$str = file_get_contents("http://www.iteye.com");
if($str != false)
echo $str;
?>
- 需要注意的是,当开启allow_url_open后,存在RFI(Remote File Inclusion)攻击风险。
方法二:
利用cURL模块
- 由于cURL扩展是PHP控制模块,默认情况下是没有被加载的。加载方法是在PHP配置文件中找到“;extension=php_curl.dll”,去掉前面的分号,重启Apache。
- 示例:
<?php
// 通过cURL扩展来读取远程文件
// 初始化cURL会话,返回资源句柄
$init = curl_init("http://www.iteye.com");
// 设置cURL传输项
// 将服务器返回的“Location:”放在header中递归的返回给服务器
curl_setopt($init, CURLOPT_FOLLOWLOCATION, 1);
// 将curl_exec()获取的信息已文件流的方式返回,而不是直接输出,方便对信息下一步的处理
curl_setopt($init, CURLOPT_RETURNTRANSFER, 1);
// 执行一个cURL会话,成功返回执行结果,失败返回false(与
// CURLOPT_RETURNTRANSFER的设置有关)
$str = curl_exec($init);
if($str != false)
echo $str;
// 关闭会话,并且释放资源
curl_close($init);
?>
- 使用cURL扩展的好处是,可以不必开启allow_url_open,因而降低了RFI攻击的风险,提高了应用的安全性。
分享到:
相关推荐
JAVA实现远程文件读取
本文件是将 Java 中 通过远程url访问 转换成 HTML 文件 ,通过 dom4j转换成Java对象元素
主要实现的是登录服务器操作服务器的中的文件数据,支持读写的操作。主要使用的方法getProperties是设置配置的login(参数一是访问服务器的配置,参数二是设置读还是写)方法是读写连接服务器
分享一个读取远程文件的php函数类,比较好用。需要的朋友可以下载参考,如果朋友们有更好的类可以发送过来与我们共享。
易语言远程文件管理源码,远程文件管理,分解文件信息,文件管理数据到达,填充文件列,取后续名,字节转换,取对应图标,取尾部路径,返回上级目录,返回后退目录,返回前进目录,工具条状态,刷新目录,缓存读取,添加缓存,属性值...
java 读取远程共享文件,一个操作简单的读取远程资源的控件。
python来进行远程文件读取,源代码均已成功测试
java 读取远程网站上的 数据,如 :图片,附件,视频等
用JAVA实现缓冲多线程无阻塞读取远程文件
读取远程文件并分析,包括窗体模式和.net模式
rmi远程调用读取文件,以及各种简单的例子
JAVA读取远程网页文件并保存本地 从远程URL地址获取网页文件下载到本地 这个方法可以生成静态HTML文件使用!
delphi如何读取远程远程的txt或者ini文件中的内容并执行!
Linux系统下的telnet客户端、服务器,完整的实验文档和操作过程,附代码。
远程下载音频文件(远程音频读取,回写下载到本地) 已经自测没有问题
这是一个详细介绍Java怎么样写XML文件和远程读取XML文件的文档,里面有详细的例子。
用JAVA实现缓冲多线程无阻塞读取远程文件.pdf
VS2010环境下,使用C++语言,基于Socket技术开发的一款可以实现远程文件传输的小软件
远程读写文件 远程读写文件Dlg.cpp 远程读写文件Dlg.h
用Java多线程实现无阻塞读取远程文件!