Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Размер сайта
 
 автор: Коляка   (06.02.2006 в 00:09)   письмо автору
 
 

На какой логике можно написать скрипт который посчитает размер всего сайта ( в байтах ), т.е. сумму ( байтов ) всех файлов в каждой папке ..?

   
 
 автор: Саня   (06.02.2006 в 00:22)   письмо автору
 
   для: Коляка   (06.02.2006 в 00:09)
 

Нужно рекурсивно зайти во все папки и к общей переменной прибавить значение размера каждого файла в папке.

   
 
 автор: cheops   (06.02.2006 в 13:55)   письмо автору
 
   для: Саня   (06.02.2006 в 00:22)
 

Примеры рекурсивных обходов можно найти в разделе "Задачи на PHP"
http://www.softtime.ru/scripts/ftpscaner.php
http://www.softtime.ru/scripts/numlines.php
http://www.softtime.ru/scripts/replace.php

   
 
 автор: Коляка   (07.02.2006 в 01:17)   письмо автору
 
   для: cheops   (06.02.2006 в 13:55)
 

Нашел на форуме вот такой скрипт

<?php 
  
  scan_dir
("."); 
  
////////////////////////////////////////////////////////// 
  // Рекурсивная функция - спускаемся вниз по каталогу 
  ////////////////////////////////////////////////////////// 
  
function scan_dir($dirname
  { 
    
// Открываем текущую директорию 
    
$dir opendir($dirname); 
    
// Читаем в цикле директорию 
    
while (($file readdir($dir)) !== false
    { 
      
// Если файл обрабатываем его содержимое 
      
if($file != "." && $file != ".."
      { 
        
// Если имеем дело с файлом - регистрируем его 
        
if(is_file($dirname."/".$file)) 
        { 
          
          
$sizee filesize($dirname."/".$file)."<br>";
          
          echo   
$sizee ;
          
        }
         
        
// Если перед нами директория, вызываем рекурсивно 
        // функцию scan_dir 
        
if(is_dir($dirname."/".$file)) 
        { 
           
scan_dir($dirname."/".$file); 
        
        } 
      } 
    } 
    
// Закрываем директорию 
    
closedir($dir); 
  } 
  
?>


Выводит все размеры (байты), но как их между собой сложить и получить одну цифру ? ...
Пока понять не могу ... помогите ...

   
 
 автор: cheops   (07.02.2006 в 03:46)   письмо автору
 
   для: Коляка   (07.02.2006 в 01:17)
 

Обычно, чтобы не мучатся, переменную $sizee объявляют глобальной
<?php
  $sizee 
0;
  
scan_dir("."); 
  echo 
$sizee;
  
////////////////////////////////////////////////////////// 
  // Рекурсивная функция - спускаемся вниз по каталогу 
  ////////////////////////////////////////////////////////// 
  
function scan_dir($dirname
  { 
    global 
$sizee;
    
// Открываем текущую директорию 
    
$dir opendir($dirname); 
    
// Читаем в цикле директорию 
    
while (($file readdir($dir)) !== false
    { 
      
// Если файл обрабатываем его содержимое 
      
if($file != "." && $file != ".."
      { 
        
// Если имеем дело с файлом - регистрируем его 
        
if(is_file($dirname."/".$file)) 
        { 
           
          
$sizee += filesize($dirname."/".$file)."<br>"
           
        } 
         
        
// Если перед нами директория, вызываем рекурсивно 
        // функцию scan_dir 
        
if(is_dir($dirname."/".$file)) 
        { 
           
scan_dir($dirname."/".$file); 
         
        } 
      } 
    } 
    
// Закрываем директорию 
    
closedir($dir); 
  } 
   
?>

   
 
 автор: Коляка   (07.02.2006 в 12:20)   письмо автору
 
   для: cheops   (07.02.2006 в 03:46)
 

Спасибо, огромное ...

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования