PHPで画像を取得、保存する方法

  • ガイド ( How to )
  • ありがとう数:0

はじめに

Photo by 信長JAPAN
PHPで画像を取得、保存する方法です

STEP1とりあえずこれでできます。


しかし、これだと画像を入れた変数$tempが文字列として出力されますが、 1行目の、echo "あいうえお";をコメントアウトするとブラウザに画像が表示されるだけで、fopen,fwriteはきちんと処理されているのにechoの出力が無視されます。

STEP2

echo ""; echo ""; if(is_string($temp)) echo "STRING"; も処理されてないことが 画像は echo ""; で表示されているのではなく echo $temp; で表示されています。

STEP3

ついでに保存されたファイルではなくてブラウザに表示されている画像ファイルを右クリックで保存してバイナリエディタでもテキストエディタでもいいから開いて最後の部分をみてみましょう。 STRINGが見事に埋め込まれているから >で「Content-type」が(text/htmlでなく)image/gifになっていると思います。

STEP4

ここら辺の挙動も確認してみると自分の開発環境だと変なんですよね。
header("Content-Type: image/gif"); を入れる入れないで見た場合 右クリックでの保存時とプロティ ・入れた場合 ファイル名:●● ファイルの種類:GIFとBMP プロパティの種類:GIF イメージ ・入れなかった場合 ファイル名:●●.htm ファイルの種類GIFとBMP プロパティの種類:HTML Document ということでIEだと勝手にヘッタから解釈してやってくれています。

まとめ

だからFirefoxではheader("Content-Type: image/gif");を入れないと echo $temp;をそのままの文字列として出力しましょう。

このユーザなら私の疑問や悩みを解決してくれそうと思ったら、
質問への回答をリクエストすることができます。

関連するタグ

特集


感謝でトクする時代へ!感謝経済に参加しよう!

ピックアップ

ページ先頭へ