php curl 다운로드

운영자 | 기사입력 2025/02/24 [08:06]
PHP >
필자의 다른기사 보기 인쇄하기 메일로 보내기 글자 크게 글자 작게
php curl 다운로드
 
운영자   기사입력  2025/02/24 [08:06]
 function download_file_curl($url, $local_path) {
    $fp = fopen($local_path, 'w');
    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_FILE, $fp);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_exec($ch);
    curl_close($ch);
    fclose($fp);
    echo "파일을 다운로드했습니다: {$local_path}n";
}



<?php
function get_remote_filesize($url) {
    $headers = get_headers($url, 1);
    if (isset($headers["Content-Length"])) {
        return is_array($headers["Content-Length"]) ? end($headers["Content-Length"]) : $headers["Content-Length"];
    }
    return false;
}

function download_file($url, $local_path) {
    $file_data = file_get_contents($url);
    if ($file_data !== false) {
        file_put_contents($local_path, $file_data);
        echo "파일을 다운로드했습니다: {$local_path}n";
    } else {
        echo "다운로드 실패: {$url}n";
    }
}

function check_and_download($url, $local_path) {
    $remote_size = get_remote_filesize($url);
    if ($remote_size === false) {
        echo "외부 파일 크기를 확인할 수 없습니다.n";
        return;
    }

    if (file_exists($local_path)) {
        $local_size = filesize($local_path);
        if ($remote_size == $local_size) {
            echo "파일이 이미 최신 상태입니다.n";
            return;
        }
    }

    // 파일 크기가 다르면 다운로드
    download_file($url, $local_path);
}

// ???? 사용 예제
$url = "//www.example.com/sample.jpg"; // 외부 파일 URL
$local_path = "sample.jpg"; // 저장할 로컬 파일 경로

check_and_download($url, $local_path);
?>

트위터 트위터 페이스북 페이스북 카카오톡 카카오톡
기사입력: 2025/02/24 [08:06]  최종편집: ⓒ iwav
 
 
PHP 많이 본 기사