채택완료

curl 리디렉션 되는 곳의 이미지

2021-11-09 (화) 14:02:09 1,735
아래는 이미지를 저장하는 소스입니다.

그런데 제가 이미지를 가져올 곳은 
https://source.unsplash.com/category/nature/1600x900
요 주소로 들어가면 리디렉션이 되면서 랜덤으로 이미지를 보여주는 곳입니다.

이런 경우... curl 을 어떻게 수정하여 저장할 수 있을지 모르겠습니다 



- - - - - - - - - - - - - -


function FileSave($FileLink, $Path){
    $PhotoInfo = pathinfo($FileLink);
    $PhotoName[] = md5($PhotoInfo['filename'])."_".time();
    $PhotoName[] = $PhotoInfo['extension'];
    $PhotoName = implode(".", $PhotoName);
    $Curl = curl_init();
    curl_setopt($Curl, CURLOPT_URL, $FileLink);
    curl_setopt($Curl, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($Curl, CURLOPT_SSL_VERIFYPEER, false); 
 curl_setopt($Curl, CURLOPT_SSL_VERIFYHOST, 0); 
    $Result = curl_exec($Curl);
    $FileSave = fopen($Path.$PhotoName, 'a');
    fwrite($FileSave, $Result);
    fclose($FileSave);
 return $PhotoName;
}
echo FileSave("가져올 이미지의 주소", G5_PATH."/");
|

답변 1개 / 댓글 1개

채택된 답변
+20 포인트
Copy
function get_url($url)
{
    
    $ch=curl_init();
    curl_setopt($ch,CURLOPT_URL,$url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch,CURLOPT_HEADER,1);
    $result=curl_exec($ch);
    $code=curl_getinfo($ch,CURLINFO_HTTP_CODE);
    
    if($code!='404' && $result)
    {
        $tmp = explode("Location: ", $result);
        $tmp = explode("\n", $tmp[1]);
        $tmp = preg_replace('/\r\n|\r|\n/','',$tmp[0]);
        
        $new_url = $tmp;
        
        return $new_url;
    }
    curl_close($ch);
}

저는 이렇게 해서 최종 url 를 추출 합니다.

답변에 대한 댓글 1개

오옹 마이존 형님 한수 배워갑니다 감 잡았습니다

답변을 작성하려면 로그인이 필요합니다.