Feste URL parsen

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

  • #16
    OffTopic:
    Original geschrieben von onemorenerd
    OffTopic:
    Ich wollte nur auf die Regeln hinweisen.
    Was zwar unnötig war, aber ich kann aus eigener Erfahrung sagen: Besser lieber einmal mehr, als zu wenig .

    Kommentar


    • #17
      Okay, ich muss - leider - noch einmal nerven.
      Ich möchte alle URLs passen, die innerhalb eines href-Tages vorkommen - wie mache ich das? Das Problem ist, dass dies auf Basis des vorhandenen Codes passieren muss:
      PHP-Code:
      <?php
      if(preg_match_all('!(' getURLParse($url) . '[^\s]*)!i',
      $value$matches)) {
      // ...
      }
      ?>
      Das Skript sollte sowohl href="XY" also auch href='' erkennen. Ich bekomme es leider nicht funktionsfähig hin.

      Zur Erläuterung:
      PHP-Code:
      <?php
      function getURLParse($url) {

          
      $url str_ireplace(".""\\."$url);
          
      $url str_ireplace("-""\\-"$url);

          return 
      $url;

      }
      ?>

      Kommentar


      • #18
        dann schreib doch href= davor und [\"'] um die url herum.

        hausaufgabe: welchen _fehlerhaften_ tag wird dieser ausdruck akzeptieren und wie geht man damit um?

        Kommentar


        • #19
          Es kommt kein Fehler, aber auch kein Suchergebnis:
          Code:
          !(href=[\"\\']' . getURLParse($url) . '[^\s]*[\"\\'])!i
          Was ist falsch?
          Ein fehlerhafter Tag, der akzeptiert wird und wie man damit umgeht? Mir ist kein "fehlerhafter" href-Tag bekannt?! Google-Suche brachte auch nichts. Der Regexp akzeptiert doch lediglich href="XY" bzw. href='XY'.

          Edit: Ah, "nohref"!
          Zuletzt geändert von frederic; 15.08.2007, 10:53.

          Kommentar


          • #20
            Was ist falsch?
            falsch ist, dass du nicht debuggst. mit dem regexp-evaluator.de kannst du den ausdruck stückweise aufbauen und zusehen, worauf er zutrifft. das ist immer besser, als "aus dem bauch".

            Der Regexp akzeptiert doch lediglich href="XY" bzw. href='XY'.
            nicht nur. überlege noch mal.

            Kommentar


            • #21
              Original geschrieben von penizillin
              nicht nur. überlege noch mal. [/B]
              Siehe edit: "nohref"

              Kommentar


              • #22
                das meine ich nicht.

                Kommentar


                • #23
                  Ich finde den Fehler einfach nicht. Habe zwar hin und her probiert (mit Backslashes und Befehle an eine andere Stelle), aber es bleibt stehts fehlerhaft:
                  http://regexp-evaluator.de/evaluator...0608/#ergebnis

                  Mh.. Es gibt noch "hreflang". Gibt es ggf. eine Möglichkeit, href-Tags zu manipulieren?

                  Edit: Nein, hreflang kann es nicht sein, da er ja "href=" parst.
                  Zuletzt geändert von frederic; 15.08.2007, 11:10.

                  Kommentar


                  • #24
                    Okay, ich habe etwas:
                    http://regexp-evaluator.de/evaluator...a484/#ergebnis

                    Edit: Allerdings ist das keine Lösung, weil ich im o.g. Regexp ein Fehler der Seite behoben musste. Bei mir funktioniert dies nicht.
                    Zuletzt geändert von frederic; 15.08.2007, 11:21.

                    Kommentar


                    • #25
                      übrigens, kennst du preg_quote()?

                      was soll [^\s] eigentlich bedeuten?

                      Kommentar


                      • #26
                        Ja, schon einmal gehört. Das wäre wohl besser statt meine Funktion getURLParse.

                        Zu deiner zweiten Frage: Ich habe fest definierte URLs z. B. nach dem Muster "http://www.spiegel.de". Der Regexp soll nur URLs UNTERHALB dieser URL finden, also z. B. "http://www.spiegel.de/politik/", nicht aber "http://forum.spiegel.de/xy/". Deshalb "[^\s]".

                        Kommentar


                        • #27
                          und auf welche und v.a. wieviele zeichen trifft [^\s] zu?

                          Kommentar


                          • #28
                            Beliebig und beliebig viele. Im verlinkten Test auf regexp-evaluator.de nur einmal. Würden im Suchtext nun 300 Adressen unterhalb von "http://www.spiegel.de" eingegeben, müsste das System entsprechend 300 finden.

                            Kommentar


                            • #29
                              Es scheint anscheinend auch zu funktionieren. Nur: Er hat Probleme, wenn ich
                              [/"/']
                              verwende. Und außerdem haben wir das (angebliche) href-Problem noch nicht behoben. Zum anderen: Warum parst regexp-evaluator.de mehr als href="XY" raus?

                              Kommentar


                              • #30
                                du hast die frage nicht verstanden. und hör auf zu raten - deine vermutungen sind gegenstandslos.

                                auf welche url trifft dein ausdruck mit [^\s] zu:

                                1) example.com/
                                2) example.com/f
                                3) example.com/foo
                                4) example.com/foobar

                                Kommentar

                                Lädt...
                                X