
Temat: Pobieranie parametrów nagłówka headers
Data: 2006-05-17 o godz. 23:03:51 Autor: As
Z pomocą poniższej funkcji możemy sprawdzić parametry danego pliku, ulokowanego na zdalnym serwerze. Funkcja pobiera wybrany przez nas fragment nagłówka headers i wyświetla jego wartość. Dzięki temu w łatwy sposób można pobrać takie informacje jak np. rozmiar danego pliku w bajtach, typ danego pliku, oraz czas ostatniej modyfikacji itp.
<?php
# Ekipa: http://www.Twoja-Strona.Net
# Autor: As
function URL_file($uri, $opcja, $timeout=20)
{
// $url = (string) url do zdalnego pliku.
// $opcja = (string) parametr nagłówka headers.
// $timeout = (int) czas łączenia z serwerem, domyślnie 20 sekund.
$uri = @parse_url($uri);
$uri['port'] = isset($uri['port']) ? $uri['port'] : 80;
$handle = @fsockopen($uri['host'], $uri['port']);
@socket_set_timeout($handle, $timeout);
if(!$handle)
return 0;
fputs($handle,"GET $uri[path] HTTP/1.1\r\nHost: $uri[host]\r\n\r\n");
$result = 0;
while(!feof($handle))
{
$line = fgets($handle,1024);
if(!trim($line))
break;
$col = strpos($line,':');
if($col !== false)
{
$header = trim(substr($line,0,$col));
$value = trim(substr($line,$col+1));
if(strtolower($header) == strtolower($opcja))
{
$result = $value;
break;
}
}
}
fclose($handle);
return $result;
}
// Przykład, zastosowanie.
$url = 'http://www.google.pl/images/hp0.gif';
echo "Plik: ".$url."<br>";
echo "Plik ma: (".URL_file($url, 'content-length').") bajtów.<br>";
echo "Typ pliku: (".URL_file($url, 'Content-Type').").<br>";
echo "Ostatnia modyfiakcja pliku: (".URL_file($url, 'Last-Modified').").";
?>
|
|