[PHP] Fehlerabfang fsockopen()....

Dieses Thema im Forum "Webentwicklung" wurde erstellt von Neo311087, 7. September 2007 .

Schlagworte:
  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 ...
     
  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
     
  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
     
  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 ...
     
  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
     
  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.
     
  7. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.