phpのfile_get_contents関数で画像を読み込む方法はどうですか?
画像を読み込むには、file_get_contents関数を使用し、画像のURLアドレスを引数として指定する必要があります。以下に示すサンプルコードを参考にしてください。
$imageUrl = 'https://example.com/image.jpg';
$imageData = file_get_contents($imageUrl);
// 保存图片到本地文件
file_put_contents('path/to/save/image.jpg', $imageData);
上記の例で、$imageUrlは画像のURL、$imageDataはfile_get_contents関数で取得した画像データです。その後、file_put_contents関数を使用して画像データをローカルファイルに保存することができます。保存したい画像のローカルパスに”path/to/save/image.jpg”を置き換えてください。
file_get_contentsで大きなファイルやリモートサーバー上の画像を読み込むと、メモリーがオーバーフローする可能性があります。このような場合は、stream_context_create関数とfopen関数を使用して処理することを考えてください。以下はstream_context_createとfopen関数を使用した例です:
$imageUrl = 'https://example.com/image.jpg';
$context = stream_context_create(['http' => ['user_agent' => 'Mozilla/5.0 (Windows NT 6.1; rv:35.0) Gecko/20100101 Firefox/35.0']]);
$imageFile = fopen('path/to/save/image.jpg', 'w');
stream_copy_to_stream(fopen($imageUrl, 'r', false, $context), $imageFile);
fclose($imageFile);
前の例では、stream_context_create関数を使用して、ユーザーエージェント情報が含まれたコンテキストを作成し、一部のリモートサーバーによるアクセス制限を回避します。次に、fopen関数を使用してローカルファイルとリモート画像ファイルを開き、stream_copy_to_stream関数を使用してリモート画像のコンテンツをローカルファイルにコピーします。最後に、ファイルハンドルを閉じます。また、path/to/save/image.jpgを保存したいローカルパスに置き換えてください。