[REGEX] URL prüfen

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

  • [REGEX] URL prüfen

    Hallo,

    Ich bin grad ziemlich am Verzweifeln! Ich versuche gerade mit einem regex zu überprüfen ob eine URL so beginnt: (http://)(www.)bildupload.sro.at/./
    Ich dachte, das sollte eigentlich nicht so schwer sein
    PHP-Code:
    preg_match('/([url]http://[/url]|[url]http://www.[/url])*(bildupload.sro.at\/.\/([images|thumbs]{1})\/(.+)/i'); 
    Was ist hieran falsch, außer, dass der zweite Parameter fehlt??

    Danke schonmal für die Hilfe

    P.S.: Hab natürlich schon alle möglichen Dokus, FAQs & Tuts gelesen..

    //Edit: Beim PHP wird die ganze Zeit dieser a tag mit angezeigt. Also als Bild:
    http://bildupload.sro.at/a/images/code.GIF
    Zuletzt geändert von wahsaga; 10.02.2007, 17:02.

  • #2
    Soweit ich das sehe escapest du die Schrägstreche nicht, womit dein Ausdruck nur als

    Code:
    /(http:/
    interpretiert wird. Der erste Schrägstrich nach dem einleitenden wird also als Delimiter genommen.
    [FONT="Helvetica"]twitter.com/unset[/FONT]

    Shitstorm Podcast – Wöchentliches Auskotzen

    Kommentar


    • #3
      Re: [REGEX] URL prüfen

      Original geschrieben von jonathanschmid
      //Edit: Beim PHP wird die ganze Zeit dieser a tag mit angezeigt.
      OffTopic:
      Es gibt eine Checkbox "[ ] URLs automatisch umwandeln" unter dem Eingabeformular.
      I don't believe in rebirth. Actually, I never did in my whole lives.

      Kommentar


      • #4
        Außer die ersten zwei Schrägstriche hab ich die alle escaped.. Wieder eine komische Darstellung. Werds heute Abend nochmal vollständig escaped testen.
        Danke

        Kommentar


        • #5
          Du kannst auch andere Zeichen als Delimiter nehmen. Ich persönlich nehm eigentlich auch immer Schrägstriche, bei Patterns, in denen viele dieser vorkommen, weiche ich dann aber auf Tilden ("~") aus.
          [FONT="Helvetica"]twitter.com/unset[/FONT]

          Shitstorm Podcast – Wöchentliches Auskotzen

          Kommentar


          • #6
            Hmm, wie man da andre Delimiter benutzen kann, ist mir zwar nicht klar, aber egal...
            Der regex funzt noch immer nicht?! Wenn ich zum Beispiel folgenden URL eingebe:
            http://bildupload.sro.at/a/images/radforum.jpg

            Wird der als falsch erkannt

            Stimmt das so überhaupt?

            Kommentar


            • #7
              PHP-Code:
              /(<a href\=\"http\:\/\/\" target\=\"\_blank\"\>http\:\/\/<\/a>|<a href\=\"http\:\/\/www\.\" target\=\"\_blank\">http\:\/\/www\.<\/a>)(bildupload\.sro\.at\/./([images|thumbs])/(.+)/i 
              - das funktioniert nicht?
              Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

              Kommentar


              • #8
                Könntest du das nochmal ohne URL Umwandlung posten?

                Kommentar


                • #9
                  falls ich dich richtig verstanden habe:

                  '@^http://(www\.)?bildupload.sro.at/[a-z]/(images|thumbs)/\w+\.jpg$@i'


                  1.) http:// oder http://www.
                  2.) bildupload.sro.at/
                  3.) ein buchstabe und /
                  3.) images/ oder thumbs/
                  4.) beliebige wortzeichen und .jpg
                  5.) kein unterschied zwischen groß-/ klein-schreibung

                  passt das so?

                  Kommentar


                  • #10
                    Danke für die Hilfe! Hatte wohl mit Punkt & Co ne falsche Vorgehensweise... Hab ich schon fürs nexte Mal gelernt Habs mir jetzt noch so angepasst:
                    '@^(http://www\.|www\.|http://)?bildupload.sro.at/[a-z]/(images|thumbs)/\w+\.jpg$@i'

                    Geht jetzt wunderbar...

                    Kommentar


                    • #11
                      Original geschrieben von jonathanschmid
                      Hatte wohl mit Punkt & Co ne falsche Vorgehensweise...
                      ja, der punkt ist ein sonderzeichen und matcht jedes beliebige zeichen und muss daher escaped werden.
                      und jetzt, wo du es sagst, ich habe da auch noch einen fehler bemerkt, die punkte in "bildupload.sro.at" müssten dann natürlich auch noch escapet werden.

                      und so, wie du es jetzt hast, das fragezeichen besagt, dass der vorangehende ausdruck optional ist, also dein (http://www\.|www\.|http://) - ist bestimmt nicht so gewollt, oder?

                      Kommentar


                      • #12
                        Dann müssten doch alle vier folgenden Versionen gebrauchbar sein:

                        http://bildupload.sro.at/a/images/radforum.jpg
                        http://www.bildupload.sro.at/a/images/radforum.jpg
                        www.bildupload.sro.at/a/images/radforum.jpg
                        bildupload.sro.at/a/images/radforum.jpg

                        So war das schon gedacht...

                        Kommentar

                        Lädt...
                        X