Ankündigung

Einklappen
Keine Ankündigung bisher.

String umcodieren (Ziel: ohne Leer- und Sonderzeichen)

Einklappen

Neue Werbung 2019

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

  • String umcodieren (Ziel: ohne Leer- und Sonderzeichen)

    Hallo,

    ich bin auf der Suche nach einer Funktion mit der ich einen String komplett en- und decodieren kann. Ziel ist es, dass kein Leer- oder Sonderzeichen mehr im String vorkommt (dazu zählen auch ;.:/\&,etc.).
    Habe es schon mit urlencode und co probiert. Aber ich bekommte nicht das Ergebnis das ich möchte. Gibt es da was besseres?

    Gruß
    Thomas

  • #2
    Versuche es mal mit:

    PHP-Code:
    <?php

    $string 
    preg_replace('#[^a-z0-9]#i'''$string); 
    ?>
    Dies entfernt alle Zeichen bis auf a-z, A-Z, 0-9...

    Einfach das nächste mal die Suchfunktion des Forums befragen...
    [B]Mfg Tomtaz[/B]
    [I]"Es soll jetzt diese Erfindung geben.... Kugel oder so heißt die. Ist so eine Art Suchmaschine..." [/I]:!::shock:

    Kommentar


    • #3
      Dies entfernt alle Zeichen bis auf a-z, A-Z, 0-9...
      Das ist ja nicht der Sinn von "En - bzw Decodieren". Dabei soll keine Information verloren gehen, wohingegen mit Deinem Ausdruck "Information" verloren geht.

      Plague, schau mal auf php.net nach bei htmlentities. Ich meine mich erinnern zu können, dass sich jemand mal die Arbeit gemacht hat, ein solches Script zu erstellen. (Schau in den Usercomments nach)

      Gruß,
      pepe

      Kommentar


      • #4
        Bei der Anforderung gehen auch schon Informationen verloren, wenn ich "&:.;" entferne.... In dem Sinne: Dinge zu entfernen bedeutet immer Informationsverlust!
        Nicht jeder Fehler ist ein Bug.

        Kommentar


        • #5
          Bei der Anforderung gehen auch schon Informationen verloren
          Ich denke, dass er meinte, dass diese Zeichen in HTML-Code-Entsprechung codiert werden sollen - nicht einfach "verschwinden" sollen.
          Was nun genau gemeint war/ was er vor hat, muss uns wohl der Threadersteller verraten...

          Gruß

          Kommentar


          • #6
            Nagut, da bietet sich noch url_encode an ^^
            Nicht jeder Fehler ist ein Bug.

            Kommentar


            • #7
              Ahh, jetzt versteh ich. Ich hab da mal so funktionen geschrieben, die genau das Bewirken. Wenn du das Haben willst, dann schreib mir einfach eine PN. Jedes Sonderzeichen wird in eine Zahlenkompi umgeschrieben, und natürlich auch wieder zurückgeschrieben, wenn es sein muss. Einfach bei mir über PN melden.
              [B]Mfg Tomtaz[/B]
              [I]"Es soll jetzt diese Erfindung geben.... Kugel oder so heißt die. Ist so eine Art Suchmaschine..." [/I]:!::shock:

              Kommentar


              • #8
                Hallo tomtaz,

                warum stellst du diese Funktion nicht hier ein? Ich bin mir sicher, dass das Thema auch für andere interessant ist. ClosedSource ist nicht schön...
                Viele Grüße,
                Dr.E.

                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                1. Think about software design [B]before[/B] you start to write code!
                2. Discuss and review it together with [B]experts[/B]!
                3. Choose [B]good[/B] tools (-> [URL="http://adventure-php-framework.org/Seite/088-Why-APF"]Adventure PHP Framework (APF)[/URL][URL="http://adventure-php-framework.org"][/URL])!
                4. Write [I][B]clean and reusable[/B][/I] software only!
                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

                Kommentar


                • #9
                  OK, kann ich machen. Stelle es heute Abend rein!.
                  [B]Mfg Tomtaz[/B]
                  [I]"Es soll jetzt diese Erfindung geben.... Kugel oder so heißt die. Ist so eine Art Suchmaschine..." [/I]:!::shock:

                  Kommentar


                  • #10
                    Re: String umcodieren (Ziel: ohne Leer- und Sonderzeichen)

                    Zitat von Plague
                    Habe es schon mit urlencode und co probiert. Aber ich bekommte nicht das Ergebnis das ich möchte. Gibt es da was besseres?
                    Definiere "nicht das Ergebnis das ich möchte" , "was besseres" und "und co"

                    Kommentar


                    • #11
                      Ok hier die versprochene Funktion. Is was ganz einfaches und sicher gibt es eine bessere lößung, aber es funktioniert sehr sehr gut. (Hab ich selbst im Einsatz)

                      PHP-Code:
                      <?php
                      //
                      // Funktion zum Codieren
                      //
                      function code$string )
                      {
                          
                      $search = array(
                              
                      '<'
                              
                      '>'
                              
                      '|'
                              
                      '^'
                              
                      '°'
                              
                      '!'
                              
                      '"'
                              
                      '§'
                              
                      '$'
                              
                      '%'
                              
                      '&'
                              
                      '/'
                              
                      '='
                              
                      '?'
                              
                      '\\'
                              
                      'à'
                              
                      'À'
                              
                      'á'
                              
                      'Á'
                              
                      '`'
                              
                      'è'
                              
                      'È'
                              
                      'é'
                              
                      'É'
                              
                      'ù'
                              
                      'Ù'
                              
                      'ú'
                              
                      'Ú'
                              
                      'ò'
                              
                      'Ò'
                              
                      'ó'
                              
                      'Ó'
                              
                      'ü'
                              
                      'Ü'
                              
                      'ä'
                              
                      'Ä'
                              
                      'ö'
                              
                      'Ö'
                              
                      '+'
                              
                      '*'
                              
                      '~'
                              
                      '#'
                              
                      ';'
                              
                      ':'
                              
                      '.'
                              
                      '@'
                              
                      '€'
                              
                      'ß'
                          
                      );
                          
                          
                      $replace = array(
                              
                      '-01-'
                              
                      '-02-',
                              
                      '-03-'
                              
                      '-04-'
                              
                      '-05-'
                              
                      '-06-'
                              
                      '-07-'
                              
                      '-08-'
                              
                      '-09-'
                              
                      '-10-'
                              
                      '-11-'
                              
                      '-12-'
                              
                      '-13-'
                              
                      '-14-'
                              
                      '-15-'
                              
                      '-16-'
                              
                      '-17-'
                              
                      '-18-'
                              
                      '-19-'
                              
                      '-20-'
                              
                      '-21-'
                              
                      '-22-'
                              
                      '-23-'
                              
                      '-24-'
                              
                      '-25-'
                              
                      '-26-'
                              
                      '-27-'
                              
                      '-28-'
                              
                      '-29-'
                              
                      '-30-'
                              
                      '-31-'
                              
                      '-32-'
                              
                      '-ue-'
                              
                      '-UE-'
                              
                      '-ae-'
                              
                      '-AE-'
                              
                      '-oe-'
                              
                      '-OE-'
                              
                      '-33-'
                              
                      '-34-'
                              
                      '-35-'
                              
                      '-36-'
                              
                      '-37-'
                              
                      '-38-'
                              
                      '-39-'
                              
                      '-40-'
                              
                      '-41-'
                              
                      '-42-'
                          
                      );
                          
                          return 
                      str_replace$search$replace$string );
                      }

                      function 
                      decode$string // Zum Decodieren
                      {
                          
                          
                      $search = array(
                              
                      '-01-'
                              
                      '-02-',
                              
                      '-03-'
                              
                      '-04-'
                              
                      '-05-'
                              
                      '-06-'
                              
                      '-07-'
                              
                      '-08-'
                              
                      '-09-'
                              
                      '-10-'
                              
                      '-11-'
                              
                      '-12-'
                              
                      '-13-'
                              
                      '-14-'
                              
                      '-15-'
                              
                      '-16-'
                              
                      '-17-'
                              
                      '-18-'
                              
                      '-19-'
                              
                      '-20-'
                              
                      '-21-'
                              
                      '-22-'
                              
                      '-23-'
                              
                      '-24-'
                              
                      '-25-'
                              
                      '-26-'
                              
                      '-27-'
                              
                      '-28-'
                              
                      '-29-'
                              
                      '-30-'
                              
                      '-31-'
                              
                      '-32-'
                              
                      '-ue-'
                              
                      '-UE-'
                              
                      '-ae-'
                              
                      '-AE-'
                              
                      '-oe-'
                              
                      '-OE-'
                              
                      '-33-'
                              
                      '-34-'
                              
                      '-35-'
                              
                      '-36-'
                              
                      '-37-'
                              
                      '-38-'
                              
                      '-39-'
                              
                      '-40-'
                              
                      '-41-'
                              
                      '-42-'
                          
                      );
                          
                          
                      $replace = array(
                              
                      '<'
                              
                      '>'
                              
                      '|'
                              
                      '^'
                              
                      '°'
                              
                      '!'
                              
                      '"'
                              
                      '§'
                              
                      '$'
                              
                      '%'
                              
                      '&'
                              
                      '/'
                              
                      '='
                              
                      '?'
                              
                      '\\'
                              
                      'à'
                              
                      'À'
                              
                      'á'
                              
                      'Á'
                              
                      '`'
                              
                      'è'
                              
                      'È'
                              
                      'é'
                              
                      'É'
                              
                      'ù'
                              
                      'Ù'
                              
                      'ú'
                              
                      'Ú'
                              
                      'ò'
                              
                      'Ò'
                              
                      'ó'
                              
                      'Ó'
                              
                      'ü'
                              
                      'Ü'
                              
                      'ä'
                              
                      'Ä'
                              
                      'ö'
                              
                      'Ö'
                              
                      '+'
                              
                      '*'
                              
                      '~'
                              
                      '#'
                              
                      ';'
                              
                      ':'
                              
                      '.'
                              
                      '@'
                              
                      '€'
                              
                      'ß'
                          
                      );
                          
                          return 
                      str_replace$search$replace$string );
                      }
                      ?>
                      [B]Mfg Tomtaz[/B]
                      [I]"Es soll jetzt diese Erfindung geben.... Kugel oder so heißt die. Ist so eine Art Suchmaschine..." [/I]:!::shock:

                      Kommentar


                      • #12
                        Warum definierst du code und replace zwei mal?
                        Nicht jeder Fehler ist ein Bug.

                        Kommentar


                        • #13
                          Zitat von KingCrunch
                          Warum definierst du code und replace zwei mal?
                          Das sind doch 2 verschiedene Funktionen...
                          [B]Mfg Tomtaz[/B]
                          [I]"Es soll jetzt diese Erfindung geben.... Kugel oder so heißt die. Ist so eine Art Suchmaschine..." [/I]:!::shock:

                          Kommentar


                          • #14
                            Was soll die Funktion denn leisten, was urlencode, base64_encode, serialize, htmlentities und Konsorten nicht bereits liefern?

                            Kommentar


                            • #15
                              Ausgerechnet das Sonderzeichen der Codierung, nämlich -, wird nicht selbst codiert.
                              PHP-Code:
                              <?php
                              $input 
                              '-01-';
                              $s code($input);
                              $output decode($s);
                              echo 
                              "decodiert: " $output;
                              ?>
                              decodiert: <
                              der Originaltext war aber -01-

                              Kommentar

                              Lädt...
                              X