#1 7. September 2007 Fehlerabfang fsockopen().... Hab mir nen Script geschrieben das auf verschiedene Proxyserver connectet ( werden aus einer DB geholt ) und dann ne REFID seite aufruft die in der url mit übergeben wird, funktioniert so weit so gut , das problem ist das wenn er zu ner stelle kommt wo nen proxy server down is , er nen fehler liefert und abbricht , wie kann ich das vehindern ? also das er abbricht ... er soll dann einfach mit dem nächsten weiter machen.... Code: $proxy_fp = fsockopen($proxy_name, $proxy_port); if (!$proxy_fp) {return false;} fputs($proxy_fp, "GET $proxy_url HTTP/1.1\r\nHost: $proxy_name\r\nUser-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)\r\nConnection: Keep-alive\r\n\r\n"); while(!feof($proxy_fp)) {$proxy_cont .= fread($proxy_fp,4096);} fclose($proxy_fp); $proxy_cont = substr($proxy_cont, strpos($proxy_cont,"\r\n\r\n")+4); die proxy server geht er mit einer while schleife durch ... + Multi-Zitat Zitieren
#2 7. September 2007 AW: Fehlerabfang fsockopen().... mhh... was sollte eigentlich diese zeile: PHP: if (! $proxy_fp ) {return false ;} das macht zwar auch was, aber schön isses nicht und liefert wahrscheinlich auch den fehler (was ich aber nicht genau sagen kann, da du nicht die fehlermeldung gepostet hast; unklug!) versuchs mal so: PHP: if (! $proxy_fp ) { echo "Proxy nicht zu erreichen" ; die; // oder als einzeiler mit die("Proxy ...") oder gleich exit } else { fputs .... while .... { //****** Schleife hier hin }} und achte auf deine einrückungen, if und while in eine zeile quetschen ist unübersichtlich. wenn du dir so einen stil aneignest, dann hast du es schwer, wenn du später z.b. python lernen willst + Multi-Zitat Zitieren
#3 7. September 2007 AW: Fehlerabfang fsockopen().... jaaa sorry wegen der einen zeile , das war mal ne funktion ... und war der rest davon .. hab jetzt was mit try und catch gelesen ... werd das mal ausprobieren + Multi-Zitat Zitieren
#4 10. September 2007 AW: Fehlerabfang fsockopen().... Warning: fsockopen() [function.fsockopen]: unable to connect to XXXXXXXXXX:8080 (Connection timed out) in /var/www/user/XXXXXXXXX.xail.net/XXXXXX.php on line 30 den error bringt der mir wenn der nen time out zu ner proxy hat, wie kann ich das abfangen, und das er dann normal weiter macht mit der nächsten proxy? try und catch hilft da auch nicht, und @ vorm befehl auch nich ... + Multi-Zitat Zitieren
#5 10. September 2007 AW: Fehlerabfang fsockopen().... Ein @ vorm befehl müsste helfen, ansonsten pingste den server halt erstmal an bzw. guckst ob er erreichbar ist + Multi-Zitat Zitieren
#6 10. September 2007 AW: Fehlerabfang fsockopen().... Mit dem Problem wirst du leider leben müssen, manch einer hält nämlich schon n Ping für schädlich und wenn das echo nicht zurückkommt du genauso in den Timeout laufen könntest. Effektiv kannst du nichts dagegeben machen, außer deinen Webserver so tunen dass der der "befohlenen" task mit ordentlichem zeitmanagement erledig .... hiermit PHP: socket_set_timeout - Manual z.B. + Multi-Zitat Zitieren