Zitat:
Zitat von PHP-Neuling
... ich ... möchte wissen, wie man „Longblob“ in „Image“ umwandelt.
|
Bitte erklär doch mal genauer, was du unter "Image" verstehst.
Dein Script holt die Binär-Daten einer Grafik-Datei (JPEG-Format) aus der Datenbank und schiebt sie in die Standardausgabe. Die Anzeige in Textform ergibt dann den Zeichensalat, der typisch für Binärdaten ist.
Wolltest du die Grafik-DATEI direkt ausgeben?
Oder wolltest du die Grafik-DATEN bearbeiten? Für letzteres benötigst du die (von dir schon verlinkten) Bildbearbeitungs-Funktionen. Die Funktion imagecreatefromstring() ist ein Anfang. Sie erzeugt aus einem String (der die Binärdaten einer Grafikdatei enthält) eine so genannte Image-Resource, die man bearbeiten kann.
Zitat:
|
Ich habe Bilder in MySQL Datenbank gespeichert und will sie gerne ausgeben, aber es erscheint eine lange Kette von Sonderzeichen.
|
Das sind die Binärdaten. Willst du die von einem Webserver direkt an einen Browser schicken, musst du allen umgebenden Text weglassen und dem Browser sagen, welches Format du schickst. Die PHP-Funktion getimagesize() sagt dir die richtigen Werte. Ein sehr einfaches Script, was dies alles leistet, könnte so aussehen:
PHP-Code:
$tmp_dir = sys_get_temp_dir(); // Verzeichnis fuer temporaere Dateien suchen
$tmp_path = tempnam($tmp_dir, ''); // darin eine temporaere Datei erzeugen
file_put_contents($tmp_path, $img_data); // die Grafik-Daten da reinschreiben
$img_info = getimagesize($tmp_path); // Infos ueber das Grafikformat holen
if (!is_array($img_info)) {
die('getimagesize() could not extract image info data');
}
// sagt dem Browser, welche Art von Grafikdaten geliefert wird
header('Content-Type: ' . $img_info['mime']);
$file = fopen($tmp_path, 'rb'); // Datei zum Lesen oeffnen
fpassthru($file); // die Daten senden
fclose($file); // Datei wieder schlieszen (sonst laesst sie sich nicht loeschen)
unlink($tmp_path); // Datei loeschen
Übrigens: PHP-Quellcode lässt sich hier prima (mit Syntax-Highlighting und all dem ganzen Kram) darstellen, wenn er zwischen [рhр]-Tags eingebaut wird. Damit sparst du dir das ganze COLOR- und FONT-Gebastel ...