ホームページ  >  記事  >  バックエンド開発  >  PHP でネットワーク イメージをダウンロードするために一般的に使用される 3 つの方法の概要

PHP でネットワーク イメージをダウンロードするために一般的に使用される 3 つの方法の概要

齐天大圣
齐天大圣オリジナル
2020-05-03 09:11:332838ブラウズ

PHP を使用してネットワーク イメージをダウンロードするために一般的に使用される 3 つの方法を次に示します。もちろん、これら 3 つの方法が万能というわけではなく、ネットワークの問題やオンライン画像の許可の問題 (大手サイトには通常、リーチ防止保護が施されています) が原因でダウンロードが失敗することがあります。

実際の仕事でもよく使われるので見てみましょう。

方法 1

利点: シンプル。

欠点: 効率が比較的低い。

このメソッドでは 2 つの主な関数が使用されます file_get_contentsfile_put_contentsこのメソッドは非常に単純です。平たく言えば、最初に画像コンテンツを取得することを意味します。それをファイルに入れます。

コードは次のとおりです。

<?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));

方法 2

個人が最もよく使用する方法。

欠点: もう少し複雑 curl の使い方をマスターするには、いくつかのcurlオプションの意味を知る必要があります。

利点: 高効率、サポートが簡単 https;

curl は非常に強力であり、PHPer が習得する必要があるスキルであるため、全員がこの方法を使用することをお勧めします。この方法の考え方は、curl ツールを使用してリモート イメージの情報を取得し、その情報をローカル ファイルに保存することです。面倒なので、ここでは curl_exec の結果を検証しませんでした。

curl の使用法について詳しく知りたい場合は、PHP 中国語 Web サイトで「curl」を検索してください。

$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);

方法 3

この方法も非常に簡単で、PHP ファイル管理の知識を使用します。まず、2 つのファイル ハンドルを作成します。1 つはリモート イメージのバイナリ情報を読み取るためのもので、もう 1 つはイメージ情報を保存するためのものです。

<?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);

概要

以下の 1 つ目と 2 つ目の方法は、主に個人の仕事で使用されます。もう一つ、写真をダウンロードすることは問題ありませんが、ダウンロードした写真の使用方法に注意する必要があります。誤って使用すると、権利侵害の問題が発生する可能性があります。

以上がPHP でネットワーク イメージをダウンロードするために一般的に使用される 3 つの方法の概要の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。