PHP - Teile eines Strings ersetzen

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

  • PHP - Teile eines Strings ersetzen

    Hi

    ich habe zwei Strings, einer enthält eine Eingabe und der andere enthält alle erlaubten Zeichen für die Eingabe. Jetzt würde ich gerne, dass aus dem Eingabestring alle Zeichen gelöscht werden, die sich nicht in dem String für die erlaubten Zeichen befindet.

    $eingabe = "Hallo, das ist der Eingabestring!§$%&";

    $erlaubte_zeichen = " abcdefghiklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.,;:!";

    ...

    Ausgabe:

    Hallo, das ist der Eingabestring!

  • #2
    Hi,

    was sind denn deine Ansätze?

    Kommentar


    • #3
      hab leider noch keinen wirklichen ansatz... probiere es seit ner halben stunde mit regulären ausdrücken... hab davon aber nicht wirklich ahnung und dachte mir vielleicht hat hier wer was parat

      /edit

      könnte mir sowas vorstellen:

      <?php

      $eingabe = "Hallo, das ist der Eingabestring!§$%&";

      $erlaubte_zeichen = ..... (irgend ein regulärer ausdruck )

      echo(ereg_replace($erlaubte_zeichen, '', $eingabe));


      ?>
      Zuletzt geändert von dex-revolutions; 18.10.2005, 11:34.

      Kommentar


      • #4
        Wie probierst du's mit regulären Ausdrücken?

        Packe die erlaubten Zeichen in eine Zeichenklasse, negiere sie und ersetze alles, was dann noch übrig bleibt durch nichts.

        Jetzt bist du dran, Code zu liefern

        Tipp: preg_replace
        Ich denke, also bin ich. - Einige sind trotzdem...

        Kommentar


        • #5
          wie "negiere" ich eine Zeichenkette denn?!

          /edit

          genau das war bis jetzt mein Problem: ich hätte auch eine such&ersetzt funktion nehmen können und alle möglichen Zeichen, die nicht erlaubt sind, aufzählen können, doch das wäre sehr viel arbeit geworden
          Zuletzt geändert von dex-revolutions; 18.10.2005, 11:38.

          Kommentar


          • #6
            ^ als erstes Zeichen der Zeichenklasse

            Wo beliest du dich denn zu regulären Ausdrücken?
            Ich denke, also bin ich. - Einige sind trotzdem...

            Kommentar


            • #7
              bis gerade eben im Manual vpn php.net

              Kommentar


              • #8
                Schön, dann hast du's ja bald :-)
                Ich denke, also bin ich. - Einige sind trotzdem...

                Kommentar


                • #9
                  irgendwie machen die da alle nix:

                  <?php

                  echo(preg_replace('/^abcdefghijklmnopqrstuvwxyz/', "", 'Das ist ein Test!'));

                  echo(preg_replace('/^[a-z]/', "", 'Das ist ein Test!'));

                  echo(preg_replace("[a-z]", "", 'Das ist ein Test!'));

                  ?>

                  /edit

                  Ausgabe ist immer:

                  Das ist ein Test!

                  Kommentar


                  • #10
                    ^ als erstes Zeichen der Zeichenklasse bedeutet: Das ^ muss gleich hinter dem [ kommen.

                    Bei deinem preg_replace fehlt ein Delimiter, kannst dich ja noch etwas mehr belesen ;-)

                    PHP-Code:
                    echo preg_replace('%[^a-z]%''''Das ist ein Test!');
                    echo 
                    '<br />';
                    echo 
                    preg_replace('%[^a-z]%i''''Das ist ein Test!'); 
                    Alles klar?
                    Ich denke, also bin ich. - Einige sind trotzdem...

                    Kommentar


                    • #11
                      jo danke jetzt passt es!
                      <?php

                      echo preg_replace('%[^a-zA-ZäöüÄÖÜ!.,:;-_() ]%', '', 'Das ist ein Test!');

                      ?>

                      zwei fragen noch:

                      1) Was bedeutet bei deinem Post das %i ?!

                      2) wie mache ich es, wenn ich [ ] auch zulassen will?

                      Kommentar


                      • #12
                        1. "i" Ist ein Modifier

                        2. http://www.php.net/manual/reference....ence.backslash
                        Ich denke, also bin ich. - Einige sind trotzdem...

                        Kommentar


                        • #13
                          big THX @ mrhappiness

                          Kommentar

                          Lädt...
                          X