Beim Versuch, ein als BLOB in einer MySQL-Datenbank gespeichertes Bild anzuzeigen, stoßen Entwickler häufig auf ein Problem, bei dem Text zuvor wiedergegeben wurde oder nachdem der Header des Bildes dazu führt, dass das Bild falsch angezeigt wird.
Das Problem entsteht, weil der Webbrowser jeglichen Text, der außerhalb des Bilddatenstroms wiedergegeben wird, als Teil des Bildes interpretiert. Dies liegt daran, dass die Header- und Bilddaten kontinuierlich und ohne Unterbrechung geliefert werden müssen.
Um andere Elemente und das Bild zusammen ohne Unterbrechung anzuzeigen, können Sie die Bilddaten konvertieren in base64 und betten Sie es in ein Etikett. Mit diesem Ansatz können Sie Text und andere Elemente in die HTML-Ausgabe einschließen, während das Bild weiterhin angezeigt wird.
Hier ist eine überarbeitete Version des Codes:
<code class="php">echo '<img src="data:image/jpeg;base64,' . base64_encode( $row['imageContent'] ) . '" />'; echo 'Hello world.';</code>
Hinweis: Mit dieser Lösung können Sie zwar sowohl das Bild als auch anderen Text anzeigen, sie ist jedoch nicht ideal, da sie nicht zwischengespeichert werden kann und auf Mobilgeräten langsam sein kann. Weitere Informationen zu Daten-URIs finden Sie in der Caniuse-Dokumentation.
Das obige ist der detaillierte Inhalt vonWie vermeide ich Anzeigeprobleme beim Echo von Text um Bilder herum, die als BLOBs in MySQL gespeichert sind?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!