さて...あなたが説明したことをなぜそれが行うのかに対する答えは、header()関数を使用しているためです。 PHPでは、ヘッダー呼び出しの前に何も印刷できません。これは、Webサーバーにコンテンツヘッダーを準備するように指示するためです。通常、これらはすべてのコンテンツに完全に取って代わります。
次に、画像をデータベースに保存することは、通常、2つの理由から悪い考えです。
- パフォーマンスとレンダリングに大きな影響を与えます。
- 画像自体を表示するだけでなく、BLOBデータをレンダリングするコードを作成する必要があります。
データベース駆動型の画像表示に適した方法は、画像をディレクトリに保存し、それらのファイル名をデータベースに保存することです。これで、画像を表示する場合は、表示するファイル名についてDBをポーリングし、そのファイル名をHTML属性に含めるだけです。
実行もはるかに高速です。
また、スクリプトで実際にレンダリングを実行したい場合は、そのスクリプトでヘッダーを定義し、ヘッダーを定義した後に画像BLOBをエコーまたは印刷する必要があることを指摘しておきます。
htmlタグを作成するときは、src属性で、次のようにすることに注意してください。
<img src="image.php?id=<some_number>">
これで、image.phpファイルが画像データをタグに吐き出します。