Ankündigung

Einklappen
Keine Ankündigung bisher.

preg_match matcht URL net

Einklappen

Neue Werbung 2019

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

  • #16
    Also bei mir w�rde das so aussehen:

    PHP-Code:
    <?php
    $url 
    "http://www.test.de"//Wird in deinem Code ja wo anders belegt.
    if (preg_match("~\s|\(|\)~"$url))  //Sucht nach " " oder "(" oder ")"
    {
       echo 
    "Es wurde eine ï¿½bereinstimmung gefunden.";
       
    $url "http://www.irgendwas.de";
       
    } else {
       echo 
    "Es wurde keine ï¿½bereinstimmung gefunden.";
    }
    ?>
    Also nur mit Klammern und Leerzeichen. Also du hast irgendwo nen Fehler bei dem Suchschlüssel.

    Kommentar


    • #17
      strip_tags() ist eine gute Idee. Aber ich will, dass das Skript auch registriert, dass ein Benutzer versucht hat eine ungültige URL zu benutzen.

      @Shade: Ich habe deinen Suchschlüssel ausprobiert. Das Leerzeichen findet er, wenn es in der URL vorkommt. Bei den Klammern gibt er aber eine PHP-Fehlermeldung aus -> "Compilation failed: unmatched parentheses"

      Das darf ja eigentlich nicht sein...

      Kommentar


      • #18
        Also bei mir funktioniert es. Hast du einfach meinen Code kopiert und dann getestet? Weil das forum hier hat ja ne Macke wegen dem Ü von Übereinstimmung.

        Wenn nicht dann liegts vllt irgendwo anders an deinem Script weil wie gesagt bei mir funktioniert es...

        Kommentar


        • #19
          Ich hab nur den Teil mit dem Suchstring kopiert. Danke für deine Hilfe mit dem Suchschlüssel.
          Scheint so, als ob der Fehler noch an einer anderen Stelle liegt. Aber der Fehler ist schon komisch. Von der Fehlermeldung her scheint es irgendwie so, als ob PHP den Inhalt von $URL als Quelltext ansieht. Weil "unmatched parentheses" bedeutet ja eigentlich, dass es mehr offene Klammern als geschlossene Klammern im Quelltext gibt (und umgekehrt).

          Kommentar


          • #20
            Hm... ja also entweder postest du noch nen größeres stück Qelltext oda keine Ahnung aber so kann dir glaub kaum jemand helfen.

            Kommentar


            • #21
              Zitat von Jacks Rache
              strip_tags() ist eine gute Idee. Aber ich will, dass das Skript auch registriert, dass ein Benutzer versucht hat eine ungültige URL zu benutzen.
              PHP-Code:
              <?php
              function validateUrl($string) {
                
              $string strip_tags($string);
                if (
              preg_match("/http:\/\/(.*)/"$string)) {
                  return 
              $string;
                } else {
                  return 
              "http://andereUrl.de";
                }
              }

              if (
              validateUrl($userInput) != $userInput) {
                
              // Eingabe offenbar nicht korrekt
              } else {
                
              // Eingabe korrekt
              }
              ?>

              Kommentar


              • #22
                OK, danke für diese alternative Methode.

                So. Zwischenbilanz aus zwei Tagen stupiden Rumprobierens: Ich bekomme den Fehler mit "unmatched parentheses" mit preg_match nicht weg und habe auch keine Erklärung, warum preg_match dabei meckert, wenn in einem String runde Klammern vorkommen. Selbst mit strip_tags. Ich konnte das Problem jetzt aber damit lösen, dass ich einzelne Zeichen aus dem String durch andere Zeichen ersetzt habe. Alle Sonderzeichen in den Strings werden nämlich irgendwie vom PHP-Parser interpretiert.

                Kommentar

                Lädt...
                X