Linux кінцем рядка вважається символ n, в Windows - r n, а в Macintosh - г. У РНР передбачена системна константа PHPEOL, яка зберігає уявлення кінця рядка для поточної операційної системи.
При роботі в Windows можна використовувати прапор текстового режиму обробки файлу ( t ), який задає перетворення символу n в r n при запису даних у файл (і, відповідно, виконання зворотного перетворення при читанні). Також можна використовувати прапор довічного режиму обробки файлу ( t ), при якому дані перетворюватися не будуть. Для використання кожного з цих прапорів його треба просто дописати до рядка mode, наприклад wt raquo ;. Режим за замовчуванням - текстовий або двійковий - залежить від використовуваної версії і модуля РНР, тому рекомендується в будь-якому випадку задавати режим в явному вигляді.
При успішному відкритті файлу функція fopen повертає дескриптор файлу, який використовується для подальшої роботи з файлом. Після відкриття файлу дані можуть бути, наприклад, зчитані за допомогою функції fread, яка описана трохи нижче.
Наступний рядок відкриває текстовий файл для запису:
Shandle=fopen (/home/file. txt raquo ;, wt ); To ж саме для довічного режими роботи: $ handle=fopen (/home/file. Txt raquo ;, wb );
При роботі під Windows слід екранувати всі зворотні слеші, як показано нижче (або використовувати прямі слеші): $ handle=fopen ( з: WdataWfile. txt raquo ;, r );
При роботі з файлами можна не обмежуватися локальної файлової системою. Наприклад, можна відкрити файл, що знаходиться на web-сервері, вказавши його URL:
$ handle=fopen ( # justify" gt; Як вже сказано вище, при відкритті файлу повертається дескриптор, який використовується усіма іншими функціями роботи з файлами.
Читання рядків тексту: fgets
Для читання рядки тексту з файлу використовується функція fgets, нижче наведений її синтаксис: fgets (resource handle [int_ length])
В якості аргументів функції передаються дескриптор відкритого файлу і необов'язковий параметр length. Функція повертає рядок символів довжиною до length - 1. Зчитування символів припиняється при досягненні length - 1 символу, при зчитування кінця рядка (він також включається в повертається результат) або при досягненні кінця файлу, залежно від того, що станеться першим. Якщо параметр length не заданий, то за замовчуванням його значення приймається рівним +1024 байт.
У прикладі розглядається використання цієї функції для читання вмісту текстового файлу. Наприклад, існує файл file. txt такого змісту: Це файл з текстом.
Потрібно відобразити вміст цього файлу. Після відкриття файлу він зчитується порядково за допомогою функції fgets. Для організації циклу використовується оператор while і функція feof, яка повертає значення TRUE при досягненні кінця файлу:
lt ;? php
$ handle=fopen ( file. txt raquo ;, r ); (! Feof ($ handle)) {
}
? gt;
У тілі циклу проводиться читання рядки тексту за допомогою fgets і її відображення:
lt ;? php
$ handle=fopen ( file. txt raquo ;, r ); while (! feof ($ handle))
{$ text=fgets ($ handle); $ text, lt; BR gt; raquo ;; }
? gt;
Після завершення роботи з файлом його слід закрити за допомогою функції fclose:
lt; HTML gt;
lt; HEAD gt;
lt; ТIТLЕ gt;
lt ;? php
$ handle=fopen ( file. txt raquo ;, r ); (! feof ($ handle))
{
$ text=fgets ($ handle); echo $ text, lt; BR gt; raquo ;;
} ($ handle);
? gt;
lt;/CENTER gt;
lt;/BODY gt;
lt;/HTML gt;
lt; HTML gt;
lt; HEAD gt;
lt; BODY gt;
lt; ТIТLЕ Читання файлу gt; lt;/TITLE gt;
lt; CENTER gt;
lt; H1 gt; Читання файлу lt;/Н1 gt;
lt ;? php
$ handle=fopen ( file. txt raquo ;, r ); (! feof ($ handle))
{
$ text=fgets ($ handle); echo $ text, lt; BR gt; raquo ;;
} ($ handle);
? gt;
lt;/CENTER gt...