Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] pobieranie rozmiaru pliku zdalnego
Forum PHP.pl > Forum > Przedszkole
fredzio90
mam pewien problem, mianowicie chciałbym się dowiedzieć czy jest funkcja która po podaniu adresu np: http://forum.php.pl/style_images/1/logo4.gif zwracała mi rozmiar danego pliku questionmark.gif potrzebne mi to jest przy pisaniu skryptu do ograniczania pobierania plików..
Hectic
http://pl.php.net/manual/pl/function.filesize.php

ale funkcja działa tylko na pliki z serwer na którym jest wykonywany skrypt, czy da się to zrobić inaczej... daj chwilkę pomyśleć
fredzio90
znalazłem i przepraszam za post, ale chciałbym się upewnić, jakie wymagania musi mieć serwer aby to działąło bo testuje ten skypt (funckję) na locaslhoscie na full opcjach...:

  1. <?php
  2. function get_remote_file_size($url, $readable = true){
  3.  $parsed = parse_url($url);
  4.  $host = $parsed["host"];
  5.  $fp = @fsockopen($host, 80, $errno, $errstr, 20);
  6.  if(!$fp) return false;
  7.  else {
  8.  @fputs($fp, "HEAD $url HTTP/1.1r\n");
  9.  @fputs($fp, "HOST: $hostr\n");
  10.  @fputs($fp, "Connection: closer\nr\n");
  11.  $headers = "";
  12.  while(!@feof($fp))$headers .= @fgets ($fp, 128);
  13.  }
  14.  @fclose ($fp);
  15.  $return = false;
  16.  $arr_headers = explode("\n", $headers);
  17.  foreach($arr_headers as $header) {
  18. // follow redirect
  19. $s = 'Location: ';
  20. if(substr(strtolower ($header), 0, strlen($s)) == strtolower($s)) {
  21. $url = trim(substr($header, strlen($s)));
  22. return get_remote_file_size($url, $readable);
  23. }
  24.  
  25. // parse for content length
  26.  $s = "Content-Length: ";
  27.  if(substr(strtolower ($header), 0, strlen($s)) == strtolower($s)) {
  28.  $return = trim(substr($header, strlen($s)));
  29.  break;
  30.  }
  31.  }
  32.  if($return && $readable) {
  33. $size = round($return / 1024, 2);
  34. $sz = "KB"; // Size In KB
  35. if ($size > 1024) {
  36. $size = round($size / 1024, 2);
  37. $sz = "MB"; // Size in MB
  38. }
  39. $return = "$size $sz";
  40.  }
  41.  return $return;
  42. }
  43. ?>
nitek
problem rozwiązany został tutaj: http://forum.magazynyinternetowe.pl/index.php?showtopic=574

guitar.gif
netmare
Niestety nie zawsze bedzie to działać...
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.