导航:首页 > 编程语言 > php远程访问文件

php远程访问文件

发布时间:2025-01-01 02:32:50

⑴ 用php如何获取远程的xls表格文件地址,并将它下载到本地

写段伪代码给你:

//先获取远程网页的源代码
$html=file_get_contents(http://mp3..com/歌曲播放页.html);

//用正则表达式分析源代码中的资源链接
$link=preg_match_all(正则)...

//读取资源文件
$bin=file_get_contents(http://mp3..com/时间都去哪了.mp3);

//保存资源文件到本地
$fp=fopen(时间都去哪了.mp3,wb)
$fp.writh($bin);
$fp.close();


先说好,不要让我写完整的源代码,因为这里还涉及一些细节,比如说,你才提供的 xls ,就是需要登录的,那么你还要实现模拟登录。

有些网站的资源链接有各种限制,需要你慢慢去深入。

⑵ php include能包含远程文件吗

如果要用fopen打开远程文件,则此时最好检查一下php.ini中的配置选项allow_url_fopen,如果为on则可以打开,否则不能打开。

⑶ PHP 网络开发详解之远程文件包含漏洞

以下代码(Code)实现了根据浏览器地址栏参数的文件名称包含不同文件的功能。
复制代码
代码如下:
<?php
$file_name
=
$_GET["filename"];
//获得当前文件名
include("$file_name
");
//包含文件
//一些其他操作
?>
这时,通过在地址栏上指定不同的文件名就可以实现包含不同文件并执行的功能。例如,通过在浏览器上访问http://localhost/test.php?filename=myinc.php就可以在代码(Code)中包含并执行myinc.php文件。
由于上面的代码(Code)没有进行任何错误处理,在浏览器上不加参数运行,所以将得到以下运行结果。
Warning:
include(.php)
[function.include]:
failed
to
open
stream:
No
such
file
or
directory
in
C:\Program
Files\xampp\htdocs\Bugs\test6.php
on
line
3
Warning:
include()
[function.include]:
Failed
opening
'.php'
for
inclusion
(include_path='.;C:\Program
Files\xampp\php\pear\')
in
C:\Program
Files\xampp\htdocs\Bugs\test6.php
on
line
3
访问者通过读取这段错误信息,可以得知当前的操作是一个文件包含操作。这时,可以在自己的服务器上放置一个相应的脚本代码。需要注意的是PHP在获取远程文件时获得的是远程服务器的最终输出结果,而不是文件本身。该脚本代码位于192.168.0.1服务器上,文件名为hello.txt,脚本代码(Code)如下所示。
复制代码
代码如下:
<?php
echo
"hello
world!";
?>
这时,通过在浏览器中访问http://localhost/test.php?filename=http://192.168.0.1/hello.txt就可以运行hello.txt中的脚本了。
为了解决这个问题,一种方式是完善代码的错误信息,使访问者无法知道当前脚本正在包含参数中指定的文件。修改后的代码(Code)如下所示。
复制代码
代码如下:
<?php
$file_name
=
$_GET["filename"];
//获得当前文件名
if(!@include("$file_name.php"))
//包含文件
{
die("页面在浏览过程中出现错误");
}
//一些其他操作
?>
修改后,如果在被包含的文件无法找到时将出现“页面在浏览过程中出现错误”的错误信息,访问者将无法获得当前页面的具体操作信息。
第二种方式可以更加有效地防止远程文件包含攻击。方式是替换地址栏参数中的斜线“/”。这样,在地址栏参数中输入远程文件地址时,代码将无法正确地获得参数。修改后的代码(Code)如下所示。
复制代码
代码如下:
<?php
$file_name
=
str_replace('/',
'',
$_GET["filename"]);
//获得当前文件名
if(!@include("$file_name.php"))
//包含文件
{
die("页面在浏览过程中出现错误");
}
//一些其他操作
?>
这样,在浏览器中访问http://localhost/test.php?filename=http://192.168.0.1/hello.txt
时,实际上PHP代码(Code)获得的包含文件名称是http:192.168.0.1bugstest6_test。页面将不会包含远程文件,并显示相应的错误信息。

⑷ php include 能包含远程文件吗

可以,但是需要修改配置程序。具体如下:

最好检查一下php.ini中的配置选项allow_url_include,如果为on则可以包含,否则不能包含
; Whether to allow include/require to open URLs (like http:// or ftp://) as files.
allow_url_include = Off

做个简单的测试,此时allow_url_include的值为Off
测试前配置一下hosts文件,这样可以在一台电脑上面进行模拟测试
192.168.1.101 www.test1.com
192.168.1.102 www.test2.com

path.php文件内容为:
<?php
echo "This is file path.php<br />\n";
include("http://www.test2.com/research/path/path.php");
?>

path1.php文件内容为:
<?php
echo "This is file path1.php in root directory\n";
?>
执行http://www.test1.com/research/path/path.php,输出如下
This is file path.php

Warning: include() [function.include]: URL file-access is disabled in the server configuration in E:\myphp\research\path\path.php on line 3

Warning: include(http://www.test2.com/research/path/path.php) [function.include]: failed to open stream: no suitable wrapper could be found in E:\myphp\research\path\path.php on line 3

Warning: include() [function.include]: Failed opening 'http://www.test2.com/research/path/path.php' for inclusion (include_path='.;C:\php5\pear') in E:\myphp\research\path\path.php on line 3

将php.ini中的allow_url_include改为On,重新启动web服务器,再次执行http://www.test1.com/research/path/path.php,输出如下:
This is file path.php
This is file path1.php in root directory
将allow_url_include设为On以后,就可以包含远程文件了,并且包含的是远程文件执行的结果。

阅读全文

与php远程访问文件相关的资料

热点内容
8255a的初始化编程 浏览:387
资源机安卓未激活什么意思 浏览:996
飞利浦mp3没有文件夹 浏览:488
java程序员那些事儿 浏览:402
大智慧ts指标源码 浏览:353
编译原理关系表达式是什么 浏览:821
文件服务器文件过大如何备份 浏览:563
java实现字典 浏览:333
抓包分析服务器地址 浏览:476
程序员节日视频模板高级 浏览:211
avakinlife为什么安卓手机不能玩 浏览:782
安卓软件怎么重新使用 浏览:477
mysql新建用户命令 浏览:544
云服务器显示拒绝连接 浏览:71
云服务器矩阵什么意思 浏览:79
和程序员有关的网名 浏览:230
游戏云咖如何租服务器 浏览:204
程序员rpg游戏 浏览:197
编程范式下载 浏览:249
phpsocket框架对比 浏览:440