Textdatei zu Bild

IR-Bastian

Mitglied
Hallo zusammen,

nachdem Ihr mir letze Woche helfen konntet einen gordischen Knoten zu zerschlagen, hier wieder eine Frage an euch:

Hier bei mir auf der Arbeit haben wir eine (SQL)Datenbank in der die Bilder als Longvars abgespeichert werden. Zu bestimmten Zeiten werden bestimmte Daten davon, also auch Bilder in Textdateien exportiert, und dann von verschiedenen Anwedungen benutzt:

Die Textdatei hat dann diese Form, siehe auch Anhang(imgbig.txt):
PHP:
ID_PTE,GU_PTE
54985,,FFD.....87C3FAC0FFD9,


Nun habe ich zur Darstellung 2 Dateien:

imgshow.php in der nur dies steht.

PHP:
echo  '<img src="img.php">';

Und die img.php

PHP:
$lines = file('imgbig.txt', r);
$values = explode(',', $lines[1]);
echo pack('H*',$values[2]);

Mein Problem ist dass es nicht funktioniert. Wenn ich anstatt dem $values[2], den String der das Bild enthält direkt hineinkopiere in die Funktion pack geht es.

Zudem öffnet sich die txt-Datei manchmal als komplett Hexadezimal(manchmal heisst mit bestimmten Texteditoren.)

Gibt es vielleicht ein bessere Art die Textdatei zu öffnen?
Kann mir einer von euch helfen! Ich krüppel daran schon richtig lang.(an Headern liegt es IMO nicht).
Danke!

Neue Info: Wenn ich den String direkt über die Textdatei ausgeben lasse, ist jedes zweite Zeichen ein "?".
Das könnte doch so eine Unicodegesschichte sein? Wie krieg ich denn das gebacken?
 

Anhänge

Zuletzt bearbeitet:
Das könnte doch so eine Unicodegesschichte sein.
Scheint es, mein Editor sagt, es ist Unicode, und wenn er die Datei zu ASCII konvertiert, sehe ich die Schürzen deiner Oma :-)

Ich hab per PHP schlicht alles, was nicht a-z0-9 ist, aus dem String entfernt per preg_replace(), dann ging es auch.
Code:
$values[2]=preg_replace('@[^a-f\d]@is','',$values[2]);
 
Genauer gesagt ist es UTF-16 mit Little-Endian-Reihenfolge, zumindest deuten die ersten beiden Byte darauf hin.
 
Ihr seit der Hammer, wisst ihr das?

Danke! Das sind leider Kleidungsstücke die mein Arbeitgeber verkauft!
ÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖ! :)
 
Zurück