Fritz: Prüfung auf Link

Hallo,

um zu überprüfen, ob auf einer Webseite ein bestimmter Link eingebaut ist, kann ich eine Stringsuche im Quelltext dieser Seite durchführen.
Ich überprüfe also z.B., ob der String "<a href="http://www.example.com" im Quelltext der Seite vorkommt.
Leider ist dieses Verfahren mehr als fehleranfällig. Groß-/Kleinschreibung und Leerzeichen zu ignorieren, ist keine Problem.
Aber ob der Link wirklich aktiv ist, kann ich so nicht ermitteln. Der Link könnte z.B. auskommentiert sein, ohne daß ich dies erkenne.

Gibt es eine Möglichkeit, mittels PHP (oder Javascript)auf das Vorhandensein eines funktionierenden Links zu testen?

Gruß Fritz

--
ie:( fl:( br:? va:) ls:< fo:| rl:? ss:{ de:> js:| mo:} zu:}
http://webdesign.weisshart.de
  1. Schau mal hier:
    http://www.it-academy.cc/content/article_browse.php?ID=1299

    1. Hallo,

      Schau mal hier:
      http://www.it-academy.cc/content/article_browse.php?ID=1299

      Danke, aber das ist es nicht. Ich will nicht prüfen, ob eine Seite erreichbar ist, sondern ob auf einer bestimmten Seite ein bestimmter funktionierender Link existiert.
      Gruß Fritz

      --
      ie:( fl:( br:? va:) ls:< fo:| rl:? ss:{ de:> js:| mo:} zu:}
      http://webdesign.weisshart.de
      1. Es gibt doch eigentlich nur 3 Möglichkeiten eines href-Links:
        href="pfad", href='pfad' und href=pfad
        Oder habe ich noch etwas vergessen?

        Dann könnte es so gehen:
        $quelltext = "der ganze Quelltext";
        $quell1 = 'href="pfad"';
        $quell2 = "href='pfad'";
        $quell3 = "href=pfad";

        if (ereg($quell1,$quelltext) ||
            ereg($quell2,$quelltext) ||
            ereg($quell3,$quelltext) {
          echo "Pfad vorhanden!";
        } else {
          echo "Pfad nicht gefunden!";
        }

        1. Hallo,

          ja, ja, das geht natürlich so oder so ähnlich. Mein Problem ist das aber nicht. Vielmehr habe ich im Ausgangsposting schon geschrieben:

          Aber ob der Link wirklich aktiv ist, kann ich so nicht ermitteln. Der Link könnte z.B. auskommentiert sein, ohne daß ich dies erkenne.

          Also nichts mit einfachem Stringvergleich. Ich will wissen, ob ein Link _funktioniert_, oder evtl. so verändert wurde, daß zwar der gesuchte String noch im Quelltext steht, aber nicht zu einem funktionierenden Link gehört.

          Gruß Fritz

          --
          ie:( fl:( br:? va:) ls:< fo:| rl:? ss:{ de:> js:| mo:} zu:}
          http://webdesign.weisshart.de
          1. Dann musst Du folgendermaßen vorgehen:

            Der Quelltext muss zeilenweise ausgelesen werden.
            Suche nach dem Anfang einer Auskommentierung (<!--).
            Lese den nachfolgenden Bereich bis zum Ende der Auskommentierung (-->) in eine Variable.
            Durchsuche diese Variable nach Deinem Link...

            usw.
            Das müsste so gehen...

            1. Hi,

              na ja, das löst ein Problem, aber was machst du gegen:
              <a href... style="display: none;">
              Ich nehme an, es geht darum sicherzustellen, dass jemand einen Link auf der Homepage darstellt. Sichergehen könnte man aber nur, wenn man den Quelltext in der Seite selbst einfügt, während diese vom Server ausgeliefert wird.

              MfG
              Rouven

              --
              -------------------
              ss:) zu:) ls:& fo:) de:< va:{ ch:? sh:) n4:( rl:? br:$ js:| ie:) fl:(
              1. na ja, das löst ein Problem, aber was machst du gegen:
                <a href... style="display: none;">

                Nunja, wenn wir bis in die Styles gehen, gibt es keine Möglichkeit!!!
                Denn ich brauche ja nur die Styles in einer CSS auszulagern und a mit class="unsichtbar" zu belegen. Nur mal so als Beispiel versteht sich.
                Damit hätte man keine Chance mehr, zu erkennen, dass der Link auf der Seite nicht sichtbar ist.

                1. Hallo!

                  Damit hätte man keine Chance mehr, zu erkennen, dass der Link auf der Seite nicht sichtbar ist.

                  Naja, ist eine reine Frage des Aufwandes. Der Browser muss schließlich auch erkennen ob ein Element sichtbar ist oder nicht. :-)

                  mfg
                    frafu

  2. Hallo Fritz.

    Gibt es eine Möglichkeit, mittels PHP (oder Javascript)auf das Vorhandensein eines funktionierenden Links zu testen?

    Mir fallen gerade nur zwei Möglichkeiten ein, beide eher ungeeignet:

    1. Eine RegEx, welche nach der üblichen Link-Syntax sucht, aber auch kontrolliert, ob im Zieldokument vor dem Link platzierte öffnende Kommentarzeichen einer gleiche Anzahl an schließenden Kommentarzeichen gegenüber stehen.
      Nachteil: bei größeren Dokumenten eine RegEx darauf anzusetzen ist in meinen Augen absoluter Overkill.

    2. Die PHP-eigenen XML-Fähigkeiten nutzen, um das Zieldokument einzulesen. Ist der Link als Knoten verfügbar, ist er nicht auskommentiert worden.
      Nachteil: Das Zieldokument muss als XML ausgeliefert werden, was heute noch eher unwahrscheinlich ist.

    Ich sehe leider keine brauchbare Lösung, vielleich weiß jemand anderes Rat.

    Einen schönen Donnerstag noch.

    Gruß, Ashura