Вход Регистрация
Файл: engine/classes/files.class.php
Строк: 55
<?php
    
   
/**
    * @author Tadochi aka Patsifist <Tadochi@spaces.ru>
    * @class Files 
    * @version 0.1
    * Класс для работы с файлами и папками
    */

    
Class files
    
{
        public
            
$is_dir, // true если папка
            //$action, // get_data, clean_dir, delete_dir, reanme
            
$link; // Ссылка на объект
        
public $size = 0; // Размер файла или папки
        
public $files  = 0; // Количество файлов в папке
        
public $dirs = 0;  // Количество папок в папке

        
public function __construct($link, $action = false)
        {
            
$this->link = $link;
            
$this->action = $action;
            
// $this->is_dir = is_dir($this->link);
            
if (is_dir($link))
            {
                
$this->link = $link . (substr($link, -1) != '/' ? '/' : null);
                
$this->is_dir = true;
            }

            if (!
is_file($link) && !$this->is_dir)
            {
                
trigger_error('<b>Warning</b>: '.$link . ' not found', E_USER_ERROR);
            }

            if (
$action)
            {
                
$this->$action($link);
            }
        }

        public function 
description()
        {
            if (
$this->is_dir)
                return
                    
'Информация о папке ' . basename($this->link) . ' (' . $this->link . ')' . 
                    
'<br />Размер в байтах: ' . $this->size . 
                    
'<br />Папок: ' . $this->dirs . '<br />
                    Файлов: ' 
. $this->files ;
            else
                return
                    
'Информация о файле ' . basename($this->link) . ' (' . $this->link . ')'.
                    
'<br />Размер в байтах: ' . filesize($this->link) . 
                    
'<br />Расширение: '. pathinfo($this->link, PATHINFO_EXTENSION);
        }

        public function 
get_data($link)
        {
            if (
is_dir($link))
            {
                
$dir = opendir($link);
                while(
$file = readdir($dir))
                {
                    if (
$file == '.' || $file == '..')
                    {
                        continue;
                    }

                    if (
is_dir($link . $file))
                    {
                        
$this->dirs += 1;
                        
$this->get_data($link . $file . '/');
                    }
                    else
                    {
                        
$this->files += 1;
                        
$this->size += filesize($link . $file);
                    }
                }
            }
        }
    }
Онлайн: 2
Реклама