PHP를 사용하여 간단한 크롤러를 만들 때 원격 이미지를 다운로드해야 하는 경우가 종종 있으므로 이를 구현해 보겠습니다. 이 글은 주로 PHP에서 원격 사진을 다운로드하는 방법을 소개합니다. 편집자는 이것이 꽤 좋다고 생각합니다. 이제 여러분에게 공유하고 참고할 수 있기를 바랍니다.
1. 컬 사용
예를 들어 다음 두 장의 사진이 있습니다.
$images = [ 'https://dn-laravist.qbox.me/2015-09-22_00-17-06j.png', 'https://dn-laravist.qbox.me/2015-09-23_00-58-03j.png' ];
첫 번째 단계에서는 가장 간단한 코드 구현을 직접 사용할 수 있습니다.
function download($url, $path = 'images/') { $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); $filename = pathinfo($url, PATHINFO_BASENAME); $resource = fopen($path . $filename, 'a'); fwrite($resource, $file); fclose($resource); }
그런 다음 원격 사진을 다운로드할 때 사용할 수 있습니다. 이렇게:
foreach ( $images as $url ) { download($url); }
2. 클래스 캡슐화
아이디어를 명확히 한 후 이 기본 기능을 클래스로 캡슐화할 수 있습니다.
class Spider { public function downloadImage($url, $path = 'images/') { $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); $filename = pathinfo($url, PATHINFO_BASENAME); $resource = fopen($path . $filename, 'a'); fwrite($resource, $file); fclose($resource); } }
이제 다음과 같이 약간 최적화할 수도 있습니다.
public function downloadImage($url, $path='images/') { $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, $path); } private function saveAsImage($url, $file, $path) { $filename = pathinfo($url, PATHINFO_BASENAME); $resource = fopen($path . $filename, 'a'); fwrite($resource, $file); fclose($resource); }
캡슐화한 후 이를 클래스로 변환하면 다음과 같이 이미지를 다운로드하는 코드를 호출할 수 있습니다.
$spider = new Spider(); foreach ( $images as $url ) { $spider->downloadImage($url); }
이런 식으로 기본 원격 이미지 다운로드는 괜찮습니다.
관련 권장사항:
php는 원격 이미지의 크기와 크기를 얻는 효율적인 방법을 구현합니다.
php는 원격 이미지를 로컬 개발 예제로 다운로드하여 공유합니다.
PHP를 사용하여 원격 이미지 수집을 로컬 방법으로 구현합니다.
위 내용은 PHP는 원격 이미지를 다운로드하여 로컬 코드에 저장합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!