PHP 判断远程文件是否存在

/**
 * 判断远程文件是否存在
 * @param $url string 远程文件地址URL
 * @return array|bool
 */
function originFileExists($url){
    //设置上下文流的参数
    stream_context_set_default(
        array(
            'http' => array(
                'timeout' => 5,
            )
        )
    );
    //获取HTTP请求中发送的服务器信息
    //format 如果将可选的 format 参数设为 1,则 get_headers() 会解析相应的信息并设定数组的键名
    $header = get_headers($url,1);
    //查找并返回字符串在另一字符串中第一次出现的位置,如果没有找到字符串则返回 FALSE
    if(strpos($header[0],'200')){
        return true;
    }
    if(strpos($header[0],'404')){
        return false;
    }
    if (strpos($header[0],'301') || strpos($header[0],'302')) {
        if(is_array($header['Location'])) {
            $redirectUrl = $header['Location'][count($header['Location'])-1];
        }else{
            $redirectUrl = $header['Location'];
        }
        return fileExists($redirectUrl);
    }
}
posted @ 2021-06-22 10:54  青柚  阅读(92)  评论(0编辑  收藏  举报