>  기사  >  백엔드 개발  >  PHP에서 네트워크 이미지를 다운로드하는 데 일반적으로 사용되는 세 가지 방법 요약

PHP에서 네트워크 이미지를 다운로드하는 데 일반적으로 사용되는 세 가지 방법 요약

齐天大圣
齐天大圣원래의
2020-05-03 09:11:332743검색

다음은 PHP를 사용하여 온라인 이미지를 다운로드하는 데 일반적으로 사용되는 세 가지 방법입니다. 물론 이 세 가지 방법이 만능은 아닙니다. 네트워크 문제나 온라인 이미지 권한 문제로 인해 다운로드가 실패하는 경우도 있습니다(대형 사이트에는 일반적으로 리칭 방지 보호 기능이 있습니다).

실제 업무에서 자주 사용되는 단어를 살펴보겠습니다.

방법 1

장점: 간단합니다.

단점: 상대적으로 효율성이 낮습니다.

이 방법에 사용되는 주요 기능은 file_get_contentsfile_put_contents 두 가지입니다. 파일에 넣으세요. file_get_contents以及file_put_contents这种方法非常简单,通俗的讲就是先get到图片内容,然后put到文件中。

代码如下:

<?php
$imgFile = &#39;http://***.***.***/Uploads/20200424/1587710975CZlGeB.jpg&#39;;
// 获取文件名
$imgName = trim(strrchr($imgFile, &#39;/&#39;), &#39;/&#39;);
file_put_contents($imgName, file_get_contents($imgFile));

方法二

个人用的最多的方法。

缺点:稍微复杂点,要掌握curl的用法,需要知道curl一些选项的含义。

优点:效率高,很容易支持https;

curl非常强大,也是phper必须掌握的技能,所以建议大家使用该方法。该方法的思路是,使用curl工具获取远程图片的信息,然后将该信息保存到本地的文件中。这里我没有对curl_exec

코드는 다음과 같습니다.
$imgFile = &#39;https://***.***.***/uploads/20200121/bd873d80da430f8b74ef1ee751945595.png&#39;;
function down_img($imgUrl)
{
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $imgUrl);    // 请求地址
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);    // 不直接输出信息
    // 可以访问https请求
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
    // 执行curl并获取数据
    $results = curl_exec($ch);
    $imgName = trim(strrchr($imgUrl, &#39;/&#39;), &#39;/&#39;);
    $fp = fopen($imgName, &#39;w&#39;);
    fwrite($fp, $results);
      // 执行完毕后,记得关闭资源
    curl_close($ch);
}
down_img($imgFile);

방법 2

개인이 가장 많이 사용하는 방법입니다.

단점: curl 사용법을 익히려면 일부 컬 옵션의 의미를 알아야 합니다.

장점: 높은 효율성, https 지원 용이

curl은 매우 강력하고 PHPer가 마스터해야 하는 기술이므로 모든 사람이 이 방법을 사용하는 것이 좋습니다. 이 방법의 아이디어는 컬 도구를 사용하여 원격 이미지의 정보를 얻은 다음 해당 정보를 로컬 파일에 저장하는 것입니다. 게을러서 여기에서는 curl_exec의 결과를 확인하지 않았습니다.

🎜 컬의 사용법에 대해 더 알고 싶으시면 PHP 중국어 홈페이지에서 컬을 검색하시면 됩니다. 🎜🎜
<?php
$imgFile = &#39; 
$imgName = trim(strrchr($imgFile, &#39;/&#39;), &#39;/&#39;);

// 读取远程图片资源
$source = fopen($imgFile, &#39;rb&#39;);
// 创建本地文件资源句柄,用于保存图片信息
$down   = fopen($imgName, &#39;wb&#39;);

while ($chunk = fread($source,1024)){
    fwrite($down, $chunk, 1024);
}
fclose($source);
fclose($down);
🎜방법 3🎜🎜이 방법도 매우 간단하며 PHP 파일 관리 지식을 사용합니다. 먼저 두 개의 파일 핸들을 만듭니다. 하나는 원격 이미지의 이진 정보를 읽기 위한 것이고 다른 하나는 이미지 정보를 저장하기 위한 것입니다. 🎜rrreee🎜요약🎜🎜개인 작업에서는 아래의 첫 번째와 두 번째 방법을 주로 사용합니다. 한 가지 더, 사진을 다운로드하는 것은 중요하지 않지만, 다운로드한 사진을 어떻게 사용하는지 주의 깊게 살펴보아야 합니다. 잘못 사용할 경우 침해 문제가 발생할 수 있습니다. 🎜

위 내용은 PHP에서 네트워크 이미지를 다운로드하는 데 일반적으로 사용되는 세 가지 방법 요약의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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