[php]snel een url checken

Pagina: 1
Acties:
  • 104 views sinds 30-01-2008
  • Reageer

  • Vulpecula
  • Registratie: April 2001
  • Laatst online: 17-09 23:05
Hoe kan ik zeer snel een url check of hij bestaat?
Want met fopen gaat dat wel. Maar daar wordt de pagina nogal langzaam als hij meer als 100 links moet gaan checken.
Weet iemand een andere function hiervoor? Ik heb bij php.net gezocht op "check" en "url".

Nix gevonden.

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

dat gaat niet sneller
anders zou je te snel kunnen zeggen dat een site offline is

die time-out tijd is er niet voor niets
inet is niet overal even snel imho

Doet iets met Cloud (MS/IBM)


Verwijderd

Hoe lang denk je dat het duurt om 100 browsers te openen, een domeinnaam te resolven een HTTP request te doen en een pagina binnen te halen, maar dan alleen de HTML zonder plaatjes en zonder het te renderen?

Juist, lang. En da's precies wat je moet doen om een link te checken. Dus hoe je het ook wendt of keert, 't zal nooit snel worden.

HTH :)

edit:

Okay okay, je opent geen full featured browser, dus het laden van zoiets kost je veel minder tijd.

Verder moet je wel bedenken dat je waarschijnlijk alle links 1 voor 1 checkt, dus terwijl je wacht op antwoord van 1 server gebeurt er niets. Je zou feitelijk asynchroon en parallel moeten gaan checken maar sec met PHP gaat dat niet denk ik. Als je een object maakt dat dat voor je doet kan het wel, en dat zou je veel tijd schelen.

  • Vulpecula
  • Registratie: April 2001
  • Laatst online: 17-09 23:05
jammer

  • Vulpecula
  • Registratie: April 2001
  • Laatst online: 17-09 23:05
Waar werkt het wel in dan? CGI? of misschien javascript?

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

Op vrijdag 14 september 2001 16:23 schreef frankschers het volgende:
Waar werkt het wel in dan? CGI? of misschien javascript?
wat is hier niet duidelijk aan??
Op vrijdag 14 september 2001 16:10 schreef D2k het volgende:
dat gaat niet sneller
anders zou je te snel kunnen zeggen dat een site offline is

die time-out tijd is er niet voor niets
inet is niet overal even snel imho
dat geldt gewoon algemeen hoor

Doet iets met Cloud (MS/IBM)


  • wasigh
  • Registratie: Januari 2001
  • Niet online

wasigh

wasigh.blogspot.com

in java kun je multithreaded werken,
en je kunt met bepaalde headers alleen de header ophalen van een pagina.. (scheelt tijd)

  • Nikel
  • Registratie: Juli 2000
  • Niet online
Je zou een progje kunnen maken wat het voor je doet in een taal die wel multithreading ondersteund.

Volgens mij moet je op al die time-outs namelijk ook wel tegelijk kunnen wachten ipv allemaal na elkaar.

  • Vulpecula
  • Registratie: April 2001
  • Laatst online: 17-09 23:05
Ik nog eens gezocht op php.net.

Ik heb toch iets gevonden.
readlink();
Is deze wel sneller? Ik kan het niet testen want kan niet worden gebruikt op een windows systeem.
http://www.php.net/manual/en/function.readlink.php

Verwijderd

of een ping middels exec?
Kweet ook nie

  • Vulpecula
  • Registratie: April 2001
  • Laatst online: 17-09 23:05
Gaat denk ik niet. Er staat het volgende "Returns the target of a symbolic link" zal zeker alleen de links zijn die ook op je server staan. Klopt dit?

  • Jelle Niemantsverdriet
  • Registratie: Februari 2000
  • Laatst online: 12:47
Op vrijdag 14 september 2001 17:01 schreef frankschers het volgende:
Gaat denk ik niet. Er staat het volgende "Returns the target of a symbolic link" zal zeker alleen de links zijn die ook op je server staan. Klopt dit?
Ja dit gaat over symbolic links op je *nix systeem, dwz bestanden die zelf niet echt een bestand zijn maar verwijzen naar een ander (lokaal) bestand.

Verwijderd

Op vrijdag 14 september 2001 16:28 schreef wasigh het volgende:
in java kun je multithreaded werken,
en je kunt met bepaalde headers alleen de header ophalen van een pagina.. (scheelt tijd)
De Java kruistocht wordt voortgezet .... ;)

Maar vanuit PHP kan je een CORBA object aanroepen, en met Java kun je zo'n object maken dus het is op die wijze mogelijk om meerdere HTTP calls parallel te doen.

En inderdaad, HTTP heeft een request method HEAD waarmee je alleen een header response krijgt, met zaken als foutmeldingen (404) en content-length e.d., en dat scheelt je weer wat tijd.

  • Vulpecula
  • Registratie: April 2001
  • Laatst online: 17-09 23:05
Kun je de functie readlink() niet ergens aanpassen zodat er ook url's kunnen worden gecontroleerd???

  • Jelle Niemantsverdriet
  • Registratie: Februari 2000
  • Laatst online: 12:47
Op vrijdag 14 september 2001 17:35 schreef frankschers het volgende:
Kun je de functie readlink() niet ergens aanpassen zodat er ook url's kunnen worden gecontroleerd???
Nee, readlink is een functie van het bestandssysteem (daarom werkt 'ie ook niet onder Windows) en heeft echt niets te maken met een weblink.

  • eamelink
  • Registratie: Juni 2001
  • Niet online

eamelink

Droptikkels

Op vrijdag 14 september 2001 16:58 schreef daniel_hoenderdos het volgende:
of een ping?
Met een ping kan je hooguit checken of de server online is, niet of een file bestaat.

Verwijderd

Cronjob,

Url's elke tien minuten laten checken oid, in een bestand/db gooien etc..

Blijft langzaam, maar niet voor de surfer.

  • elnino
  • Registratie: Augustus 2001
  • Laatst online: 03-09 05:13
Op vrijdag 14 september 2001 19:28 schreef M4TR1X het volgende:
Cronjob,

Url's elke tien minuten laten checken oid, in een bestand/db gooien etc..

Blijft langzaam, maar niet voor de surfer.
Je kan bijvoorbeeld elke keer dat de bezoeker de pagina opent een andere link controleren... dus bij de eerste bezoeker controleert het script URL 1, bij de tweede URL 2 etc.

Het enige wat je dan nog nodig hebt is veel bezoekers... ;)
Pagina: 1