В CakePHP переопределено много функций которыми мы пользуемся в PHP для обработки (копирования, перемещения, удаления) файлов. Не всегда это удобно по сравнению со старыми методами, но в большинстве случаев использование этих функций уменьшает время потраченную на разработку приложений.
И так, начнем...
Выполнение практически всех действий с файлами подразумевает первоначальное создание объекта File.
if (!class_exists('File')) { require LIBS . 'file.php'; } $my_file = new File($filename, true);
После чего мы можем работать с файлом $filename через переменную $my_file.
Первое что нам может понадобится, это записать данные в файл. Для этого есть как минимум две функции: append и write. Первая из них позволяет дописать данные в файл, а вторая позволяет как дописать, так и переписать файл, все зависит от переданных параметров.
append ( $data, $force = false )
где,
$data - это данные которые вы хотите добавить в файл;
$force - если файл открыт, то заставляет его открыться заново, иначе, используется уже существующий дескриптор.
$my_file = new File('test.text', true); $my_file->append('Hello world!');
write( $data, $mode = 'w', $force = false )
где,
$data - это данные которые вы хотите добавить в файл;
$mode - параметры которые используются при открытие файла в PHP функции fopen;
$force - если файл открыт, то заставляет его открыться заново, иначе, используется уже существующий дескриптор.
Причем, если не существует директории для файла, то она автоматически создается.
$my_file = new File('test.text', true); $my_file->write('В этом файле только одна строка');
Хорошо, а как прочитать нам записанные данные? Для этого есть функция read.
read( $bytes = false, $mode = 'rb', $force = false )
где,
$bytes - количество байт которые необходимо считать, если false, то файл считается целиком;
$mode - параметры которые используются при открытие файла в PHP функции fopen;
$force - если файл открыт, то заставляет его открыться заново, иначе, используется уже существующий дескриптор.
//Вывести содержимое файла $my_file = new File('test.text', true); echo $my_file->read();
//Вывести первые 50 символов $my_file = new File('test.text', true); echo $my_file->read(50);
Если нам потребуется удалить файл, то в этом случае нам поможет функция delete.
$my_file = new File('test.text', true); $my_file->delete();
Так же, хотелось бы отметить, что после работы с файлами, желательно закрывать их дискрипторы с помощью функции close.
$my_file = new File('test.text', true); echo $my_file->read(); $my_file->close();
Проверка существования файла осуществляется с помощью функции exists.
$my_file = new File('test.text', true); if ($my_file->exists()) echo 'Файл существует'; else echo 'Такого файла нет';
Далее я просто перечислю все функции которые возвращают логическое значение:
executable() - выполняемый ли файл;
readable() - можно ли читать этот файл;
writable() - можно ли писать в файл.
С помощью функции info можно получить информацию о расположение, имени и типе файла. Функция возвращает массив со следующими ключами:
$my_file = new File('/var/www/app/webroot/css/style.css', true); pr( $my_file->info()); /* Array ( [dirname] => /var/www/app/webroot/css [basename] => style.css [extension] => css [filename] => style ) */
Для проверки времени последнего обращения или изменения файла, используются функции lastAccess и lastChange соответственно.
$my_file = new File('/var/www/app/webroot/css/style.css', true); echo 'Последний раз файл просматривали: ' . date('Y-m-d H-i-s', $my_file->lastAccess()); echo 'Последний раз файл изменяли: ' . date('Y-m-d H-i-s', $my_file->lastChange());
И на последок, функция расчета контрольной суммы файла md5.
$my_file = new File('/var/www/app/webroot/css/style.css', true); echo 'Крнтрольная сумма: ' . $my_file->md5();
Пока нет коментариев. Будьте первым!