Dateigröße einer remote-Datei (extern) ermitteln ?
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
ausprobieren
byte
code
dank
datei
ergebnis
ermitteln
externe datei
externen datei
externen dateien
fehlerfrei code
http
image
kopieren
laden
layout
lokale datei
server
url
-
Hallo
ich will die Dateigröße einer externen Datei ermitteln
... leider fuktioniert ja filesize() nicht bei externen Dateien (remote-Dateien)
$data_quelle = "http://example.org/eine_remote_datei.xml"; $data_cached = "./lokale_kopie_der_datei.xml"; $headerinfo = get_headers($data_quelle,1); $groesse1 = $headerinfo['Content-Length']; copy($data_quelle, $data_cached); $groesse2 = filesize($data_cached); echo "Ergebnis:<br />----------------------------------- \r\n"; echo "<br /> extern: ".$groesse1."\r\n"; echo "<br /> lokal: "$groesse2.."\r\n";
Ergebnis:
-----------------------------------
extern: 277
lokal: 57376
hmm, klappt so also nicht, die externe Datei ist doch genaus groß, wie die lokale Datei per copy abgeholt
?????
a) Kann man den Wert $headerinfo['Content-Length'] irgendwie umrechnen in Byte ?
wie komme ich an die tatsächliche Byte-Größe einer externen Datei?
b) wenn nein, wie kann ich sonst die Dateigröße einer remote-Datei ermitteln ?
Danke!
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Die einfachste Möglichkeit wäre die Datei einfach auf den eigenen Server zu kopieren:
$content = file_get_contents("http://www.example.com"); $handle = fopen("example-com.html", "w+"); fwrite($handle, $content); fclose($handle); echo size . ': ' . filesize('example-com.html') . ' bytes';
und danach wieder zu löschen :)
Produziert halt Traffic..
Vielleicht könntest du das noch ausprobieren, ohne die Datei laden zu müssen:
<?php $fp = fopen($some_file, 'r'); $meta = stream_get_meta_data($fp); echo $meta['wrapper_data']; ?>
Beitrag zuletzt geändert: 4.4.2011 18:48:33 von sneppa -
Bei mir funktioniert dies fehlerfrei:
<?php function getRemoteFileSize($url, $thereturn='') { if (substr($url,0,4)=='http') { $x = array_change_key_case(get_headers($url, 1),CASE_LOWER); $x = $x['content-length']; } else { $x = @filesize($url); } if (!$thereturn) { return $x ; } elseif($thereturn == 'mb') { return round($x / (1024*1024),2) ; } elseif($thereturn == 'kb') { return round($x / (1024),2) ; } } echo getRemoteFileSize('http://www.lima-city.de/images/layout/top/logo/branding_stamp.png'); ?>
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage