Вход Регистрация
Файл: forsoc.ru/manul/classes/FileInfo.inc.php
Строк: 75
<?php

class FileInfo
{
    public function 
__construct($filePath)
    {
        
$this->web_root_dir $_SERVER['DOCUMENT_ROOT'];
        
$this->getInfoByName($filePath);
    }

    public function 
getInfoByName($filePath)
    {
        
$this->MAX_FILE_SIZE_FOR_HASHING 1024 1024;

        
$this->absoluteName $filePath;
        
$this->name str_replace($this->web_root_dir'.'$filePath);
        
$this->ctime 0;
        
$this->mtime 0;
        
$this->owner '-';
        
$this->group '-';
        
$this->access 0;
        
$this->size = -1;
        
$this->md5 '-';

        if (
file_exists($filePath)) {
            
$this->ctime filectime($filePath);
            
$this->mtime filemtime($filePath);

            
$owner fileowner($filePath);
            
$ownerInfo function_exists('posix_getpwuid') ? posix_getpwuid($owner) : array('name' => $owner);
            
$this->owner $ownerInfo['name'];

            
$group filegroup($filePath);
            
$groupInfo function_exists('posix_getgrgid') ? posix_getgrgid($group) : array('name' => $group);
            
$this->group $groupInfo['name'];

            
$this->access substr(sprintf('%o'fileperms($filePath)), -4);

            if (
is_file($filePath)) {
                
$this->size filesize($filePath);

                if (
$this->size <= $this->MAX_FILE_SIZE_FOR_HASHING) {
                    
$this->md5 hash_file('md5'$filePath);
                }
            }
        }

        return 
true;
    }

    public function 
getXMLNode()
    {
        
$dom = new DOMDocument('1.0''utf-8');
        
$fileinfoNode $dom->createElement('file');
        
$fileinfoNode->appendChild($dom->createElement('path'$this->name));
        
$fileinfoNode->appendChild($dom->createElement('size'$this->size));
        
$fileinfoNode->appendChild($dom->createElement('ctime'$this->ctime));
        
$fileinfoNode->appendChild($dom->createElement('mtime'$this->mtime));
        
$fileinfoNode->appendChild($dom->createElement('owner'$this->owner));
        
$fileinfoNode->appendChild($dom->createElement('group'$this->group));
        
$fileinfoNode->appendChild($dom->createElement('access'$this->access));
        
$fileinfoNode->appendChild($dom->createElement('md5'$this->md5));
        
$dom->appendChild($fileinfoNode);
        return 
$dom->getElementsByTagName('file')->item(0);
    }

    public function 
__toString()
    {
        
$data = array($this->name$this->size$this->ctime$this->mtime$this->owner$this->group$this->access$this->md5);
        return 
implode(';'$data);
    }
}
Онлайн: 3
Реклама