html.okpython.net
HTML и CSS для начинающих

PHP :: Операции, не связанные с открытием файла

К операциям, не требующим открытия файла, относятся операции, которые не пытаются получить доступ к содержимому файла и рассматривают его как минимальную целую единицу информации. Примерами могут служить: создание, переименование, копирование, удаление, перенос на другой носитель информации, создание жестких или символьных ссылок, а также получение или редактирование атрибутов файла. Рассмотрим некоторые из функций PHP, позволяющие выполнять над файлами перечисленные операции (см. пример №1).

PHP htmlCodes
<?php

//is_file() - true, если файл существует и является обычным файлом,  
//иначе - false. Также смотрите is_link(), is_dir(), file_exists()  
//В качестве аргумента передается строка с абсолютным или 
//относительным адресом файла

//Выведет bool(true), если файл существует в директории с данным скриптом
var_dump(is_file('example_9_1.php'));


//touch() - создает пустой файл и устанавливает дату модификации файла
//Если файл уже существует, то функция просто изменит дату модификации файла
//Возвращает true в случае успеха, иначе - false. 

//Создаст файл test.php в директории на уровень выше директории со скриптом
touch('../test.php');


//link() - создает жесткую ссылку и возвращает true в случае успеха, иначе - 
//false. В качестве аргументов передаются строки с относительными адресами 
//См. также linkinfo(), которая возвращает информацию о ссылке
//symlink(), которая создаёт символическую ссылку, а также readlink(),
//возвращающая путь к файлу, на который указывает символическая ссылка

//Создает жесткую ссылку для файла test.php, находящегося в каталоге со скриптом
//Ссылка будет расположена в каталоге, в котором расположен каталог со скриптом
link('test.php', '../test_link.php');


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

//Переименовывает файл test.php, находящийся в каталоге со скриптом, в  
//test_2.php и переносит его в каталог на уровень вверх
rename('test.php', '../test_2.php');


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

//Копирует содержимое файла test.php в test_2.php, при этом оба файла 
//находятся в том же каталоге что и сам скрипт
copy('test.php', 'test_2.php');  


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

//Удаляет файл test.php, расположенный в каталоге со скриптом
unlink('test.php');


//move_uploaded_file() - проверяет, является ли файл загруженным на сервер по 
//протоколу HTTP POST и в случае успеха перемещает загруженный файл в новое 
//место, возвращая при этом true, иначе - false. Будет рассмотрена в 
//следующем параграфе (незабываем про официальный справочник) 
//см. также is_uploaded_file()


//filesize() - возвращает размер указанного файла в байтах или false в случае  
//ошибки (см. также filetype(), которая возвращает тип файла)
echo filesize('test.php'); //Выведет что-то вроде 547 (т.е. байтов)


//pathinfo() - возвращает инф-ю о пути к файлу в виде ассоциативного массива
//с элементами 'dirname', 'basename', 'extension' (если есть) и 'filename'
//Если указан дополнительный параметр PATHINFO_DIRNAME, PATHINFO_BASENAME, 
//PATHINFO_EXTENSION или PATHINFO_FILENAME, возвращается соответ-я строка
//см. также dirname() - возвращает имя родит-го каталога из указанного пути
//basename() - возвращает последний компонент имени из указанного пути
//realpath() - возвращает канонизированный абсолютный путь к файлу
echo pathinfo('test.php', PATHINFO_EXTENSION); //Выведет 'php'
echo pathinfo('test.php')['extension']; //Также выведет 'php'


//is_readable() - проверяет существование файла и доступен ли он для чтения и
//возвращает true в случае успеха, иначе - false
//См. также is_writable(), которая проверяет доступен ли файл для записи
var_dump(is_readable('test.php')); //Выведет bool(true) или же bool(false)


//fileatime() - возвр-ет время последнего доступа к файлу или false при ошибке
//см. также filemtime() - возвращает время последнего изменения файла
//stat() - возвращает информацию о файле
//Выведет временную метку Unix, например, 1460029142
echo fileatime('test.php');

?>

Пример №1. Выполнение операций, не связанных с открытием файла

Индексный дескриптор (англ. inode) – это структура данных, в которой хранится метаинформация о стандартных файлах, каталогах или других объектах файловой системы, кроме имени и непосредственно самих данных.

Каждый файл имеет свой индексный дескриптор, идентифицируемый по уникальному номеру в файловой системе, в которой располагается этот файл. Обычно индексные дескрипторы хранят информацию о режиме доступа (чтение, запись, запуск на выполнение), принадлежности владельцу (пользователю или группе), и типе файла. Получить индексный дескриптор файла можно при помощи функции fileinode(), а текущего скрипта при помощи функции getmyinode() (см. функцию в разделе «Изменение поведения PHP» -> «Опции и информация PHP» -> «Информационные Функции»).

Быстрый переход к другим страницам