PHP判断远程路径是否存在

方法一(需要开启allow_url_fopen):

 

1<?php
3    $fileExists = @file_get_contents($url, null, null, -1, 1) ? true : false;
4    echo $fileExists; //返回1,就说明文件存在。
5?><b> </b>

方法二(需要服务器支持Curl组件):

 

01<?php
02function check_remote_file_exists($url) {
03    $curl = curl_init($url); // 不取回数据
04    curl_setopt($curl, CURLOPT_NOBODY, true);
05    curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'GET'); // 发送请求
06    $result = curl_exec($curl);
07    $found = false; // 如果请求没有发送失败
08    if ($result !== false) {
09 
10        /** 再检查http响应码是否为200 */
11        $statusCode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
12        if ($statusCode == 200) {
13            $found = true;
14        }
15    }
16    curl_close($curl);
17 
18    return $found;
19}
20 
22echo check_remote_file_exists($url); // 返回1,说明存在。
23 
24?>

+++++++++++++++++++++++++++++++++++++++

 

 

01<?php
02 
03/*
04 函数:remote_file_exists
05 功能:判断远程文件是否存在
06 参数: $url_file -远程文件URL
07 返回:存在返回true,不存在或者其他原因返回false
08*/
09function remote_file_exists($url_file){
10    //检测输入
11    $url_file = trim($url_file);
12    if (empty($url_file)) { return false; }
13    $url_arr = parse_url($url_file);
14    if (!is_array($url_arr) || empty($url_arr)){return false; }
15 
16    //获取请求数据
17    $host = $url_arr['host'];
18    $path = $url_arr['path'] ."?".$url_arr['query'];
19    $port = isset($url_arr['port']) ?$url_arr['port'] : "80";
20 
21    //连接服务器
22    $fp = fsockopen($host, $port, $err_no, $err_str,30);
23    if (!$fp){ return false; }
24 
25    //构造请求协议
26    $request_str = "GET ".$path."HTTP/1.1\r\n";
27    $request_str .= "Host:".$host."\r\n";
28    $request_str .= "Connection:Close\r\n\r\n";
29 
30    //发送请求
31    fwrite($fp,$request_str);
32    $first_header = fgets($fp, 1024);
33    fclose($fp);
34 
35    //判断文件是否存在
36    if (trim($first_header) == ""){ return false;}
37    if (!preg_match("/200/", $first_header)){
38        return false;
39    }
1<p><strong>函数描述及例子</strong></p>
2<p></p>
3<pre class="brush:php; toolbar: true; auto-links: true;"><?
4    //测试代码
5    $str_url = 'http://127.0.0.2/getfile.php?id=404';
6    $exits = remote_file_exists($str_url);
7    echo $exists ? "存在" : "不存在";
8?><b> </b></pre><b><br>
9</b><p></p>

附送一个JS的判断

 

 

01<script   language= "网页特效 ">
02function   geturl(url)
03{
04        var   xmlhttp   =   new   activexobject( "microsoft.xmlhttp ");
05        xmlhttp.open( "get ",url,false);
06        xmlhttp.send();
07        if   (xmlhttp.readystate==4)
08            alert((xmlhttp.status==200)? "文件存在 ": "文件不存在 ");
09}
10</script>
11请输入文件地址: <input   name= "file "   id= "file "   value= "http://www.111cn.net ">
12<button   onclick= "geturl(file.value) "> 检测地址 </button>

http://blog.woodbunny.com/php/38.html

转载于:https://www.cnblogs.com/ymj0906/archive/2013/06/04/3117748.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值