Відмінності між версіями «Робота з файлами в PHP»
Рядок 51: | Рядок 51: | ||
При роботі в пасивному режимі сервер &!!&!!&!!&&&!!&&&&&&&ЯР&&&&&!!&&&!!&!!&!!&& очікує підключення з боку клієнтів. При роботі в активному режимі сервер сам встановлює з'єднання з клієнтом. За замовчуванням звичайно використовується активний режим.<br/> | При роботі в пасивному режимі сервер &!!&!!&!!&&&!!&&&&&&&ЯР&&&&&!!&&&!!&!!&!!&& очікує підключення з боку клієнтів. При роботі в активному режимі сервер сам встановлює з'єднання з клієнтом. За замовчуванням звичайно використовується активний режим.<br/> | ||
Параметр режим визначає можливість виконання читання і запису у файл. У табл. 1 перераховані деякі значення, що визначають режим відкриття файлу.<br/> | Параметр режим визначає можливість виконання читання і запису у файл. У табл. 1 перераховані деякі значення, що визначають режим відкриття файлу.<br/> | ||
− | + | ||
+ | |||
+ | <TABLE BORDER = 1 align = center bordercolor = darkblue> | ||
+ | <CAPTION ALIGN = Top> Таблиця 1. Режими відкриття файлу </CAPTION> | ||
+ | |||
+ | <TR> | ||
+ | <TH align = center> Режим </TH> | ||
+ | <TH align = center> Опис </TH> | ||
+ | </TR> | ||
+ | <TR> | ||
+ | <TD align = center> r </TD> | ||
+ | <TD> Файл відкривається тільки для читання. Якщо файлу не існує, виклик реєструє помилку. Після успішного відкриття вказівник файлу встановлюється на його перший байт, тобто на початок. </TD> | ||
+ | </TR> | ||
+ | <TR> | ||
+ | <TD align = center> r + </TD> | ||
+ | <TD> Файл відкривається одночасно для читання та запису. Вказівник поточної позиції встановлюється в початок файлу, тобто на перший байт. Якщо файлу не існує повертається false. Якщо в момент запису вказівник файлу встановлено приміром в середину файлу, то дані запишуться прямо поверх існуючих, а не розсунуть їх, при необхідності збільшивши розмір файлу. </TD> | ||
+ | </TR> | ||
+ | <TR> | ||
+ | <TD align = center> w </TD> | ||
+ | <TD> Тільки запис. Покажчик поточної позиції встановлюється в початок файлу, а весь вміст файлу знищується. Якщо файл не існує, функція намагається створити його. </TD> | ||
+ | </TR> | ||
+ | <TR> | ||
+ | <TD align = center> w + </TD> | ||
+ | <TD> Читання і запис. Покажчик поточної позиції встановлюється в початок файлу, а весь вміст файлу знищується. Якщо файл не існує, функція намагається створити його. </TD> | ||
+ | </TR> | ||
+ | <TR> | ||
+ | <TD align = center> a </TD> | ||
+ | <TD> Відкриває існуючий файл тільки для запису. Покажчик поточної позиції встановлюється в кінець файлу. Якщо файл не існує, функція намагається створити його. </TD> | ||
+ | </TR> | ||
+ | <TR> | ||
+ | <TD align = center> a + </TD> | ||
+ | <TD> Відкриває файл для читання та запису. Покажчик поточної позиції встановлюється в кінець файлу, при цьому вміст файлу не знищується. Якщо файл не існує, функція створює його. Ця функція є корисною, якщо потрібно дописати в файл, але не відомо, чи існує файл. </TD> | ||
+ | </TR> | ||
+ | |||
+ | |||
+ | |||
[[Робота з файлами в PHP]] | [[Робота з файлами в PHP]] |
Версія за 22:21, 18 квітня 2010
Перевірка існування та розміру файлу
Перш ніж намагатися працювати з файлом, бажано переконатися в тому, що він існує. Для вирішення цього завдання зазвичай використовуються дві функції:
file_exists () і is_file ().
file_exists ().
Функція f ilе_ехists () перевіряє, чи існує заданий файл. Якщо файл існує, функція повертає TRUE, в іншому випадку повертається FALSE. Синтаксис функції file_exists ():
bool file_exists (string файл)
Приклад перевірки існування файлу:
if (! file_exists ($ filename)):
print "File $ filename does not exist!";
endif:
is_file ()
Функція is_file () перевіряє існування заданого файлу і можливість виконання з ним операцій читання / запису. По суті, is_file () являє собою більш надійну версію file_exists (), яка перевіряє не тільки факт існування файлу, але і те, чи підтримує він читання і запис даних:
bool is_file (string файл)
Наступний приклад показує, як переконатися в існуванні файлу і можливості виконання операцій з ним:
$ File = "somefile.txt";
if (is_file ($ file)):
print "The file $ file is valid and exists!";
else:
print "The file $ file does not exist or it is not a valid file!";
endif:
Переконавшись у тому, що потрібний файл існує, і з ним можна виконувати різні операції читання / запису, можна переходити до наступного кроку - відкриття файлу.
filesize ()
Функція filesize () повертає розмір (в байтах) файлу з заданим ім'ям або FALSE в разі помилки. Синтаксис функції filesize ():
int filesize (string ім'я_файлу)
Припустимо, ви хочете визначити розмір файлу pastry.txt. Для отримання потрібної інформації можна скористатися функцією filesize ():
$ Fs = filesize ("pastry.txt"); print "Pastry.txt is $ fs bytes.";
Виводиться наступний результат:
Pastry.txt is 179 bytes.
Перш ніж виконувати операції з файлом, необхідно відкрити його і пов'язати з файловим маніпулятором, а після завершення роботи з файлом його слід закрити.
Відкриття та закриття файлів
Перш ніж виконувати операції вводу / виводу з файлом, необхідно відкрити його функцією fopen ().
fopen ()
Функція fopen () відкриває файл (якщо він існує) і повертає ціле число - так званий файловий маніпулятор (file handle). Синтаксис функції fopen ():
int fopen (string файл, string режим [, int включення_шляху])
Відкриває файл може знаходитися в локальній файловій системі, існувати у вигляді стандартного потоку вводу / виводу або представляти файл у віддаленій системі, що приймається засобами HTTP або FTP.
Параметр файл може здаватися в декількох формах, перерахованих нижче:
• Якщо параметр містить ім'я локального файлу, функція fopen () відкриває цей файл і повертає маніпулятор.
• Якщо параметр заданий у вигляді php: / / stdin, php: / / stdout або php: / / stderr, відкривається відповідний стандартний потік вводу / виводу.
• Якщо параметр починається з префікса http://, функція відкриває підключення HTTP до сервера і повертає маніпулятор для зазначеного файлу.
• Якщо параметр починається з префікса ftp://, функція відкриває підключення FTP до сервера і повертає маніпулятор для зазначеного файлу. У цьому випадку слід звернути особливу увагу на дві обставини: якщо сервер не підтримує пасивний режим FTP, виклик fopen () завершується невдачею. Більш того, FTP-файли відкриваються або для читання, або для запису.
При роботі в пасивному режимі сервер &!!&!!&!!&&&!!&&&&&&&ЯР&&&&&!!&&&!!&!!&!!&& очікує підключення з боку клієнтів. При роботі в активному режимі сервер сам встановлює з'єднання з клієнтом. За замовчуванням звичайно використовується активний режим.
Параметр режим визначає можливість виконання читання і запису у файл. У табл. 1 перераховані деякі значення, що визначають режим відкриття файлу.
Режим | Опис |
---|---|
r | Файл відкривається тільки для читання. Якщо файлу не існує, виклик реєструє помилку. Після успішного відкриття вказівник файлу встановлюється на його перший байт, тобто на початок. |
r + | Файл відкривається одночасно для читання та запису. Вказівник поточної позиції встановлюється в початок файлу, тобто на перший байт. Якщо файлу не існує повертається false. Якщо в момент запису вказівник файлу встановлено приміром в середину файлу, то дані запишуться прямо поверх існуючих, а не розсунуть їх, при необхідності збільшивши розмір файлу. |
w | Тільки запис. Покажчик поточної позиції встановлюється в початок файлу, а весь вміст файлу знищується. Якщо файл не існує, функція намагається створити його. |
w + | Читання і запис. Покажчик поточної позиції встановлюється в початок файлу, а весь вміст файлу знищується. Якщо файл не існує, функція намагається створити його. |
a | Відкриває існуючий файл тільки для запису. Покажчик поточної позиції встановлюється в кінець файлу. Якщо файл не існує, функція намагається створити його. |
a + | Відкриває файл для читання та запису. Покажчик поточної позиції встановлюється в кінець файлу, при цьому вміст файлу не знищується. Якщо файл не існує, функція створює його. Ця функція є корисною, якщо потрібно дописати в файл, але не відомо, чи існує файл. |