Page 81 - 4636
P. 81

Функція feof() приймає один параметр - дескриптор файлу. Вона повертає значення true, якщо
        покажчик файла знаходиться у кінці файлу. feof означає File End of File. ("Файл : кінець файлу ").
           Отже, зчитування продовжується до дати, поки не буде досягнутий символ EOF.

           3.3 Читання файлу

           Порядкове зчитування : функції fgets(), fgetss() і fgetcsv().
           Якщо для зчитування з файлу використовується функція fgets():
           $order = fgets ($fp, 999) ;
           Ця  функція  використовується  для  читання  з  файлу  рядків  по  одному  за  раз.  У  даному  випадку
        зчитування буде виконуватися до тих пір, поки не трапиться символ нового рядка (\n), символ EOF або
        з  файлу  не  будуть  прочитані  998  байт.  Максимальна  довжина  рядка,  що  зчитується,  дорівнює
        зазначеній довжині мінус 1 байт.
           Існує багато різних функцій, які використовують для читання файлів. Функція fgets() корисна
        при роботі з файлами, що містять звичайний текст, який потрібно обробляти частинами.
           Різновидом функції fgets() є функція fgetss(), що має такий прототип:
           string fgetss ( resource fp, int length, string [allowable_tags]) ;
           Ця функція  багато в чому подібна  функції  fgets()  і відрізняється від неї  тільки тим, що вона
        видаляє будь РНР- і HTML - дескриптори, виявлені в рядку.
           Якщо  ви  хочете  зберегти  у  файлі  якісь  конкретні  дескриптори,  їх  слід  розмістити  в  рядок
        дозволених  дескрипторів  allowable_tags  .  Функцію  fgetss()  слід  використовувати  для
        досягнення більшої безпеки під час читання файлу, записаного кимось іншим або якщо файл містить
        дані, введені користувачем. Включення у файл HTML - коду без будь-яких обмежень може призвести
        до порушення ретельно спланованого форматування. Відсутність обмежень на наявність у файлі PHP -
        коду може надати зловмисному користувачеві практично повну свободу дій на сервері.
           Функція fgetcsv() - ще один різновид функції fgets(). Вона має наступний прототип :
           array fgetcsv(resource fp, int length [, string delimiter [, string
           enclosure]]) ;
           Ця  функція  розбиває  рядки  файлів  при  використанні  деякого  символу  як  роздільник,  наприклад,
        табуляції (як пропонувалося раніше ) або комою (яка зазвичай застосовується в електронних таблицях
        та інших додатках). Якщо потрібно відновити змінні замовлення окремо, а не мати справу з рядком
        тексту, слід використати функцію fgetcsv(). Вона викликається приблизно так само, як і функція
        fgets(),  але  їй  необхідно  передати  роздільник,  який  служить  роздільником  полів.  Наприклад,
        оператор
           $order=fgetcsv($fp, 100, "\t");
           вилучає рядок з файлу і розділяє його при кожному виявленні символу табуляції (\t). Отримані при
        цьому рядки розміщуються у масив (у даному прикладі це масив $order).
           Параметр  довжини  length  повинен  бути  більшим  від  довжини  рядка  файлу,  що  зчитується,
        вираженої в символах.
           Параметр  вкладення  enclosure  використовується  для  опису  символів,  в  які  розміщуються    кожне
        поле в рядку. Якщо ці символи не задані, за замовчуванням приймається символ " (подвійні лапки) .
           Читання всього файлу: функції readf ile(), fpassthru() і file()
           Щоб не читати по одному рядку з файлу можна за раз прочитати весь файл як єдине ціле. Існують
        чотири способи виконання такого зчитування.
           Перший спосіб передбачає використання функції readfile()
           readfile ("$DOCUMENT_ROOT /. ./orders/orders.txt") ;



                                                            78
   76   77   78   79   80   81   82   83   84   85   86