String nach ISO8859 Code wandeln

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

  • String nach ISO8859 Code wandeln

    Hallo !

    Ich habe einen Text, der über in ganz normales HTML-Formular und POST an ein PHP-Script in die Variable "Nachricht" übergeben wurde.
    Den Text in dieser "Nachricht" muss nun ins numerische HTML-Encode nach ISO8859-1 Format gebracht werden.

    Ursprung: "Hallo!"
    Nach der Konvertierung: "Hallo!"

    Ich konnte keinen Befehl finden der das entsprechend kodiert.

    Muss ich das tatsächlich mit jedem in Iso möglichen Zeichen, Zeiten für Zeichen mit

    PHP-Code:
    $Nachricht ereg_replace("H""H"$Nachricht); 
    machen oder gibt es da doch irgendwie einen Konverterbefehl?

    Danke & Gruss,
    AndreV

  • #2
    schau dir mal die usernotes hier an: http://de.php.net/htmlentities
    Kissolino.com

    Kommentar


    • #3
      Danke.
      Damit hatte ich es schon probiert, der wandelt aber das Ä in

      PHP-Code:
      &Auml
      .

      Ich benötige es aber mit dem entsprechenden ASCII Code nach ISO, also so:

      PHP-Code:
      Ä 
      Außerdem möchte ich die normalen Zeiten A-Z a-z und 0-9 auch so kodiert haben(ist aber im Gegensatz zu den Sonderzeichen kein muss).

      Hat jemand noch eine Idee oder muss ich den String echt 255x anpacken und jedes einzelne mögliche Zeichen per hand wandeln?

      Kommentar


      • #4
        Wofür brauchst Du denn sowas?
        PHP-Code:
        $result preg_replace('/./e'"'&#'.ord('\\\\0').';'"$text); 

        Kommentar


        • #5
          Ich muss das ganze so aif Rechner A in eine XML Datei reinschreiben.
          Ein anderer Rechner(B) ließt sich über eine XML-Schnittstelle die Datei aus.
          Das Programm auf dem anderen Rechner(B) versteht ausschließlich den ISO8859-1 Zeichensatz und zwar so wie oben nach HTML codiert.

          An dem Rechner B läßt sich leider nichts verändern. Ich muss ihn also so füttern.

          Kommentar


          • #6
            hmm, hab grad mal das preg_replace getestet ... im vergleich mit einer for-schleife, bei grösseren texten würde ich "for" vorziehen:
            PHP-Code:
            function core_getmicrotime()

                list(
            $usec$sec) = explode(' ',microtime()); 
                return ((float)
            $usec + (float)$sec); 
            }
            //---------------------

            $starttime core_getmicrotime();
            echo 
            $result preg_replace('/./e'"'&#'.ord('\\0').';'"$text);
            echo 
            'regex: 'round(core_getmicrotime() - $starttime,4)." sec<br><br>";
            //---------------------
            $starttime core_getmicrotime();
            $anz=strlen($text);
            $out '';
            for(
            $i=0;$i<$anz;$i++)
            {
               
            $out .= '&#'.ord($text[$i]).';';
            }
            echo 
            $out;
            echo 
            'for-schleife: '.round(core_getmicrotime() - $starttime,4)." sec.<br><br>"
            Kissolino.com

            Kommentar

            Lädt...
            X