CURL PHP를 통해 이미지 파일 다운로드
URL에서 이미지 파일을 가져오고 저장하기 위해 CURL PHP는 편리한 솔루션을 제공합니다. 그러나 특정 코딩 문제로 인해 시도가 방해받을 수 있습니다. 이 코드 조각을 분석해 보겠습니다.
function GetImageFromUrl($link) { $ch = curl_init(); curl_setopt($ch, CURLOPT_POST, 0); curl_setopt($ch, CURLOPT_URL, $link); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $result = curl_exec($ch); curl_close($ch); return $result; } $sourcecode = GetImageFromUrl($iticon); $savefile = fopen(' /img/uploads/' . $iconfilename, 'w'); fwrite($savefile, $sourcecode); fclose($savefile);
문제 및 해결 방법:
잘못된 파일 경로:
파일 저장 문의 경로에 공백(' ')이 잘못 포함되어 있습니다. 다음으로 바꾸세요:
$savefile = fopen('img/uploads/' . $iconfilename, 'w');
누락된 기능:
코드는 이미지이지만 이진 데이터를 설명하지 않습니다. 적절한 이미지 저장을 보장하려면 다음을 추가하세요:
curl_setopt($ch, CURLOPT_BINARYTRANSFER, 1);
기존 파일 덮어쓰기:
코드는 동일한 이름을 가진 기존 파일을 덮어씁니다. 이를 방지하려면 다음을 사용하세요.
if (file_exists($savefile)) { unlink($savefile); }
최적화된 코드:
function grab_image($url, $saveto) { $ch = curl_init($url); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_BINARYTRANSFER, 1); $raw = curl_exec($ch); curl_close($ch); if (file_exists($saveto)) { unlink($saveto); } $fp = fopen($saveto, 'x'); fwrite($fp, $raw); fclose($fp); }
추가 참고 사항 :
PHP 구성에서 파일(php.ini)에서 Allow_url_fopen이 활성화되어 있는지 확인하세요.
위 내용은 PHP에서 cURL을 사용하여 이미지를 효율적으로 다운로드하고 저장하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!