Hallo,
nach Definition müsste das File um es mit filemtime() zu
prüfen (wann wurde die Datei das letzte mal geändert) auf dem gleichen Server sein.
Tut es in meinem Fall aber nicht. Das File liegt auf einem zweiten Server.
Gibt es eine schöne, perfomanceschonende Möglichkeit das File zu
prüfen, wann es das letzte mal geändert wurde?
Ich habe da eine Function gefunden, da aber sehr heftig zugegriffen wird möchte ich nicht jedesmal die Function laufen lassen (die macht filemtime auf fremden Server)
PHP-Code:
<?php
function filemtime_remote($uri)
{
$uri = parse_url($uri);
$handle = @fsockopen($uri['host'],80);
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) == 'last-modified')
{
$result = strtotime($value);
break;
}
}
}
fclose($handle);
return $result;
}
?>
Eine weitere Möglichkeit besteht noch:
Das File das zu
prüfen ist, ist ein XML File welches ein "Generierung Stamp" besitzt. Müsste das File öffnen, die Zeile extrahieren, in eine Variable schreiben...puhh, viel zu Performacelastig...
Hat irgendwer eine Idee?