параметры для копирования директории. Допустимые значения:
fileTypes: массив, список расширений файлов (без точки). Будут скопированы только файлы с этими расширениями.
exclude: массив, список исключений для директорий и файлов. Каждое исключение может быть именем или путем. Если имя или путь файла или директории совпадает с исключением, он не будет скопирован. Например, исключение '.svn' исключит все файлы и директории с именем '.svn'. А исключение '/a/b' исключит файл или директорию '$src/a/b'. Обратите внимание, что '/' должен использоваться в качестве разделителя независимо от значения константы DIRECTORY_SEPARATOR.
level: целое число, глубина рекурсии, по умолчанию -1. Уровень -1 означает копирование всех директорий и файлов в директории; Уровень 0 означает копирование только файлов НЕПОСРЕДСТВЕННО в директории; уровень N означает копирование директорий, находящихся на уровне N вложенности.
newDirMode - разрешения, которые нужно установить для вновь скопированных директорий (по умолчанию 0777);
newFileMode - разрешения, которые нужно установить для вновь скопированных файлов (по умолчанию - текущие настройки среды).
список расширений файлов (без точки). Будут скопированы только файлы с этими расширениями.
$exclude
array
список исключений для директорий и файлов. Каждое исключение может быть именем или путем. Если имя или путь файла или директории совпадает с исключением, он не будет скопирован. Например, исключение '.svn' исключит все файлы и директории с именем '.svn'. А исключение '/a/b' исключит файл или директорию '$src/a/b'. Обратите внимание, что '/' должен использоваться в качестве разделителя независимо от значения константы DIRECTORY_SEPARATOR.
$level
integer
глубина рекурсии. По умолчанию -1. Уровень -1 означает копирование всех директорий и файлов в директории; Уровень 0 означает копирование только файлов НЕПОСРЕДСТВЕННО в директории; уровень N означает копирование директорий, находящихся на уровне N вложенности.
$options
array
дополнительные параметры. Поддерживаются следующие параметры: newDirMode - разрешения, которые нужно установить для вновь скопированных директорий (по умолчанию 0777); newFileMode - разрешения, которые нужно установить для вновь скопированных файлов (по умолчанию - текущие настройки среды).
public static function createDirectory($dst,$mode=null,$recursive=false) { if($mode===null) $mode=0777; $prevDir=dirname($dst); if($recursive && !is_dir($dst) && !is_dir($prevDir)) self::createDirectory(dirname($dst),$mode,true); $res=mkdir($dst, $mode); @chmod($dst,$mode); return $res; }
Безопасная для среды версия mkdir. Поддерживает рекурсивное создание. Для предотвращения побочных эффектов umask используется chmod.
См. также
mkdir
findFiles() метод
public static array findFiles(string $dir, array $options=array ( ))
$dir
string
директория, в которой будут искаться файлы
$options
array
параметры поиска файлов. Допустимые значения:
fileTypes: массив, список расширений файлов (без точки). Будут возвращены только файлы с этими расширениями.
exclude: массив, список исключений для директорий и файлов. Каждое исключение может быть именем или путем. Если имя или путь файла или директории совпадает с исключением, он не будет скопирован. Например, исключение '.svn' исключит все файлы и директории с именем '.svn'. А исключение '/a/b' исключит файл или директорию '$src/a/b'. Обратите внимание, что '/' должен использоваться в качестве разделителя независимо от значения константы DIRECTORY_SEPARATOR.
level: целое число, глубина рекурсии, по умолчанию -1. Уровень -1 означает поиск во всех директориях и поддиректориях; Уровень 0 означает поиск только в текущей директории; уровень N означает поиск в директориях на N уровнях вложенности.
absolutePaths: boolean, возвращать абсолютные пути или относительные, по умолчанию - true.
список суффиксов имён файлов (без точки). Будут возвращены только файлы с этими суффиксами.
$exclude
массив
список исключений для директорий и файлов. Каждое исключение может быть именем или путём. Если имя или путь к файлу или директории совпадает с исключением, он не будет скопирован. Например, исключение '.svn' исключит все файлы и директории с именем '.svn'. А исключение '/a/b' исключит файл или директорию '$src/a/b'. Обратите внимание, что '/' используется в качестве разделителя независимо от значения константы DIRECTORY_SEPARATOR.
$level
целое число
глубина рекурсии. По умолчанию -1. Уровень -1 означает поиск всех директорий и файлов в директории; Уровень 0 означает поиск только файлов НЕПОСРЕДСТВЕННО в директории; уровень N означает поиск тех директорий, которые находятся на уровне N вложенности.
public static function getExtension($path) { return pathinfo($path,PATHINFO_EXTENSION); }
Возвращает имя расширения пути к файлу. Например, путь "path/to/something.php" вернёт "php".
getExtensionByMimeType() метод
public static string getExtensionByMimeType(string $file, string $magicFile=NULL)
$file
строка
имя файла.
$magicFile
строка
путь к файлу, содержащему всю доступную информацию о расширениях. Если не задан, используется файл по умолчанию 'system.utils.fileExtensions'. Этот параметр доступен с версии 1.1.16.
{возврат}
строка
имя расширения. Возвращает null, если расширение определить нельзя.
Определяет имя расширения файла на основе его MIME-типа. Этот метод использует локальное отображение между MIME-типом и именем расширения.
getMimeType() метод
public static string getMimeType(string $file, string $magicFile=NULL, boolean $checkExtension=true)
$file
строка
имя файла.
$magicFile
строка
имя файла базы данных магии, обычно что-то вроде /path/to/magic.mime. Будет передано как второй параметр к finfo_open. Формат файла магии описан в man 5 magic, обратите внимание, что этот файл не содержит стандартного PHP-массива, как можно было предположить. Указанный файл магии будет использован только в том случае, если доступен расширение fileinfo PHP. Этот параметр доступен с версии 1.1.3.
$checkExtension
логическое значение
произвести проверку расширения файла в случае, если MIME-тип не может быть определён на основе finfo и mime_content_type. По умолчанию true. Этот параметр доступен с версии 1.1.4.
{возврат}
строка
MIME-тип. Возвращает null, если MIME-тип определить невозможно.
public static string getMimeTypeByExtension(string $file, string $magicFile=NULL)
$file
строка
имя файла.
$magicFile
строка
путь к файлу, содержащему всю доступную информацию о MIME-типах. Если не задан, используется файл по умолчанию 'system.utils.mimeTypes'. Этот параметр доступен с версии 1.1.3.
{возврат}
строка
MIME-тип. Возвращает null, если MIME-тип определить невозможно.
Определяет MIME-тип на основе имени расширения указанного файла. Этот метод использует локальное отображение между именем расширения и MIME-типом.
removeDirectory() метод (доступен начиная с v1.1.14)
public static void removeDirectory(string $directory, array $options=array ( ))
$directory
строка
директория, подлежащая рекурсивному удалению.
$options
массив
для удаления директории. Допустимые значения:
traverseSymlinks: логическое значение, указывает, следует ли проходить по символическим ссылкам на директории. По умолчанию `false`, что означает, что содержимое символической ссылки на директорию не будет удалено. В этом случае по умолчанию будет удалена только символическая ссылка.
Примечание: параметр options доступен с версии 1.1.16
список допустимых суффиксов имён файлов (без точки).
$exclude
массив
список исключений для директорий и файлов. Каждое исключение может быть именем или путём. Если имя или путь к файлу или директории совпадает с исключением, возвращается false. Например, исключение '.svn' вернёт false для всех файлов и директорий с именем '.svn'. И исключение '/a/b' вернёт false для файла или директории '$src/a/b'. Обратите внимание, что '/' используется в качестве разделителя независимо от значения константы DIRECTORY_SEPARATOR.