Problem mit String und Hex

abanta

Mitglied
Hallo ich habe folgendes Skript:
Code:
<?
function string_to_hex($string){
    if($string!==""){
        $ausHex = "";
            $ausHex.="x".dechex(strlen($string)+1);
        return $ausHex;
    }
}

$Beschreibung = "test1";
$Beschreibung1 = string_to_hex("$Beschreibung");
$brack1a=" xFFxD8xFFxE1x00x2Cx45x78x69x66x00x00x49x49x2Ax00x08x00x00x00x01x00x0Ex01x02x00";
$brack1a.= "$Beschreibung1";
Ich will an $brack1a die errechnete Hexzahl aus $Beschreibung1 anhängen. (Ich hoffe das ist verständlich).
Der Rückgarbewert ist in deisemfall \x6.
Wenn ich das in der vorm $brack1a.= "\x6"; mache geht es wunderbar aber bei $brack1a.= "$Beschreibung1"; hängt er das ganze als text an so das ich dann das ergebnis
FF D8 FF E1 00 2C 45 78 69 66 00 00 49 49 2A 00 08 00 00 00 01 00 0E 01 02 00 5c 78 36
bekomme und nicht
FF D8 FF E1 00 2C 45 78 69 66 00 00 49 49 2A 00 08 00 00 00 01 00 0E 01 02 00 06.

Kann mir jemand weiter helfen?
Danke
 
abanta hat gesagt.:
Ich will an $brack1a die errechnete Hexzahl aus $Beschreibung1 anhängen. (Ich hoffe das ist verständlich).
In Verbindung mit deinem Script nicht :confused:
Das gibt bei mir nämlich:
xFFxD8xFFxE1x00x2Cx45x78x69x66x00x00x49x49x2Ax00x08x00x00x00x01x00x0Ex01x02x00x6
... was ja auch logisch ist.
 
wenn du xFFxD8xFFxE1x00x2Cx45x78x69x66x00x00x49x49x2Ax00x08x00x00x00x01x00x0Ex01x02x00 als String betrachtest hast du recht aber wenn du das ganze als Hex betrachtest kommt da FF D8 FF E1 00 2C 45 78 69 66 00 00 49 49 2A 00 08 00 00 00 01 00 0E 01 02 00 5c 78 36 bei raus.

Und genau das ist das problem.
 
PHP:
$brack1a=" xFFxD8xFFxE1x00x2Cx45x78x69x66x00x00x49x49x2Ax00x08x00x00x00x01x00x0Ex01x02x00";
Spätestens die " machen daraus aber einen String.
Vieleicht holst du mal etwas weiter aus und verrätst uns was das ganze soll.

Einen zweistelligen Hexwert bekommst du so:
PHP:
function string_to_hex($string){
    if($string!==""){
        $ausHex = sprintf ("%02X", (strlen($string)+1));
        return $ausHex;
    }
}
is halt dann auch wieder ein String
 
Das gesamte Script soll einen bestimmten Teil einer JPG Date ersetzen.
Die Datei wird eingelesen dann zerlegt und dann mit dem neuen Code wieder zusammen gesetzt. Das ganze dient schluss endlich dazu dan man einem belibigen Text aber Max. ff zeichen als beschreibung in den Header des bildes einfügen kann. An der stelle wo ich jetzt den rückgabewert von string_to_hex ein füge muss die länge des eingegeben Textes (hier "test1") stehn und das ganze als Hex Wert.

Code:
 $brack1a="xFFxD8xFFxE1x00x2Cx45x78x69x66x00x00x49x49x2Ax00x08x00x00x00x01x00x0Ex01x02x00";

scheint nicht das problem zusein und das einstelliger oder zweistelliger Hexwert scheint egal zusein zumindest liefert \x6 das selbe ergebnis wie \x06. Aber trozdem danke macht das ganze lesbarer.

Mir scheint das problem darin zu liegen, das problem ist das er den Rückgarbewert nicht als Hex interprtiert.
 
Naja, irgendwie musst du ja wieder ein jpg draus machen, vieleicht geht das ja mit fwrite() oder so.
Vieleicht auch mit einem String der halt richtig formatiert ist ...

Ich würd mal einen neuen Tread aufmachen mit einem aussagekräftigen Betreff um das Grundsätzliche zu klären.
 
Zurück