rufo Pas me confondre avec Lycos! | Bonjour,
Dans le cadre de mon appli web Astres(cf signature), j'ai besoin de tester l'existence de fichiers situés sur un montage samba ou d'url. J'ai trouvé une méthode qui marche pour les 2 :
Code :
function remote_file_exists($url) { $head = ""; if (isset ($url_p["host"])) { $host = $url_p["host"]; } else { return 1; } if (isset ($url_p["path"])) { $path = $url_p["path"]; } else { $path = ""; } $fp = @ fsockopen ($host, 80, $errno, $errstr, 20); if (!$fp) { return 2; } else { $host = $parse['host']; fputs($fp, "HEAD ". $url. " HTTP/1.1\r\n" ); fputs($fp, "HOST: ". $host. "\r\n" ); fputs($fp, "Connection: close\r\n\r\n" ); $headers = ""; { $headers .= fgets ($fp, 128); } } $arr_headers = explode("\n", $headers); $return = false; if (isset ($arr_headers[0])) { $return = strpos ($arr_headers[0], "404" ) === false; } return $return; }
|
Ca marche bien sauf que des fois, la fonction bloque pendant 3 plombes et j'ai beau jouer sur le paramètre de timeout (ici, il est à 20s, j'ai testé avec 1s voire 0.1s), ça ne change rien Du coup, est-ce que vous connaitriez une autre façon de procéder?
Merci ---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
|