>백엔드 개발 >PHP 문제 >PHP로 사진을 다운로드하는 방법

PHP로 사진을 다운로드하는 방법

藏色散人
藏色散人원래의
2021-03-11 09:33:3313890검색

PHP에서 이미지를 다운로드하는 방법: 1. "file_get_contents"를 사용하여 이미지를 다운로드합니다. 2. CURL을 사용하여 이미지를 다운로드합니다. 3. fopen을 사용하여 이미지를 다운로드합니다.

PHP로 사진을 다운로드하는 방법

이 문서의 운영 환경: Windows 7 시스템, PHP 버전 7.1, DELL G3 컴퓨터

PHP를 사용하여 원격 이미지를 다운로드하는 여러 방법 요약

이 문서에서는 다음에서 이미지를 다운로드하는 3가지 방법을 보여줍니다. 원격 URL을 생성하고 로컬에 저장합니다. file_get_contents, 컬 및 fopen을 포함한 파일의 메소드입니다.

1. file_get_contents

function dlfile($file_url, $save_to)
{
 $content = file_get_contents($file_url);
 file_put_contents($save_to, $content);
}

사용 2. CURL

function dlfile($file_url, $save_to)
{
 $ch = curl_init();
 curl_setopt($ch, CURLOPT_POST, 0); 
 curl_setopt($ch,CURLOPT_URL,$file_url); 
 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
 $file_content = curl_exec($ch);
 curl_close($ch);
 $downloaded_file = fopen($save_to, 'w');
 fwrite($downloaded_file, $file_content);
 fclose($downloaded_file);
}

사용 3. fopen

function dlfile($file_url, $save_to)
{
 $in=  fopen($file_url, "rb");
 $out=  fopen($save_to, "wb");
 while ($chunk = fread($in,8192))
 {
 fwrite($out, $chunk, 8192);
 }
 fclose($in);
 fclose($out);
}

사용 전체 다운로드 및 저장 방법(출력 로그 라인 삭제 가능):

    private function downloadImage($url)
    {
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
        $file = curl_exec($ch);
        curl_close($ch);
        $this->saveAsImage($url, $file);
    }
    private function saveAsImage($url, $file)
    {
        $filename = pathinfo($url, PATHINFO_BASENAME);
        $dirname = pathinfo(parse_url($url, PHP_URL_PATH), PATHINFO_DIRNAME);
        $path =  'public' . $dirname . '/';
        $fullpath =  'public' . $dirname . '/' . $filename;
        // 如果目录不存在,则创建
        if(!is_dir($path)) {
            mkdir($path, 0777, true);
        }
        if(file_exists($fullpath)) {
            //$this->output->writeln("【已存在】输出路径" . $fullpath);
        } else {
            $resource = fopen($fullpath, 'a');
            fwrite($resource, $file);
            fclose($resource);
            //$this->output->writeln("【已保存】输出路径" . $fullpath);
        }
    }

[추천 학습: "PHP 비디오 튜토리얼 》】

위 내용은 PHP로 사진을 다운로드하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.