首页 > 帮助中心 > 网站建设相关问题 > PHP判断远程文件是否存在

资讯分类



PHP判断远程文件是否存在

日期:2017-12-05    共阅 [ 2123 ] 次

方案一
 
/**
*
* jourmy@hotmail.com 
*/
 
function url_file_exists($url)
{
    $url = trim($url);
    $http_headers = @get_headers($url,1);
//   print_r($http_headers);
    $exist_stat = "200";
    $string_pieces = explode(" ",$http_headers[0]);
    for ($i = 0; $i<count($string_pieces); $i++)
    {
            if (strcmp($exist_stat,$string_pieces[$i]) == 0) {
                return true;
            }
    }
    return false;
}



/*
 函数:remote_file_exists
 功能:判断远程文件是否存在
 参数: $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";
    $request_str .= "Host:".$host."";
    $request_str .= "Connection:Close";
  
    //发送请求
    fwrite($fp,$request_str);
    $first_header = fgets($fp, 1024);
    fclose($fp);
  
    //判断文件是否存在
    if (trim($first_header) == ""){ return false;}
    if (!preg_match("/200/", $first_header)){
        return false;
    }
  
    return true;
}


函数描述及例子


   //测试代码
    $str_url = 'http://127.0.0.2/viewarticle.php?id=119617';
    $exits = remote_file_exists($str_url);
    echo $exists ? "Exists" : "Not exists";


方法一(需要开启allow_url_fopen):

<?php
    $url = "http://cn.wordpress.org/wordpress-3.3.1-zh_CN.zip";
    $fileExists = @file_get_contents($url, null, null, -1, 1) ? true : false;
    echo $fileExists; //返回1,就说明文件存在。
?>

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

<?php
function check_remote_file_exists($url) {
    $curl = curl_init($url); // 不取回数据
    curl_setopt($curl, CURLOPT_NOBODY, true);
    curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'GET'); // 发送请求
    $result = curl_exec($curl);
    $found = false; // 如果请求没有发送失败
    if ($result !== false) {
 
        /** 再检查http响应码是否为200 */
        $statusCode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
        if ($statusCode == 200) {
            $found = true;
        }
    }
    curl_close($curl);
 
    return $found;
}
 
$url = "http://cn.wordpress.org/wordpress-3.3.1-zh_CN.zip";
echo check_remote_file_exists($url); // 返回1,说明存在。
 
?>


 

 

基础产品服务
域名注册
虚拟主机
云服务器
企业邮箱
服务器托管
服务器租用
网站营销
智能建站
产品管理平台
企业解决方案
400电话
网站建设
在线客服系统
服务器运维
优化营销
数据恢复
Mysql数据库
SQL数据库
技术文档
合同文本
站长必备软件
实例与代码
代理文档
精品作品
站长论坛
展览馆
HTML5炫
关键词密度分析
IP归属地查询
备案查询
SEO查询
百度权重查询
solidworks
保持接触
联系电话:15810326078
010-68924881
技术QQ:12491287
商务QQ:22392247
技术邮箱: cpoo@163.com
联系方式
畅景论坛
客服&帮助
扫码领红包
新闻公告
代理加盟
如何网站备案
付款方式
索取发票
渠道合作
帮助中心
网站地图

微信咨询/联系:

↑ 扫描加微信咨询

北京辟谣平台 违法不良信息举报

关于畅景| 联系我们| 付款方式| 网站备案| 帮助中心| 畅景资讯| 相关下载 ||||
本站产品全面支持在线支付,自主开通及管理! 域名注册,域名查询,域名申请,虚拟主机,企业邮箱,网站建设,云主机,网络推广尽在畅景互联
版权所有 www.cpoo.com.cn 京ICP备12015531号-8 京公网安备110105018078   北京新网(Xinnet.com)认证注册服务机构 新网授权代理商

十年历史见证 超过9000家客户信誉保障 腾讯在线QQ客服:12491287 22392247

客户服务中心(7×24):15810326078 传真:010-68924881-2288