PHP を使用してネットワーク イメージをダウンロードするために一般的に使用される 3 つの方法を次に示します。もちろん、これら 3 つの方法が万能というわけではなく、ネットワークの問題やオンライン画像の許可の問題 (大手サイトには通常、リーチ防止保護が施されています) が原因でダウンロードが失敗することがあります。
実際の仕事でもよく使われるので見てみましょう。
利点: シンプル。
欠点: 効率が比較的低い。
このメソッドでは 2 つの主な関数が使用されます file_get_contents
と file_put_contents
このメソッドは非常に単純です。平たく言えば、最初に画像コンテンツを取得することを意味します。それをファイルに入れます。
コードは次のとおりです。
<?php $imgFile = 'http://***.***.***/Uploads/20200424/1587710975CZlGeB.jpg'; // 获取文件名 $imgName = trim(strrchr($imgFile, '/'), '/'); file_put_contents($imgName, file_get_contents($imgFile));
個人が最もよく使用する方法。
欠点: もう少し複雑 curl
の使い方をマスターするには、いくつかのcurlオプションの意味を知る必要があります。
利点: 高効率、サポートが簡単 https;
curl は非常に強力であり、PHPer が習得する必要があるスキルであるため、全員がこの方法を使用することをお勧めします。この方法の考え方は、curl ツールを使用してリモート イメージの情報を取得し、その情報をローカル ファイルに保存することです。面倒なので、ここでは curl_exec
の結果を検証しませんでした。
curl の使用法について詳しく知りたい場合は、PHP 中国語 Web サイトで「curl」を検索してください。
$imgFile = 'https://***.***.***/uploads/20200121/bd873d80da430f8b74ef1ee751945595.png'; 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, '/'), '/'); $fp = fopen($imgName, 'w'); fwrite($fp, $results); // 执行完毕后,记得关闭资源 curl_close($ch); } down_img($imgFile);
この方法も非常に簡単で、PHP ファイル管理の知識を使用します。まず、2 つのファイル ハンドルを作成します。1 つはリモート イメージのバイナリ情報を読み取るためのもので、もう 1 つはイメージ情報を保存するためのものです。
<?php $imgFile = ' $imgName = trim(strrchr($imgFile, '/'), '/'); // 读取远程图片资源 $source = fopen($imgFile, 'rb'); // 创建本地文件资源句柄,用于保存图片信息 $down = fopen($imgName, 'wb'); while ($chunk = fread($source,1024)){ fwrite($down, $chunk, 1024); } fclose($source); fclose($down);
以下の 1 つ目と 2 つ目の方法は、主に個人の仕事で使用されます。もう一つ、写真をダウンロードすることは問題ありませんが、ダウンロードした写真の使用方法に注意する必要があります。誤って使用すると、権利侵害の問題が発生する可能性があります。
以上がPHP でネットワーク イメージをダウンロードするために一般的に使用される 3 つの方法の概要の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。