login  Naam:   Wachtwoord: 
Registreer je!
 Forum

urls controleren of ze nog bestaan

Offline ArndJan - 30/08/2007 16:57 (laatste wijziging 30/08/2007 17:00)
Avatar van ArndJanPHP interesse Ha nerds,

Ik zou graag wat ideeën willen van jullie (iedereen die dit leest). Hoe moet je een lijst met links controleren om te kijken of dit geen dode links zijn?

Spui jullie ideeën a.u.b. ik loop er een beetje op vast

Alvast bedankt  

[uptdate]

Gebruik geen zware functies er moeten makkelijk 50 tot 100 links in 1x gecontroleerd kunnen worden.

6 antwoorden

Gesponsorde links
Offline Rik - 30/08/2007 17:58
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
Je kan een HEAD request doen voor elke link (met een korte timeout tijd).

Head werkt hetzelfde als GET alleen krijg je nu alleen de headers terug, dus je hoeft niet te wachten totdat de server de hele pagina heeft gemaakt.
Als ie out timed of als de http status geen 200 is weet je dat hij mogelijk dood is. Om zeker te weten dat de server niet even een probleempje heeft onthoud je ergens dat die link mogelijk dood is en als controleer je hem later nog eens. Als ie dan weer niet goed is weet je vrijwel zeker dat ie dood is!
Offline ArndJan - 30/08/2007 23:16
Avatar van ArndJan PHP interesse Ja maar hoe kan ik zo een 'HEAD' request maken?

Heb je wat tips voor beelden en/of tutorials?

Bvd AJ
Offline Wim - 31/08/2007 02:05
Avatar van Wim Crew algemeen of met fsockopen?

  1. <?php
  2. $timeout = 5;
  3. $domein = "www.domein.ext"
  4. $socket = fsockopen($domein, 80, $errno, $errstr, $timeout);
  5. if (!$socket) {
  6. echo "$errstr ($errno)<br />\n";
  7. } else {
  8. $out = "GET / HTTP/1.1\r\n";
  9. $out .= "Host: ".$domein."\r\n";
  10. $out .= "Connection: Close\r\n\r\n";
  11.  
  12. fwrite($socket, $out);
  13. while (!feof($socket)) {
  14. echo fgets($socket, 128); //de inhoud van de webpagina
  15. }
  16. fclose($fp);
  17. }
  18. ?>
Offline Stijn - 31/08/2007 03:19
Avatar van Stijn PHP expert Of je klikt erop en stelt vast dat de link nog bestaat of niet Ik noem dat de manuele manier. (ja het is 3:20 en jij vroeg om ideeën)
Offline Thomas - 31/08/2007 10:54
Avatar van Thomas Moderator Je kunt inderdaad de statuscode opvragen zoals in wimmarien zijn script gebeurt, maar dit geeft geen absolute garanties. De site kan wel online zijn maar gewoon te traag reageren, of er kan een routingprobleem zijn vanaf de plaats waar je het script draait, of de webserver weigert requests of wat dan ook...

Eigenlijk kun je met zo'n socketscript alleen maar vaststellen of sites online zijn, maar niet -met 100% zekerheid- of ze offline zijn / de pagina's niet meer bestaan.

Ik heb ook nog ergens zo'n scriptje liggen die in wezen hetzelfde doet. Het enige wat die meer deed is de responsecode bekijken. Als je dan een "moved permanently" boodschap krijgt zou je nog verder kunnen graven en hyperlinks updaten oid... Of je dit nu handmatig doet, of met een script - beide manieren zijn bewerkelijk.
Offline ArndJan - 31/08/2007 16:54
Avatar van ArndJan PHP interesse Is de functie van wimmarien niet te zwaar in een lus voor 50 tot 100 urls?
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2020 Sitemasters.be - Regels - Laadtijd: 0.119s