J'essaye de lire un header, malhereusement j'essaye d'optimiser la vitesse, car 4,5 secondes c'est trop long.
En curl tout fonctionne mais c'est leng :
function curlGetHeader ($url){
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 1);
$page = curl_exec($ch);
curl_close($ch);
$header = substr($page, 0, strpos($page, "\r\n\r\n"));
return $header;
}
j'obtiens bien :HTTP/1.1 200 OK
Date: xxxxxxxxxxxxxx
Server: xxxxxxxxxxxxxxxxx
X-Powered-By: xxxxxxxxxxxxxxxxxxx
Content-Length: xxxxxx
;
Content-Disposition: attachment; filename="libraie windows.dll"
Connection: close
Content-Type: application/force-download;
function socketGetHeaders($url){
$url = parse_url($url);
$url['port'] = isset($url['port']) ? $url['port'] : '80';
$url['path'] = isset($url['path']) ? $url['path'] : '/';
$fp = fsockopen($url['host'], $url['port'], $errno, $errstr, 10);
if (!$fp) {
echo "Erreur de socket: $errno - $errstr<br />\n";
return FALSE;
} else {
$header = "GET ".$url['path']." HTTP /1.1\r\n";
$header .= "Connection: Close\r\n\r\n";
$header = "GET ".$url['path']." HTTP /1.1\r\n";
$header .= "Accept: */*\r\n";
$header .= "Cache-Control: no-cache\r\n";
$header .= "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.0.2) Gecko/2008090514 Firefox/3.0.2\r\n";
$header .= "Host: $s_Host\r\n";
$header .= "Connection: Close\r\n";
fputs($fp, $header);
}
fputs($fp, $header);
$page = '';
while (!feof($fp)){
$page.= fgets($fp, 1280);
if(strpos($page, "\r\n\r\n")) break;
}
fclose($fp);
return $page;
}
J'obtiens sa :et pas filename...HTTP/1.1 200 OK
Date: xxxxxxxxxxxxxxxxxx
Server: xxxxxxxxxxxxxxxxxxxxx
X-Powered-By: xxxxxxxxxxxxxxx
Vary: Accept-Encoding
Connection: close
Content-Type: text/html
Get_Header() = trop leng.
Donc merci de m'aidé sur la technique fsockopen.