Problem mit String und Hex

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Problem mit String und Hex

    Hallo ich habe folgendes Skript:

    PHP-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="\xFF\xD8\xFF\xE1\x00\x2C\x45\x78\x69\x66\x00\x00\x49\x49\x2A\x00\x08\x00\x00\x00\x01\x00\x0E\x01\x02\x00";
    $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

  • #2
    Re: Problem mit String und Hex

    Bitte was ...?
    Ich verstehe nur Bahnhof, insbesondere bei deiner das-bekomme-ich, aber-das-will-ich-bekommen Beschreibung.

    Wieso notierst du schwachsinnigerweise einfache Variablen innerhalb von Anführungszeichen?

    Wieso benutzt du .=, um etwas an eine Variable $ausHex anzuhängen, die du in der Zeile davor erst mit = "" initialisiert hast?
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Ehrlich gesagt blicke ich bei deinem Hex-Gewurschtel nicht so richtig durch (liegt wohl daran, daß ich Sinn und Zweck dieses Scripts nicht kenne).
      Wenn ichs jedoch so, wie du's gepostet hast, bei mir laufen lasse und anschließend $brack1a ausgebe, bekomme ich folgendes:

      PHP-Code:
      xFFxD8xFFxE1x00x2Cx45x78x69x66x00x00x49x49x2Ax00x08x00x00x00x01x00x0Ex01x02x00x6 
      Also außer, daß bei der 6 am ende keine 0 davor steht, doch eigentlich dein Wunschergebnis, oder? Jedenfalls kein 5c 78 36!

      "...vielleicht stehe ich vor dir und du erkennst mich nicht. Spielt das eine Rolle? Wir sah'n ins gleiche Licht..."

      Kommentar


      • #4
        Wieso benutzt du .=, um etwas an eine Variable $ausHex anzuhängen, die du in der Zeile davor erst mit = "" initialisiert hast?
        Gute fage ist ja völlig unnötig.

        Original geschrieben von Lodi

        PHP-Code:
        xFFxD8xFFxE1x00x2Cx45x78x69x66x00x00x49x49x2Ax00x08x00x00x00x01x00x0Ex01x02x00x6 
        Also außer, daß bei der 6 am ende keine 0 davor steht, doch eigentlich dein Wunschergebnis, oder? Jedenfalls kein 5c 78 36!

        ob x6 oder x06 ist recht egal.
        Ich bekomme aber nur x6 wenn ich
        PHP-Code:
        $brack1a.= "\x6"
        Der Hex Wert ist aber abhängig von der zeichenzahl von $Beschreibung des wegen lasse ich die Anzahl der Zeichen in der Funktion string_to_hex zählen und wandele das ergebnis in eine Hexzahl und der rückgabewert soll dann angehängt werden.

        Das Endgültige Ziel ist es einen belibigen Text max. ff (hex) Zeichen lang sein darf in ein JPG Bild einzufügen. An genau der stelle an der ich jetzt 06 einfügen will muss die länge des eingefügten Textes stehn.

        Kommentar


        • #5
          Also bei mir funzt das Script auch so. Trotzdem würde ich mal diese ganzen unnötigen Anfuehrungszeichen verschwinden lassen. Also in etwa so:
          PHP-Code:
          <?php
          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;
          echo 
          $brack1a;
          ?>
          Ausserdem: BErechnest Du da nciht einen falschen Hexwert? Es wird doch immer eine Zahl größer als die eigentliche Stringlänge berechnet? Naja vielleicht leuchtet mir der Sinn ja auch nciht so ein.
          Gruss Niels

          Kommentar

          Lädt...
          X