PHP中判断远程文件或本地文件是否存在

本文介绍了一个用于检测远程文件是否存在的PHP函数remote_file_exists。该函数通过构造HTTP请求并检查响应状态来判断远程文件是否存在。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

//判断远程文件是否存在
/*
  函数:remote_file_exists
  功能:判断远程文件是否存在
  参数: $url_file - 远程文件URL
        $flag  - true为判断远程文件,false为判断非远程文件
  返回:存在返回true,不存在或者其他原因返回false
*/	
function remote_file_exists($url_file,$flag = true){
    if($flag == true){ //默认是判断远程文件
        //检测输入
        $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);

        //判断文件是否存在
        if (trim($first_header) == ""){ return false; }
        if (!preg_match("/200/", $first_header)){
                return false;
        }
        return true;
    }else if($flag == false){  //非远程文件
        return file_exists($url_file);
    }
}
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值