PHP 判断远程文件是否存在

742 阅读1分钟
is_file()
file_exists()

这 2 个函数,都不能检测到 "远程文件" 是否存在

同样的实现方式很多,这里先写上几种:
	1>fopen
		$url = '';
		$handle = @fopen($url, 'r');
		if($handle){
			// 存在
		}else{
			// 不存在
		}

	2>curl
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_NOBODY, true);		// 注意:不请求内容,优化
        curl_setopt($ch, CURLOPT_FAILONERROR, true);
        curl_setopt($ch, CURLOPT_TIMEOUT, 10);
        $res = curl_exec($ch);
        if ($res !== false){ 
        	// 存在
        }else{
        	// 不存在
        }
        curl_close($ch);

    3>get_headers
    	$header_response = @get_headers($url, 1);
    	if ( strpos( $header_response[0], "404" ) !== false ){
    		// 不存在
    	}else{
    		// 存在
    	}

3个都测试了下,速度差不了多少...