Page 75 - 4636
P. 75
Режими файлів
Операційна система, що встановлена на сервері, повинна знати, що ви маєте робити з відкриваним
файлом. Вона повинна знати, чи може відповідний файл бути відкритий іншим сценарієм в той час,
коли він вже відкритий вашим сценарієм, і чи є у вас (або власника сценарію) права на подібне його
використання. По суті, режими файлу надають операційній системі механізм вибору способу обробки
запитів на доступ, що надходять від інших користувачів або сценаріїв, а також методу перевірки, чи
маєте ви доступ і право на роботу з конкретним файлом.
Відкриваючи файл, слід враховувати три моменти:
1. Файл можна відкрити тільки для читання, тільки для запису або для читання і запису.
2. При виконанні запису у файл можна перезаписувати будь-який існуючий вміст файлу або
додавати нові дані в кінець файлу. Може також виникати необхідність акуратно завершити програму,
не переписуючи файл, якщо він існує.
3. При спробі запису у файл у системі, де є відмінність між бінарними і текстовими файлами,
можливо, знадобиться вказати тип файлу.
Функція fopen() підтримує будь-які комбінації трьох згаданих варіантів.
Використання функції fopen( ) для відкриття файлу.
Припустимо, що потрібно зберегти замовлення клієнта у файлі замовлень компанії
"Автозапчастини від Вована". Цей файл можна відкрити для запису за допомогою наступного
оператора :
$fp = fopen("$DOCUMENT_ROOT/. ./Orders/orders.txt",'w');
При виклику функції fopen() необхідно передати два, три або чотири параметри. Зазвичай
використовуються два параметри, як показано у наведеному вище рядку коду.
Першим параметром повинен бути файл, який потрібно відкрити . При цьому можна вказати шлях
до файлу, як у прикладі - файл orders.txt міститься в каталозі orders.
Було використано вбудовану РНР- змінну $ _SERVER[' DOCUMENTROOT'], але оскільки повні
імена змінних надто громіздкі, їй було присвоєно коротке ім'я.
Ця змінна вказує на корінь дерева документів вашого веб-сервера. Крім того, за допомогою
символу. . позначений "батьківський каталог кореневого каталогу документів". З метою безпеки цей
каталог перебуває поза деревом документів. Не потрібно, щоб цей файл був доступний в Інтернеті,
окрім як тільки через наданий нами інтерфейс.
Цей шлях називається відносним, оскільки він описує позицію в файловій системі відносно кореня
дерева документів.
Як і у випадку коротких імен для змінних форми, на початку сценарію має бути такий рядок:
$DOCUMENT_ROOT = $_SERVER[ DOCUMENTROOT ] ;
який скопіює вміст змінної довгого стилю в змінну короткого стилю.
Подібно до того, як існують різні способи доступу до даних форми, так само існують різні способи
доступу до наперед визначених серверних змінних. Залежно від налаштування сервера, можна
отримати доступ до кореня дерева документів, скориставшись такми іменами:
$_SERVER['DOCUMENT_ROOT']
$DOCUMENT_ROOT
$ HTTP_SERVER_VARS ['DCCUMENT_ROOT']
Як і для даних форми, перший стиль є найбільш переважним .
Також можна задати абсолютний шлях до файлу. Цей шлях веде від кореневого каталогу ( / у
системі UNIX і, як правило, С:\ в системі Windows).
Якщо на сервер на базі UNIX, то буде щось на зразок /home / book /orders. Проблема,
пов'язана з подібним поданням шляху, особливо якщо ви розміщуєте власний сайт на чужому сервері,
полягає в тому, що абсолютний шлях може змінюватися.
72