[PHP] filesize

Webdesign, HTML, CSS, Flash, PHP, ASP, .NET, JavaScript. Kritika www stránek na Smetišti.

Moderátor: Moderátoři Živě.cz

Odeslat příspěvekod runnerHK 24. 10. 2006 14:56

Zdravíčko, lze nějak zjistit velikost souboru na cizím (!) serveru? Anebo je to nemožné? (předpokládám to druhé, ale co kdyby někdo věděl nějakou fintu:))
runnerHK
Kolemjdoucí

Odeslat příspěvekod Vebloud 24. 10. 2006 15:06

http://www.php.net/manual/cs/function.filesize.php Pod referencí funkce v diskuzi je finta na remote file.
Žít a nechat žít, ty máš svůj názor, já mám svůj názor, já ti nebudu nutit svůj, nemusím souhlasit s tvým, ale udělám vše, abys ho mohl svobodně vyjádřit.
Vebloud
Ex-moderátor
Uživatelský avatar

Odeslat příspěvekod runnerHK 24. 10. 2006 15:23

Ano, to jsem koukal, ale že bych z toho byl chytrý, to se říct nedá :))
runnerHK
Kolemjdoucí

Odeslat příspěvekod runnerHK 24. 10. 2006 15:54

Tak už jsem na to kápnul. Kopíruji vlastní úpravu, třeba se bude někomu hodit.

Kód: Vybrat vše
<?php

$soubor = "http://www.priklad.com/cesta/odkaz.zip";

function remote_filesize($url, $user = "", $pw = "") {
   ob_start();
   $ch = curl_init($url);
   curl_setopt($ch, CURLOPT_HEADER, 1);
   curl_setopt($ch, CURLOPT_NOBODY, 1);

   if(!empty($user) && !empty($pw)) {
      $headers = array('Authorization: Basic ' . base64_encode("$user:$pw"));
      curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
   }

   $ok = curl_exec($ch);
   curl_close($ch);
   $head = ob_get_contents();
   ob_end_clean();
   $regex = '/Content-Length:\s([0-9].+?)\s/';
   $count = preg_match($regex, $head, $matches);

   $matches[1] = round($matches[1]/(1024*1024),2); // velikost uvedena v MB, na dve desetinna mista
   return isset($matches[1]) ? $matches[1] : "unknown";
}

echo "<a href=\""$soubor"\">Odkaz [".remote_filesize($soubor,"","")." MB]</a>";

?>


A vypadá to samozřejmě takto (+ aktivní odkaz):
Odkaz [velikost souboru MB]

Uvítal bych případné opravy, zda-li budou potřeba... ;)
runnerHK
Kolemjdoucí

Odeslat příspěvekod Hacky 21. 2. 2007 09:03

nevite proc mi tento skript pise Parse error: syntax error, unexpected T_VARIABLE, expecting ',' or ';' in /var/www/easyfunfilm.com/hacky/velikost.php on line 27 ? dekuji za odpoved uz si jinak nevi rady
Hacky
Kolemjdoucí
Uživatelský avatar

Odeslat příspěvekod yaroslaf 21. 2. 2007 09:50

Protože je na tom řádku chyba.

Správně bude nejspíš:
Kód: Vybrat vše
echo "<a href=\"$soubor\">Odkaz [".remote_filesize($soubor,"","")." MB]</a>";
yaroslaf
Junior
Uživatelský avatar

Odeslat příspěvekod eso 21. 2. 2007 09:52

Imho jsou tam navic uvozovky kolem $soubor a ma to byt takhle:

Kód: Vybrat vše
echo "<a href=\"$soubor\">Odkaz [".remote_filesize($soubor,"","")." MB]</a>";
eso
Junior
Uživatelský avatar


Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 0 návštevníků