הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   [PHP] האם אפשר לגלות את הגודל של קובץ URL בלי להוריד אותו? (https://hosts.co.il/forums/showthread.php?t=17016)

mlnn 03-03-06 12:28

ציטוט:

נכתב במקור על ידי BlueNosE
מה הבעיה עם getsize? לא פועלת על URL?

^^^^^^^

צודק, היא לא פועלת.

mlnn 03-03-06 18:59

נו מה קורה? היתי בטוח שיש פה תותחים משהו לא מהעולם.
בכל מקרה, מצאתי פתרון:

קוד:

function remote_file_size ($url)
{
  $head = "";
  $url_p = parse_url($url);
  $host = $url_p["host"];
  $path = $url_p["path"];


  $fp = fsockopen($host, 80, $errno, $errstr, 20);
  if(!$fp)
  { return false; }
  else
  {
      fputs($fp, "HEAD ".$url." HTTP/1.1\r\n");
      fputs($fp, "HOST: dummy\r\n");
      fputs($fp, "Connection: close\r\n\r\n");
      $headers = "";
      while (!feof($fp)) {
          $headers .= fgets ($fp, 128);
      }
  }
  fclose ($fp);
  $return = false;
  $arr_headers = explode("\n", $headers);
  foreach($arr_headers as $header) {
      $s = "Content-Length: ";
      if(substr(strtolower ($header), 0, strlen($s)) == strtolower($s)) {
          $return = substr($header, strlen($s));
          break;
      }
  }
  return $return;


}


print ("Google logo is " . remote_file_size
("http://www.google.it/intl/it_it/images/logo.gif") . " bytes!");

מישהו מעוניין להתנדב ולהסביר בעצם מה הולך פה?

בניה 04-03-06 20:59

בס"ד



סקריפט חמוד למדי.
כשהמחשב מבקש קובץ משרת הוא קודם כל מקבל מידע על הקובץ ואחד מהדברים שהוא מקבל זה את הגודל של הקובץ.
אז מה שהסקריפט עושה זה פותח התקשרות עם שרת ומבקש את הקובץ ומקבל את המידע עליו ואז סוגר את ההתקשרות ואז מוצא במה שהשרת שלח לו את הגודל ומחזיר אותו.

mlnn 04-03-06 21:24

ציטוט:

נכתב במקור על ידי בניה
בס"ד



סקריפט חמוד למדי.
כשהמחשב מבקש קובץ משרת הוא קודם כל מקבל מידע על הקובץ ואחד מהדברים שהוא מקבל זה את הגודל של הקובץ.
אז מה שהסקריפט עושה זה פותח התקשרות עם שרת ומבקש את הקובץ ומקבל את המידע עליו ואז סוגר את ההתקשרות ואז מוצא במה שהשרת שלח לו את הגודל ומחזיר אותו.

תודה :)


כל הזמנים הם GMT +2. הזמן כעת הוא 17:48.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ