Warning: call_user_func_array() expects parameter 1 to be a valid callback, function 'redirect_login_page' not found or invalid function name in /var/www/yur88222767/data/www/1st-network.ru/wp-includes/class-wp-hook.php on line 308
Функции для работы с файлами - В сети

Функции для работы с файлами


Содержание

Вот несколько основных функций для работы с файлами:

//Существует ли файл?
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, "Наш текст");


Ваш комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Для отправки комментария, поставьте отметку, что разрешаете сбор и обработку ваших персональных данных . Политика конфиденциальности