ホームページ > バックエンド開発 > PHPの問題 > PHPで外部画像を取得する3つの方法を紹介

PHPで外部画像を取得する3つの方法を紹介

PHPz
リリース: 2023-03-31 09:32:48
オリジナル
1466 人が閲覧しました

Web サイト開発では、多くの場合、Web サイトに表示する外部画像を取得する必要があります。 PHP を使用して開発する場合、外部イメージをどのように取得するかがよく問題になります。この記事では、外部画像を取得するいくつかの方法を紹介しますので、皆様のお役に立てれば幸いです。

方法 1: file_get_contents

file_get_contents 関数は、ファイルの内容を読み取るために使用できる PHP の組み込み関数です。最初のパラメータは取得するファイル パスで、2 番目のパラメータはファイルの内容全体を文字列に読み取るかどうかを示すブール値パラメータです。画像の読み込みも同様の原理で、ファイルパスを画像のURLアドレスに設定するだけです。サンプル コードは次のとおりです。

$url = 'http://example.com/image.jpg'; // 图片 URL 地址
$img = file_get_contents($url);       // 读取图片
file_put_contents('image.jpg', $img); // 将图片保存到本地文件
ログイン後にコピー

このメソッドはコードが少なく、シンプルで理解しやすいですが、パフォーマンスは十分ではありません。

方法 2:curl

curl は、Web ページのコンテンツを取得するために使用できる、一般的に使用されるネットワーク リクエスト ライブラリです。写真の取得にも使用できます。コード例は次のとおりです。

$url = 'http://example.com/image.jpg'; // 图片 URL 地址
$ch = curl_init();                     // 创建 curl 句柄
curl_setopt($ch, CURLOPT_URL, $url);   // 设置 curl 请求的 URL
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);  // 不将 curl 结果直接输出到浏览器
$img = curl_exec($ch);                 // 获取图片内容
curl_close($ch);                       // 关闭 curl 句柄
file_put_contents('image.jpg', $img);  // 将图片保存到本地文件
ログイン後にコピー

このメソッドは file_get_contents よりもパフォーマンスが高くなりますが、コード量が比較的多くなります。

方法 3: リモート ダウンロード ツール

wget や aria2 などのリモート ダウンロード ツールを使用することもできます。これらのツールは、コマンド ラインを通じて指定されたイメージをダウンロードし、ローカル ファイルに保存できます。たとえば、wget コマンドを使用してイメージをダウンロードします。

wget http://example.com/image.jpg -O image.jpg
ログイン後にコピー

この方法では、対応するダウンロード ツールのインストールが必要ですが、PHP 開発者にとっては使いにくい可能性があります。

概要

外部画像の取得は一般的な問題であり、PHP で開発する場合、file_get_contents、curl、またはいくつかのリモート ダウンロード ツールを選択してこれを実現できます。実際のニーズに基づいて方法を選択してください。

外部画像を入手する場合は、著作権の問題に注意し、違法にダウンロードして使用しないように注意してください。同時に、外部イメージを頻繁に取得するアプリケーションの場合は、ネットワークとサーバーのリソースの過剰な消費を避けるためにキャッシュ メカニズムを追加する必要があります。

以上がPHPで外部画像を取得する3つの方法を紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート