Regular Expressions (Verzweiflung)

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

  • Regular Expressions (Verzweiflung)

    kann mir mal jemand erklären warum das hier nicht funktioniert???

    $text="test////'??^%60^^~adsfasdfasd";
    $text = preg_replace("[^A-Za-z0-9\ö\ä\ü\Ö\Ä\Ü\&\s\.\,\:\?\!\=\-\%\@\ \_\/]","",$text);
    echo $text;

    die sonderzeichen bleiben immer noch drin.. ich bin knapp vor dem verzweifeln ...

    zur info:
    ich benutze das neuste xampplite unter windows .. falls das noch eine rolle spielt

    bin dankbar für jede hilfe

  • #2
    Öhm...


    Was für ein Ziel verfolgst du eig?

    Schon mal was von htmlentities() und htmlspecialchars() gehört?

    Kommentar


    • #3
      [ wird als Delimiter interpretiert, ] auch

      Damit wird alles was zwischendrin steht, gesucht und dein String fängt nicht mit ^A-Za-z0-9\ö\ä\ü\Ö\Ä\Ü\&\s\.\,\:\?\!\=\-\%\@\ \_\/ an, also wird nichts ersetzt

      $text = preg_replace("°[^A-Za-z0-9\ö\ä\ü\Ö\Ä\Ü\&\s\.\,\:\?\!\=\-\%\@\ \_\/]°","",$text);

      Das z. B. sollte gehen, dann wird auch deine (negierte) Zeichenklasse erkannt
      Ich denke, also bin ich. - Einige sind trotzdem...

      Kommentar


      • #4
        ich will aus einem string sämtliche sonderzeichen draussen haben ausser diejenigen die ich im regexp angegeben habe ...

        Kommentar


        • #5
          Original geschrieben von mrhappiness
          [ wird als Delimiter interpretiert, ] auch

          Damit wird alles was zwischendrin steht, gesucht und dein String fängt nicht mit ^A-Za-z0-9\ö\ä\ü\Ö\Ä\Ü\&\s\.\,\:\?\!\=\-\%\@\ \_\/ an, also wird nichts ersetzt

          $text = preg_replace("°[^A-Za-z0-9\ö\ä\ü\Ö\Ä\Ü\&\s\.\,\:\?\!\=\-\%\@\ \_\/]°","",$text);

          Das z. B. sollte gehen, dann wird auch deine (negierte) Zeichenklasse erkannt
          geht leider immer noch nicht ;(


          EDIT:

          du spricht hier vom anfang des strings ... das wäre nur der fall wenn das dächlein vor der eckigen klammer wäre ...

          Kommentar


          • #6
            OH anscheinends gehts doch ... aber nur wenn ich dieses skript in eine eigene php datei schreibe und dann aufrufe .. aber in meinem ganzen skript hier funktionierts nicht .. schauts euch an ..


            die seite wird mit asdfasd.php?text=test////'??^%60^^~adsfasdfasd aufgerufen


            PHP-Code:
            function GETPOSTDATA() {
                
            $querystring $_SERVER["QUERY_STRING"];
                
                foreach(
            split("&",$querystring,2) as $query){
                    
                    list(
            $key,$val) = split("=",$query);

                    
            $key preg_replace("°[^A-Za-z0-9\ö\ä\ü\Ö\Ä\Ü\&\s\.\,\:\?\!\=\-\%\@\ \_\/]°","",$key);
                    
            $val preg_replace("°[^A-Za-z0-9\ö\ä\ü\Ö\Ä\Ü\&\s\.\,\:\?\!\=\-\%\@\ \_\/]°","",$val); 

                     
                    ${
            $key} = $val;
                    
                
                
                };
            };

            GETPOSTDATA();
            echo 
            $text

            Kommentar


            • #7
              na toll mein problem war register_globals = on .. ich hasse diese funktion .. die ist bei xampp immer auf on gestellt!!!

              Kommentar


              • #8
                Original geschrieben von raprezent
                na toll mein problem war register_globals = on .. ich hasse diese funktion .. die ist bei xampp immer auf on gestellt!!!

                Denkst du die ist aus Spaß an der Freude angeschalten?

                Such einfahc mal hier nach register_globals...

                Kommentar

                Lädt...
                X