kostenloser Webspace werbefrei: lima-city


Dateigröße einer remote-Datei (extern) ermitteln ?

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    websuche

    websuche hat kostenlosen Webspace.

    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!
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. 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
  4. 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'); 
    ?>

  5. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!