PHP はリモート画像のダウンロードとローカルへの保存を実装します

陈政宽~
リリース: 2023-03-11 18:54:01
オリジナル
1405 人が閲覧しました

この記事では、主に PHP でリモート画像をダウンロードする方法を紹介します。編集者が非常に優れていると考えたので、参考として共有します。エディターをフォローして見てみましょう

PHP を使用して単純なクローラーを作成する場合、リモート画像をダウンロードする必要があることがよくあります。そのため、この必要性を単純に実装しましょう。

1.curlを使用します

たとえば、次の2つの画像があります:

$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); }
ログイン後にコピー

この方法で、基本的なリモート画像のダウンロードは OK です。

以上がこの記事の全内容です。皆様の学習に役立つことを願っております。また、皆様も Script House をサポートしていただければ幸いです。

以上がPHP はリモート画像のダウンロードとローカルへの保存を実装しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!