Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] string prüfen ob er url-freundlich ist

Einklappen

Neue Werbung 2019

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

  • [Erledigt] string prüfen ob er url-freundlich ist

    Grüße,

    Ich möchte einen String darauf überprüfen ob er Leerzeichen, Sonderzeichen und andere Zeichen entählt die nicht url freundlich sind.

    Habe mir dazu schon die funktionen strstr() und htmlspecialchars() angeschaut. Ich finde dort leider nur Beispiele wie nach einem einzigen string bzw. Zeichen gesucht wird. Wie kann ich mehrere Zeichen in den Filter einfügen?

    Eigentlich is mir das so aber auch zu umfangreich, da ich ja jedes mögliche Zeichen das nicht a-z, 0-9 oder - und _ ist herausfiltern müsste.

    Gibt es da keine php-eigene Funktion die strings auf url-freundlichkeit überprüft?
    google mich schon tod hier.

    MfG TacoMe


  • #2
    Schau mal hier nach: PHP FILTER_VALIDATE_URL Filter

    Kommentar


    • #3
      Eigentlich is mir das so aber auch zu umfangreich, da ich ja jedes mögliche Zeichen das nicht a-z, 0-9 oder - und _ ist herausfiltern müsste.
      Deswegen nutzt man auch Whitelisting statt Blacklisting. Mit regulären Ausdrücken wirst es am saubersten lösen können.

      Kommentar


      • #4
        url-freundlichkeit
        Heißt was?
        --

        „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
        Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


        --

        Kommentar


        • #5
          da ich ja jedes mögliche Zeichen das nicht a-z, 0-9 oder - und _ ist herausfiltern müsste
          Hier wäre die RegEx ziemlich einfach.

          Man kann natürlich auch selber was kleines entwickeln.
          Deine Bedingungen (gültige Zeichen) kriegst Du mit array_merge() und range() easy zu einer Art "Whitelist" geklöppelt.
          Dann brauchst Du eigentlich nur noch str_split() und in_array(), um den String komplett zu prüfen.

          Das ist aber nur eine Möglichkeit, die bei Weitem nicht so clever ist, wie RegEx!
          Competence-Center -> Enjoy the Informatrix
          PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

          Kommentar


          • #6
            PHP-Code:
            echo $url ' ist ';
            if (
            urlencode($url) != $url ) {
              echo 
            'nicht ';
            }
            echo 
            'urlfreundlich'
            PHP-Code:
            if ($var != 0) {
              
            $var 0;

            Kommentar


            • #7
              Das' natürlich generell besser als was eigenes!
              Aber urlencode() macht ja ein wenig mehr als
              ... a-z, 0-9 oder - und _ ...
              Wobei dann die Frage
              Zitat von nikosch
              url-freundlichkeit
              Heißt was?
              erst recht Sinn macht!
              Competence-Center -> Enjoy the Informatrix
              PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

              Kommentar


              • #8
                Es wird wohl darum gehen, URL-Pfade von Sonderzeichen zu befreien, so dass eben auf URL-Kodierung verzichtet werden kann - wie man es aus vielen Blog-Systemen u.ä. kennt.
                Das Forensystem hier hat aus dem ü in „prüfen“ ja auch ein ue gemacht, um die „sprechende“ Adresse für diesen Thread zu generieren.

                Kommentar


                • #9
                  Prüfen (== validieren) ist aber nicht filtern. Ich kann das nur immer wieder wiederholen.
                  --

                  „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                  Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


                  --

                  Kommentar


                  • #10
                    danke für die vielen Antworten. Habe mein Problem hier leider nicht ausreichend dargestellt.

                    Es ging mir lediglich darum einen string nach sonderzeichen zu prüfen. das habe ich inzwischen selber gelöst mit:

                    PHP-Code:
                    preg_match('#^[a-z0-9_-]+$#si',$var1
                    sorry für die gestohlene zeit der poster

                    Kommentar


                    • #11
                      Tipps:

                      - Posix: [[:word:]]
                      - Negativvalidierung: if (!preg_match ('/[^a]/' , ...)) // ein Nicht-a gefunden
                      --

                      „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                      Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


                      --

                      Kommentar

                      Lädt...
                      X