dateigröße, mehr nicht

Du kannst die grösse einer Datei ermitteln und zwar so:
PHP:
filesize ('Dateiname')
Aber ich denke nicht das du damit auf eine andere Domain (FTP od. HTTP) zugreifen kannst! Da hat man wahrscheinlich nicht die nötigen rechte dazu!
 
hi
ersteinmal danke für deine anwort
die funktion die du nanntest kannte ich schon, bezeiht sich leider nur auf files die auf dem selben host sind :(
kann man das noch irgendwie anders machen?
helft mir ihr profis :-)
 
also das geht aba doch nicht, du kannst nciht von "fremden" hosts daten auslesen, dann könntest du theoritsch och auf fremde DB'z zu greifn, und das soll ja keiner, genuso wenig wie es andre angeht was du für daten auf deinem host hast!
 
du könntest die filesize bei nem http server per HEAD abfrage mit fsockopen bekommen. bei ftp wüsste ich etz nur mit ftp function drof und dann ftp_size() :)) kostet natürlich alles zeit. obwohl so ne http head meist relativ schnell vollzogen ist. beim ftp vlt. ne bissel algorithmisch effizient in bezug auf schnelligkeit arbeiten. dann geht das auch:D
 
PHP:
<?php

	function filesize_remote($url, $timeout=2)
	{

		$url = parse_url($url);
		$size = null;

		if( $fp = @fsockopen($url['host'], ($url['port'] ? $url['port'] : 80), $errno, $errstr, $timeout) ) {
			fwrite($fp, 'HEAD '.$url['path'].$url['query']." HTTP/1.0\r\nHost: ".$url['host']."\r\n\r\n");
			stream_set_timeout($fp, $timeout);
			while( !feof($fp) ) {
				$size = fgets($fp, 4096);
				if( stristr($size, 'Content-Length') !== false ) {      // PHP5: stripos
					$size = trim(substr($size, 16));
					break;
				}
			}
			fclose($fp);
		}
		return is_numeric($size) ? intval($size) : false;

	}

?>
 
Zurück