waFiles

Работа с файлами

Содержание...

Методы

  • convert

    Изменяет кодировку текстового файла.

  • copy

    Копирует файл или содержимое директории.

  • create

    Создает указанную директорию либо директорию для указанного файла.

  • delete

    Удаляет файл или директорию.

  • extension

    Возвращает расширение имени файла.

  • formatSize

    Возвращает отформатированное значение размера файла.

  • getMimeType

    Определяет MIME-тип файла по его имени.

  • listdir

    Возвращает список файлов и поддиректорий в указанной директории.

  • move

    Перемещает файл или директорию в указанную директорию.

  • readFile

    Считывает содержимое файла.

  • upload

    Загружает файл с указанного URL в директорию.

  • write

    Записывает содержимое в файл.

public static function convert ($file, $from, $to = 'UTF-8', $target = null)

Изменяет кодировку текстового файла.

Параметры

  • $file

    Путь к файлу.

  • $from

    Исходная кодировка.

  • $to

    Требуемая кодировка.

  • $target

    Путь, по которому нужно сохранить перекодированный файл. Если пусть не указан, то перекодированный файл создается в той же директории, к его имени добавляется символ подчеркивания и название кодировки, указанной в параметре $to.

Возвращаемое значение

Значение параметра $target, указанное при вызове метода, либо сформированный автоматически путь к конвертированному файлу.

Пример

$target_path = waFiles::convert($file_path, 'CP1251');

public static function copy ($source_path, $target_path, $skip_pattern = null)

Копирует файл или содержимое директории.

Параметры

  • $source_path

    Путь к исходному файлу или директории. Если указан путь к директории, то будет создана копия этой директории с содержащимися в ней файлами и поддиректориями. Поддиректории копируются рекурсивно.

  • $target_path

    Путь, по которому должна быть сохранена копия указанного файла либо директории.

  • $skip_pattern

    Строка с регулярным выражением, описывающим формат имен файлов и поддиректорий, которые не должны копироваться, если в качестве параметра $source_path указан путь к директории (в противном случае регулярное выражение будет проигнорировано).

Пример

//будет скопировано содержимое директории 'wa-log' в директорию 'wa-log-temp', кроме файлов и поддиректорий, имена которых содержат фрагмент 'installer'
waFiles::copy('wa-log', 'wa-log-temp', '/installer/')

public static function create ($path, $is_dir = false)

Создает указанную директорию либо директорию для указанного файла.

Параметры

  • $path

    Путь к директории или файлу.

  • $is_dir

    Флаг, явно обозначающий, что в параметре $path указан путь к директории. По умолчанию (false) метод пытается автоматически определить, путь к чему указан в $path: к файлу или директории.

Пример

//несмотря на точку в имени директории,
//которая по умолчанию указывала бы на то, что передан путь к файлу,
//т. к. точка обычно отделяет основное имя файла от расширения,
//параметр $id_dir = true явно "говорит", что речь идет именно о директории
waFiles::create(wa()->getConfig()->getPath('cache').'/some.folder', true);

public static function delete ($path, $ignore_dir_errors = false)

Удаляет файл или директорию. Содержимое директории вместе с поддиректориями удаляется рекурсивно.

Параметры

  • $path

    Путь к файлу или директории.

  • $ignore_dir_errors

    Флаг, обозначающий необходимость игнорировать ошибки при попытке удаления директорий. По умолчанию (false) такие ошибки не игнорируются — генерируется исключение.

Пример

waFiles::delete('wa-test');

public static function extension($file)

Возвращает расширение имени файла.

Параметры

  • $file

    Имя файла.

Пример

waFiles::extension('robots.txt');

Результат

'txt'

public static function formatSize ($file_size, $format = '%0.2f', $dimensions = 'Bytes,KBytes,MBytes,GBytes')

Возвращает отформатированное значение размера файла.

Параметры

  • $file_size

    Числовое значение размера в байтах.

  • $format

    Обозначение формата для отображения числового значения, поддерживаемое функцией sprintf.

  • $dimensions

    Строка со списком единиц измерения размера файла, разделенных запятой.

Пример

waFiles::formatSize(1000000, '%0.2f', 'Б,кБ,МБ,ГБ');

Результат

'0,95 МБ'

public static function getMimeType ($filename)

Определяет MIME-тип файла по его имени.

Параметры

  • $filename

    Имя файла.

Пример

waFiles::getMimeType('index.php');

Результат

'text/html'

public static function listdir ($dir, $recursive = false)

Возвращает список файлов и поддиректорий в указанной директории.

Параметры

  • $dir

    Путь директории.

  • $recursive

    Флаг, обозначающий необходимость получения содержимого вложенных поддиректорий. По умолчанию (false) содержимое поддиректорий не возвращается. При указании значения true метод возвращает только список файлов, без имен поддиректорий.

Пример

waFiles::listdir('wa-config/apps');

Результат

[
    0 => 'contacts',
    1 => 'shop',
    2 => 'site',
    3 => 'mailer',
    4 => 'helpdesk',
    5 => 'photos',
    6 => 'webasyst',
    7 => 'stickies',
    8 => 'checklists',
    9 => 'blog',
]

Пример

waFiles::listdir('wa-config/apps', true);

Результат

[
    0 => 'contacts/person_fields_order.php',
    1 => 'contacts/config.php',
    2 => 'contacts/custom_fields.php',
    3 => 'site/domains/yourdomain.php',
    4 => 'mailer/plugins.php',
    5 => 'helpdesk/workflows.php',
    6 => 'helpdesk/graph.php',
    7 => 'photos/plugins.php',
    8 => 'photos/config.php',
    9 => 'blog/plugins.php',
]

public static function move ($source_path, $target_path)

Перемещает файл или директорию в указанную директорию.

Параметры

  • $source_path

    Путь к копируемому файлу или директории.

  • $target_path

    Путь, по которому должен быть доступен файл или директория после перемещения.

Пример

$source = wa('myapp')->getAppPath('lib/config/data/.htaccess');
$target = wa('myapp')->getDataPath(null, true, 'images/.htaccess');
waFiles::move($source, $target);

public static function readFile ($file, $attach = null, $exit = true, $md5 = false)

Считывает содержимое файла и направляет вывод в браузер пользователя.

Параметры

  • $file

    Путь к файлу.

  • $attach

    Имя, которое будет предлагаться пользователю для сохранения файла на своем компьютере. Если не указано, браузер автоматически сформирует имя для сохраняемого файла.

  • $exit

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

  • $md5

    Флаг, обозначающий необходимость отправки заголовка Content-MD5. По умолчанию (false) этот заголовок не отправляется.

Пример

$path = wa('myapp')->getAppPath('lib/config/data/sample.zip');
waFiles::readFile($path);

public static function upload ($url, $path)

Загружает файл с указанного URL в директорию.

Параметры

  • $url

    URL, с которого необходимо получить файл.

  • $path

    Путь, по которому полученный файл должен быть сохранен.

Пример

$url = 'http://somedomain.ru/archive.zip';
$path = wa()->getDataPath('files/pricelist.zip', true, 'myapp');
waFiles::upload($url, $path);

public static function write ($path, $content)

Записывает содержимое в файл.

Параметры

  • $path

    Путь, по которому должен быть сохранен файл. Если такой файл существует, он будет перезаписан.

  • $content

    Содержимое, которое необходимо записать в файл.

Пример

$path = wa()->getDataPath('user/01.txt', false, 'myapp');
$content = 'some text';
waFiles::write($path, $content);