Файлы

Для работы с файлами и папками в файле includes/file.php определен класс File.

Методы

void check_file (string $file_path) – Проверяет существует ли файл.

  • string $file_path: путь до файла относительно корня сайта

Пример:

try
{
    
File::check_dir("modules/news/news.model.php");
}
catch (
Exception $e)
{
    echo
$e->getMessage();
}
// если файл не существует, выведет:
// Ошибочный путь.

void copy_file (string $source, string $file_path) – Копирует файл.

  • string $source: полный путь до исходного файла
  • string $file_path: путь до нового файла относительно корня сайта

Пример:

// скопируем файл modules/news/news.model.php
// в файл modules/news/news.model.copy.php
File::copy_file(ABSOLUTE_PATH."modules/news/news.model.php", "modules/news/news.model.copy.php");

// скопируем файл http://www.diafan.ru/img/logo.png
// в файл userfiles/logo_cms_diafan.png
File::copy_file("http://www.diafan.ru/img/logo.png", "userfiles/logo_cms_diafan.png");

void upload_file (string $tmp_path, string $file_path) – Загружает файл и удаляет временный файл.

  • string $tmp_path: полный путь, где храниться временный файл
  • string $file_path: путь до нового файла относительно корня сайта

Пример:

// скоприуем в файл userfiles/images/new_image.jpg
// только что загруженный через форму файл из переменной image
File::upload_file($_FILES["image"]['tmp_name'], "userfiles/images/new_image.jpg");

void save_file (string $content, string $file_path, [mixed $append = false]) – Сохраняет файл.

  • string $content: содержание файла
  • string $file_path: путь до нового файла относительно корня сайта
  • mixed $append: (false|0|1) режим записи файла: false - создает новый файл (если на момент вызова файл с таким именем уже существовал, то он предварительно уничтожается), 0 - дополняет файл (если файл уже существует, данные будут дописаны в конец файла вместо того, чтобы его перезаписать), 1 - дополняет файл с новой строки (если файл уже существует, данные будут дописаны в конец файла с новой строки вместо того, чтобы его перезаписать)

Пример:

// создадим файл userfiles/file.txt с указанным содержимым
File::save_file('Содержимое файла.', "userfiles/file.txt");

void rename_file (string $name, string $old_name, string $path) – Переименовывает файл.

  • string $name: новое имя
  • string $old_name: старое имя
  • string $path: путь до папки, в которой лежит файл, относительно корня сайта

Пример:

// переименуем файл tmp/my_img.jpg
// в файл tmp/my_img_new.jpg
File::rename_file("my_new_img.jpg", "my_img.jpg", "tmp");

void delete_file (string $file_path) – Удаляет файл.

  • string $file_path: путь до файла относительно корня сайта

Пример:

// удалим файл userfiles/my_file.zip
File::delete_file("userfiles/my_file.zip");

mixed File size or false if error file_size (string $file_path)

Возврат размера файла (даже для файла > 2 Гб) For file size over PHP_INT_MAX (2 147 483 647), PHP filesize function loops from -PHP_INT_MAX to PHP_INT_MAX.

.

  • string $file_path: путь до файла относительно корня сайта

string hash_file (string $file_path) – Возврат хэш файла.

  • string $file_path: путь до файла относительно корня сайта

void check_dir (string $dir_path) – Проверяет существует ли папка.

  • string $dir_path: путь до папки относительно корня сайта

Пример:

try
{
    
File::check_dir("cache/files");
}
catch (
Exception $e)
{
    echo
$e->getMessage();
}
// если директория не существует, выведет:
// Ошибочный путь.

void create_dir (string $path, [boolean|string $access_close = false]) – Создает папку, если она не создана.

  • string $path: путь до папки-родителя относительно корня сайта
  • boolean|string $access_close: доступ к папке извне будет закрыт

Пример:

// создаем папку cache/files
// все файлы в папке будут недоступны извне
File::create_dir("cache/files", true);

void rename_dir (string $name, string $old_name, string $path) – Переименовывает папку.

  • string $name: новое имя папки
  • string $old_name: старое имя папки
  • string $path: путь до папки-родителя относительно корня сайта

Пример:

// переименовываем папку userfiles/my/files
// в userfiles/my/images
File::rename_dir("images", "files", "userfiles/my");

void copy_dir (string $source, string $path) – Копирует папку.

  • string $source: полный путь до исходной папки
  • string $path: путь до папки-назначения относительно корня сайта

Пример:

// копируем папу modules/news в custom/my/modules/news
File::copy_dir(ABSOLUTE_PATH."modules/news", "custom/my/modules/news");

void delete_dir (string $dir_path) – Удаляет папку.

  • string $dir_path: путь до папки относительно корня сайта

Пример:

// удаляем папку cache/files
File::delete_dir("cache/files");

boolean is_writable (string $path, [boolean $ftp = false]) – Определяет, доступны ли файл или папка для записи.

  • string $path: путь до файла или папки относительно корня сайта
  • boolean $ftp: учитывать возможность редактирования по FTP

Пример:

if(File::is_writable("cache/files"))
{
    echo
"папка доступна для записи";
}
// если папка cache/files/ доступна для записи, выведет:
// папка доступна для записи

string compress (string|array $path, string $type) – Сжимает JS и CSS файлы.

  • string|array $path: путь до файла относительно корня сайта
  • string $type: тип: css, js

Пример:

// сжимаем файлы css/style.css и css/menu.css и подключаем их
$compress_files = File::compress(('css/style.css', 'css/menu.css'), 'css');

// если включен режим разработки, то файлы не будут сжаты и объединены, тогда подключаем каждый файл отдельно
if(is_array($compress_files))
{
    foreach(
$compress_files as $file)
    {
        echo
'<link href="'.BASE_PATH.$file.'" rel="stylesheet" type="text/css">';
    }
}
// если выключен режим разработки, то файлы будут сжаты и объединены в один
else
{
    echo
'<link href="'.BASE_PATH.$compress_files.'" rel="stylesheet" type="text/css">';
}


// сжамаем файл js/site.js и подключаем его
$path = File::compress('js/site.js', 'js');
echo
'<script type="text/javascript" src="'.BASE_PATH.$path.'"></script>';

boolean rm (string $path) – Удаляет файл/директорию.

  • string $path: путь до папки относительно корня сайта

array rglob ([string $path = ''], [string $file_pattern = false], [string $dir_pattern = false], [integer $depth = 0], [integer $flag = 0])

Рекурсивный поиск файлов с использованием шаблона соответствия или не соответствия По умолчанию (без флагов) в результат поиска включаются файлы, не соответствующие шаблону поиска для файлов и не соответствующие шаблону поиска для директорий. Сами шаблоны поиска и для файлов, и для директорий распространяются только на первый уровень вложенности. RGLOD_PATTERN_FILE_COINCIDE - соответствие шаблону для файлов (без флага - не соответствие шаблону), RGLOD_PATTERN_FILE_GLOB - использовать шаблон для файлов на каждом уровне вложенности (без флага - использовать шаблон на первом уровне), RGLOD_PATTERN_DIR_COINCIDE - соответствие шаблону для директорий (без флага - не соответствие шаблону), RGLOD_PATTERN_DIR_GLOB - использовать шаблон для директорий на каждом уровне вложенности (без флага - использовать шаблон на первом уровне), RGLOD_FILE_GLOB - включать файлы, начинающиеся с точки, и директории-точки (точка и две точки, если есть вышестоящая директория) Без данного флага - исключать файлы, начинающиеся с точки, и директории-точки

.

  • string $path: путь до папки относительно корня сайта
  • string $file_pattern: шаблон для файлов согласно правилам, используемым в функции preg_match
  • string $dir_pattern: шаблон для директорий согласно правилам, используемым в функции preg_match
  • integer $depth: глубина вложенности, просматриваемая функцией (без ограничений = -1)
  • integer $flag: флаг или комбинация флагов поиска:

mixed File size or false if error rglob_size ([string $path = ''], [string $file_pattern = false], [string $dir_pattern = false], [integer $depth = 0], [integer $flag = 0])

Рекурсивное определение размеров файлов с использованием шаблона соответствия или не соответствия По умолчанию (без флагов) в результат поиска включаются файлы, не соответствующие шаблону поиска для файлов и не соответствующие шаблону поиска для директорий. Сами шаблоны поиска и для файлов, и для директорий распространяются только на первый уровень вложенности. RGLOD_PATTERN_FILE_COINCIDE - соответствие шаблону для файлов (без флага - не соответствие шаблону), RGLOD_PATTERN_FILE_GLOB - использовать шаблон для файлов на каждом уровне вложенности (без флага - использовать шаблон на первом уровне), RGLOD_PATTERN_DIR_COINCIDE - соответствие шаблону для директорий (без флага - не соответствие шаблону), RGLOD_PATTERN_DIR_GLOB - использовать шаблон для директорий на каждом уровне вложенности (без флага - использовать шаблон на первом уровне), RGLOD_FILE_GLOB - включать файлы, начинающиеся с точки, и директории-точки (точка и две точки, если есть вышестоящая директория) Без данного флага - исключать файлы, начинающиеся с точки, и директории-точки

.

  • string $path: путь до папки относительно корня сайта
  • string $file_pattern: шаблон для файлов согласно правилам, используемым в функции preg_match
  • string $dir_pattern: шаблон для директорий согласно правилам, используемым в функции preg_match
  • integer $depth: глубина вложенности, просматриваемая функцией (без ограничений = -1)
  • integer $flag: флаг или комбинация флагов поиска:

array scandir ([string $path = ''], [integer $depth = 0], [boolean $hierarchy = false]) – Получает список файлов и каталогов, расположенных по указанному пути.

  • string $path: путь до папки относительно корня сайта
  • integer $depth: глубина вложенности, просматриваемая функцией (без ограничений = -1)
  • boolean $hierarchy: массив в виде иерархии

string tempnam ([string $basename = ''], [string $dir_path = ''], [boolean $is_dir = false]) – Возвращает уникальное имя.

  • string $basename: исходное имя файла
  • string $dir_path: путь до папки относительно корня сайта
  • boolean $is_dir: тип имени (FALSE - уникальное имя файла, TRUE - уникальное имя директории)

boolean zip (string $path, string $filename, [string $relative = true]) – Добавляет файлы из директории в архив.

  • string $path: относительный путь до директории или файла
  • string $filename: относительный путь до ZIP-файла
  • string $relative: сохранять относительный путь

array unzip (string $filename) – Получает контент файлов из архива.

  • string $filename: относительный путь до ZIP-файла

void var_dump (mixed $variables, string $file_path, boolean $append) – Сохраняет файл с информацией о переменных.

  • mixed $variables: переменные
  • string $file_path: путь до нового файла относительно корня сайта
  • boolean $append: режим записи файла: false - создает новый файл (если на момент вызова файл с таким именем уже существовал, то он предварительно уничтожается), true - дополняет файл с новой строки (если файл уже существует, данные будут дописаны в конец файла с новой строки вместо того, чтобы его перезаписать). По умолчание FALSE - создаётся новый файл и на протяжении всего цикла исполнения PHP-скрипта файл дополняется.

Ваши комментарии и дополнения

Ваш комментарий будет первым.

Зарегистрируйтесь или авторизируйтесь для того, чтобы оставить комментарий.