problem mitm binären wert

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

  • problem mitm binären wert

    ich steh gerade aufm schlauch und mir fällt das einfachste vom einfachsten nicht ein ...
    google gibt auch mal wieder nix her ...

    nen binär wert in einen ascii wert wandeln ?!?

    da gabs doch ne function *nachdenk nix einfall*

    thx
    Jan
    Zuletzt geändert von Skrok; 25.03.2003, 18:45.

  • #2
    meinst du ord() ?
    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Kommentar


    • #3
      also angenommen ich habe eine Datei die mit einem windows pc erstellt wurde dann is da ein binäres trennzeichen drinn das den wert "0D" und "0A" hat. Dieses möchte ich linuxgerecht in ein \n\r umwandeln also mit einem str_replace();
      nur wie findet der ein 0A oder 0D dafür gibt es soweit ich weiß eine funktion.

      mfg
      Jan

      Kommentar


      • #4
        Original geschrieben von Abraxax
        meinst du ord() ?
        das isses nicht ;(

        Kommentar


        • #5
          wenn du eine binärdatei hast, darfst du doch die hex-werte nicht einfach ändern.

          dann wäre es ja keine saubere datei mehr.

          es kommt jedoch darauf an, was da drin steht. wenn es nur eine textdatei ist, nimm einfach fopen() + fgets() ... ist es das?
          INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


          Kommentar


          • #6
            nicht wirklich ich will in meinem string wie gesagt diesen binär wert ersetzen .. die datei lade ich mir sowieso erst in einen string ... die ausgabe möchte ich jedoch dann veränder. ich habe kein eindeutiges zeichen für ein str_replace deswegen bleibt nur noch der binärwert.

            --> ?

            --> ;(

            Kommentar


            • #7
              "0D" und "0A" sind keine Binärwerte...

              ersetzen tust du die mit str_replace, wie du ja auch schon geschrieben hast...
              Oder meinst du jetzt, wie \n und \r im Hexcode heissen ??

              gruss

              Kommentar


              • #8
                danke hex war es *g* nur noch die funktion und hexadecimal werte zu suchen

                Kommentar


                • #9
                  wieso sollte denn ord() nicht funktionieren?

                  http://www.php.net/manual/de/function.ord.php

                  ord
                  (PHP 3, PHP 4 )

                  ord -- Gibt den ASCII-Wert eines Zeichens zurück

                  Beschreibung:

                  int ord ( string string)

                  [color=red]Es wird der ASCII-Wert des ersten Zeichens von string zurück gegeben.[/color] Diese Funktion steht in Zusammenhang mit chr(). Beispiel 1. ord()-Beispiel:
                  Code:
                  if (ord ($str) == 10) {
                      echo "Das erste Zeichen von \$str ist ein Zeilenvorschub.\n";
                  }
                  10 dec = 0A hex
                  INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                  Kommentar


                  • #10
                    joho, und [COLOR=chocolate]ord ($str) == 10[/color] ist identisch mit [COLOR=chocolate]substr($str,0,1)=='\r'[/color]

                    Geht es um die Zeichenkette "0A"?
                    dann wäre vielleicht base_convert was für dich.

                    Ich empfehle dir allerdings - wenn du das binary-Format beeinflussen kannst - noch ein Signalzeichen (z.B. "%") einzufügen; dann kannst du mit preg_replace arbeiten:
                    [COLOR=chocolate]$str = preg_replace('/%([0-9a-f]{2})/ie', 'chr(base_convert($1, 16, 10))', $str);[/color]
                    So wird jedes %xx (mit Hex-Ziffern x) in das entsprechende Zeichen umgewandelt.

                    Um Tipparbeit zu sparen, kannst du auch einfach [COLOR=chocolate]$str=rawurldecode($str)[/color] benutzen; die Funktion macht genau das gleiche.
                    mein Sport: mein Frühstück: meine Arbeit:

                    Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

                    Kommentar

                    Lädt...
                    X