Содержание
Вот несколько основных функций для работы с файлами:
//Существует ли файл? file_exists("test.txt") //Узнаем размер файла filesize("test.txt"); //Дата последнего обращения к файлу fileatime("test.txt");//date("d M Y", $atime); //Дата изменения файла filemtime("test.txt");//date("d M Y", $mtime); //Дата создания файла(Windows) filectime("test.txt");//date("d M Y", $ctime);
Функцией file_exists, передавая имя файла, можно проверить, существует такой файл или нет. Функция вернет true или false. Есть функции обращения к файлам, одни из которых ничего не выдадут при обращении к несуществующему файлу, а другие вернут ошибку. Во избежание ошибок перед обращением можно спросить ‘if file_exists’ и что-то сделать.
Функции для работы с датой файла возвращают временную метку какого-либо события.
Файлы — режимы работы
Рассмотрим подробно работу с файлами. Сначала файл открываем, прочитали, записали, закрыли. Для этого нужна функция fopen (filename, mode). Параметры данной функции — имя файла и режим работы. Примеры режимов работы:
- r — открыть файл только для чтения.
- r+ — открыть файл для чтения и записи.
- w — открыть файл только для записи. Если он существует, то текущее содержимое файла уничтожается. Текущая позиция устанавливается в начало.
- w+ — открыть файл для чтения и для записи. Если он существует, то текущее содержимое файла уничтожается. Текущая позиция устанавливается в начало.
- а — открыть файл для записи. Текущая позиция устанавливается в конец файла.
- а+ — открыть файл для чтения и записи. Текущая позиция устанавливается в конец файла.
- b — обрабатывать бинарный файл. Этот флаг необходим при работе с бинарными файлами в ОС Windows.
Когда открываем файл, в нем есть курсор. В зависимости от режима работы с файлом, можно поместить курсор в начало (a) или в конец файла (a+).
Файлы — открытие и закрытие
$f = fopen("test.txt", "w+") or die("Ошибка"); //Примеры $f = fopen("http://www.you_domain/test.txt","r"); $f= fopen("http://ftp.you_domain/test.txt", "r"); //Закрываем файл fclose($f)
В функцию fopen возвращается тип ресурс (выглядит как число). Т.е. это указатель на данный файл, его также называют дескриптор.
Если файл в конце работы с ним не закроем, ничего не случится. Понятно, что он автоматом закроется при конце кода. Но лучше закрывать, как записано в спецификации php.
Файлы — чтение
//Читаем файл fread(int f, int length) //Читаем первые 10 символов $str = fread($f, 10); echo $str; //Читаем следующие 12 символов $str = fread($f, 12); echo $str; //Прочитать строку из файла, можно указать длину fgets(int f[, int length]) //Прочитать строку из файла и отбросить HTML-теги fgetss(int f, int length [, string allowable]) //Считывает символ из файла fgetc(int f)
Т.е. файл можно зачитать полностью, построчно, посимвольно.
Часто приходится использовать чужой контент. Но он записан в html, а хочется использовать готовый текст. Для этого есть функция fgetss, т.е. зачитываем файл построчно и вырезаем все html-теги. Необязательный параметр здесь — ограничение длины.
Файлы — запись
Есть одна основная функция для записи в файл — fwrite. Есть еще fputs, но это ее синоним. Параметры функции: дескриптор файла, ограничение по длине (необязательный). Внимание! Новые данные в файл будут записываться поверх существующих. Но как правило, мы записываем что-то в конец файла. В этом случае курсор нужно переместить в конец файла (см. ‘Файлы — режимы работы’ в этой же статье).
fwrite(int f, string ws [, int length]) fputs // Тоже, что и fwrite //Пишем в конкретную позицию fread($f, 7); fwrite($f, "Наш текст");