Page 77 - 4636
P. 77
замовлення. При прийомі кожного нового замовлення він буде перезаписувати раніше збережене
замовлення. Очевидно, це не оптимальне рішення, тому доцільно встановити режим дописування (і, як
рекомендовано, бінарний режим):
$fp = fopen("$DOCUMENTROOT/../orders/orders.txt", 'аb');
Третій параметр функції fopen() є необов'язковим. Ним можна скористатися, якщо потрібно
шукати файл за допомогою include_path ( налаштування конфігурації РНР). У цьому випадку
встановіть значення третього параметра рівним true. У цьому випадку відпадає необхідність задавати
ім'я каталогу або шлях:
$fp = fopen("orders.txt",'ab',true);
Четвертий параметр функції fopen() також необов'язковий. Функція fopen() дозволяє
попереджувати імена файлів найменуванням протоколу (таким як http://) і відкривати їх у віддалених
місцях розташування. Деякі протоколи допускають додатковий параметр.
Коли функція fopen() успішно відкриває файл, вона повертає дескриптор або покажчик на файл і
зберігає його в спеціальній змінній, у даному випадку $fp. Ця змінна згодом використовується для
доступу до файлу, коли необхідно виконати читання або запис.
Відкриття файлів через FTP або HTTP
За допомогою функції fopen() можна відкривати для читання або запису не тільки локальні
файли, але і віддалені; при цьому використовують протоколи FTP ( File Transfer Protocol - протокол
передачі файлів) і Н'ГГР ( Hypertext Transfer Protocol - протокол передачі гіпертексту ). Цю можливість
можна заборонити, відключити директиву allow_url_fopen у файлі php.ini. Якщо виникають
проблеми при відкритті видалених файлів за допомогою fopen( ), необхідно переглянути існуючий
файл php.ini
Якщо використовуване ім'я файлу починається з ftp://, відкривається FТР-з'єднання у
пасивному режимі із вказаним сервером, і повертається покажчик на початок файлу.
Якщо використовуване ім'я файлу починається з http://, відкривається НТТР- з'єднання із вказаним
сервером, і повертається покажчик на відповідь від сервера. У разі застосування режиму НТТР у
старих версіях РНР обов'язково слід вказувати завершальні символи (похилі риски) в іменах каталогів.
При вказівці другої форми адреси (без завершальної похилої риски) веб-сервер зазвичай
використовує HTTP-перенаправлення, щоб направити за першою адресою (з похилою рискою). Це
можна перевірити у своєму браузері.
Пам'ятайте, що імена доменів в URL -адресах нечутливі до регістру, у той час як шляхи і
імена файлів можуть залежати від регістру.
Можливі проблеми при відкритті файлів
Типова помилка, яку можна зробити при відкритті файлу, - це відсутність дозволу на читання цього
файлу або на запис у нього. (Як правило, дана помилка виникає в середовищах Unix-подібних
операційних систем, хоча іноді з нею можна зіткнутися і в Windows- середовищах). У такому випадку
РНР виводить відповідне попередження, подібне показаному на рис. 3.2.
74