Link checken

vsitor

Erfahrenes Mitglied
Hallo,

ich möchte einen Linkchecker realisieren, weiß nicht ganz wie man anfangen könnte.

Es ist zu anstrengend, bei 300 Seiten dauernd manuell zu prüfen ob die den Link zu mir entfernt haben oder nicht.
Am besten eine kleine < FORM >, in dem ich in ein Textfeld zuerst die Seiten eintrage von denen der Link zu mir kommt und diese dann in SQL speicher.

Dann einfach einen OK Button und gut ist.
Ich hatte mal ein free-script, aber das hat nur die Hauptdomain durchsucht, und nicht http://www.deineseite.de/links.htm

hat einer von euch eine Idee oder vielleicht fällt euch ein Script ein das man nutzen kann.
Danke
 
Hallo,

eine SQL-Datenbank ist hier nicht unbedingt nötig. Eine Textdatei mit einer URL pro Zeile tut's auch – die kann man bei Bedarf dann auch ganz einfach in eine textarea laden und so bearbeiten. Da spart man sich schon einiges an Aufwand für die Administration, welche ja vermutlich sowieso nur für dich selbst gedacht ist.

Das überprüfen der jeweiligen Seiten könnte dann so ablaufen:

Für jede Zeile in der Textdatei…
  • Webseite holen (z.B. über [phpf]file_get_contents[/phpf], CURL…)
  • Quelltext nach dem entsprechenden Link durchsuchen (z.B. mit [phpf]strpos[/phpf])
  • Wenn der Link nicht gefunden wurde, Meldung ausgeben

Wenn du Hilfe zu den einzelnen Schritten brauchst, kannst du ja nochmals genauer nachfragen.

Grüße,
Matthias
 
Du willst schauen, ob bei einer bestimmten Seite ein bestimmter Link vorhanden ist?

Mir fällt jetzt nichts besseres ein, aber verbinde dich doch einfach mit dem Server per fsockopen(), schick ihm eine Anfrage (zB du willst checken, ob auf der links.htm der Link ist) , die anfrage könnte so ausschauen:

PHP:
$anfrage = "GET /links.htm HTTP/1.1\n".
                "HOST: www.foo.org\n".
                "\n";

dann bekommst du eine Antwort vom Server zurück, die so ausschaut:

Code:
HTTP/1.x 200 OK
blub
bla
foo

<html>
<head>
</head>
<body>
blub
bla
foo
<!-- Dein Link -->
<a href="www.deine-seite.at">Die Seite vom Sepp</a>
blub
</body>
</html>

Und diese Antwort die du per Socket Stream zurück bekommst, kannst du dann mit Regular Expressions auswerten und schauen, ob dein Link vorkommt ;)

lg, Yanick

//EDIT: Ja die Lösung mit file_get_contents() is warscheinlich noch besser, kannte die Funktion nich ;)
 
Zuletzt bearbeitet:
file_get_contents() duerfte aber auch nur dann funktionieren wenn, das allseits unbeliebte, allow_url_fopen auf on gesetzt ist.
Dementsprechend empfehle ich hier auf jeden Fall den Weg ueber fsockopen().
Dort kriegt man dann auch wenigstens den genauen Status-Code zurueck. Es kann ja auch sein das man per Code 302 weitergeleitet wird. Dann gibt es zwar keinen Inhalt, aber der Link funktioniert trotzdem, ausser die Seite zu der weitergeleitet wird hat wiederum ein Problem.
 
Zurück