导航:首页 > 编程语言 > php远程文件是否存在

php远程文件是否存在

发布时间:2022-04-29 11:06:22

php能不能判断远端HTTP服务器上的文件是否存在 - 技术问答

file_exists(PHP 3, PHP 4, PHP 5)file_exists -- 检查文件或目录是否存在说明bool file_exists ( string filename )如果由 filename 指定的文件或目录存在则返回 TRUE,否则返回 FALSE。 在 Windows 中要用 //computername/share/filename 或者 \\\\computername\\share\\filename 来检查网络中的共享文件。

⑵ php判断远程文件能不能访问

<?php
$fp = fsockopen("www.example.com", 80);
if (!$fp) {
echo "Unable to open\n";
} else {

fwrite($fp, "GET / HTTP/1.0\r\n\r\n");
stream_set_timeout($fp, 2);
$res = fread($fp, 2000);

$info = stream_get_meta_data($fp);
fclose($fp);

if ($info['timed_out']) {
echo 'Connection timed out!';
} else {
echo $res;
}

}
?>

⑶ php使用ftp上传文件,怎么检测文件目录是否存在

ftp_nlist()返回目录下的文件列表。看看你所需要创建目录是否存在。

⑷ 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判断远程文件是否存在

功能:判断远程文件是否存在 参数: $url_file -远程文件URL 返回:存在返回true,不存在或者其他原因返回false*/function remote_file_exists($url_file){//检测输入$url_file = trim($url_file); if (empty($url_file)) { return false; } $url_arr = parse_url($url_file); if (!is_array($url_arr) || empty($url_arr)){return false; } //获取请求数据 $host = $url_arr['host']; $path = $url_arr['path'] ."?".$url_arr['query']; $port = isset($url_arr['port']) ?$url_arr['port'] : "80"; //连接服务器 $fp = fsockopen($host, $port, $err_no, $err_str,30); if (!$fp){ return false; } //构造请求协议 $request_str = "GET ".$path."HTTP/1.1\r\n"; $request_str .= "Host:".$host."\r\n"; $request_str .= "Connection:Close\r\n\r\n";//发送请求fwrite($fp,$request_str); $first_header = fgets($fp, 1024); fclose($fp); //判断文件是否存在

⑹ 如何用php判断服务器本地是否存在指定文件

file_exists好像是不能跨域
有一个不怎么好的办法,就是去访问它一下
方法 :
$url="文件地址";
$hander_array = get_headers ($url);
if($hander_array[0] == 'HTTP/1.1 200 OK') {
return '<img src="'.UC_API.'/data/avatar/'.$avatarfile.'" >';
}
else{
return '<img src="'.UC_API.'/images/noavatar_'.$size.'.gif" >';
}

阅读全文

与php远程文件是否存在相关的资料

热点内容
PC机与单片机通讯 浏览:674
二级加密图 浏览:113
压缩机异音影响制冷吗 浏览:711
德斯兰压缩机 浏览:490
程序员太极拳视频 浏览:531
网上购买加密锁 浏览:825
安卓为什么软件要隐私 浏览:83
虚拟主机管理源码 浏览:811
java图形图像 浏览:230
单片机输出口电平 浏览:486
java配置数据库连接 浏览:479
java多态的体现 浏览:554
java的split分隔符 浏览:128
跪着敲代码的程序员 浏览:238
web和php有什么区别 浏览:120
加密的电梯卡怎么复制苹果手机 浏览:218
warez压缩 浏览:137
黑马程序员培训机构官网天津 浏览:904
mainjavasrc 浏览:59
如何买服务器挖矿 浏览:292