Mailinglisten-Archive |
Hi, cool bleiben ;-)) [...] > > > ooops ... ;-) > > tsss, is ja wohl nicht Aufgabe von fsockopen zu überprüfen ob der Host > überhaupt existiert! Kannst Du aber nicht verhindern;-) Mach mal Dein @ vor fsockopen weg, lass Dir Warnings anzeigen und gib http://www.qawsedrf.de oder einen anderen Fantasienamen an. Bei fsockopen passiert folgendes: 1.) es wird geprueft ob es den 'host/service' gibt -> nein, Pech gehabt, das kann dauern, oder auch nicht 2.) falls bei 1.) ja wird ein connect() versucht, ab hier laeuft der timeout von fsockopen. 3.) Wenn connect() aus 2.) nicht innerhalb des timeout erfolgreich war -> Abbruch Mit microtime vor und nach fsockopen kann man nur die gesamte Zeit messen, die 1.) und 2.) zusammen brauchen. Wieviel Zeit fuer den connect() call verbraucht wird, laesst sich so nicht sagen. Hat man Pech und 1.) ist aus welchen Gruenden auch immer langsam, kann das dauern, beeinflussen laesst sich das mit timeout bei fsockopen auf jeden Fall nicht und verhindern auch nicht. > das sollte man natürlich vorher machen, Spricht nix gegen, aber ein existenter DNS Eintrag oder eine sonstige Prüfung ist zwar besser als nix, aber wir alle wissen, dass es bei DNS einige Unwaebarkeiten gibt. gethostbyname, etc. ist keine Garantie, dass ein socket geoeffnet werden kann. > das Timeout bezieht sich auf das > öffnen des sockets, nicht auf die Namensauflösung, Richtig, aber wie gesagt laesst sich eine Pruefung bei fsockopen nicht abstellen. Hat man Pech und gethostbyname, etc. liefern was erfolgreiches, kann es bei fsockopen trotzdem dauern -:( Gruesse Friedhelm -- http://www.jungle-world.com/
php::bar PHP Wiki - Listenarchive