1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
| function monFileGetContents($adresse, $timeout = 10){
$url = parse_url($adresse);
$url['port'] = isset($url['port']) ? $url['port'] : '80';
$url['scheme'] = isset($url['scheme']) ? strtoupper($url['scheme']) : 'HTTP';
$fp = fsockopen($url['host'], $url['port'], $errno, $errstr, $timeout);
if (!$fp) {
echo "Erreur de socket: $errno - $errstr<br />\n";
return false;
} else {
$header = 'GET '.$url['path'].' '.$url['scheme']."/1.1\r\n";
$header .= 'Host: '.$url['host']."\r\n";
$header .= "User-Agent: PHP Script\r\n";
$header .= "Connection: Close\r\n\r\n";
fputs($fp, $header);
stream_set_timeout($fp, $timeout);
while (!feof($fp)) {
$page .= fread($fp, 262144);
}
$stream = stream_get_meta_data($fp);
fclose($fp);
if ($stream['timed_out']) {
echo "Le délai de réponse de la page <b>".$adresse.
'</b> a dépassé le timeout de <b>'.$timeout.'</b> sec.';
return false;
}else{
/*//Pour debugging: echo des headers
echo '<pre>'.$header;
echo substr($page, 0, strpos($page, "\r\n\r\n"));
echo '</pre>';
*/
// séparation du header
$page = substr($page, strpos($page, "\r\n\r\n"));
$page = trim($page);
return $page;
}
}
} |
Partager