Язык программирования PHP | страница 84




Функция fgets


С помощью функции fgets() можно считать из файла строку текста. Синтаксис этой функции практически такой же, как и у fread(), за исключением того, что длину считываемой строки указывать необязательно:


string fgets ( указатель на файл [, длина])


В результате работы функция fgets() возвращает строку длиной (длина-1) байт из файла, на который указывает указатель на файл. Чтение заканчивается, если прочитано (длина-1) символов и встретился символ перевода строки или конец файла. Напомним, что в PHP один символ - это один байт. Если длина считываемой строки не указана (данная возможность появилась начиная с PHP 4.2.0), то считывается 1 Кбайт (1024 байт) текста или, что то же самое, 1024 символа. Начиная с версии PHP 4.3, если параметр длина не задан, считывается строка целиком. В случае ошибки функция fgets() возвращает false. Для версий PHP начиная с 4.3 эта функция безопасна для двоичных файлов.


>

>$h = fopen("my_file.html","r+");

>$content = fgets($h,2);

>// считает первый символ из

>// первой строки файла my_file.html

>fclose($h);

>echo $content;

>?>


Обе функции, fread() и fgets(), прекращают считывание данных из файла, если встречают конец файла. В PHP есть специальная функция, проверяющая, смотрит ли указатель позиции файла на конец файла. Это булева функция feof(), в качестве параметра которой передается указатель на соединение с файлом.


Например, вот так можно считать все строки файла my_file.html:


>

>$h = fopen("my_file.html","r");

>while (!feof ($h)) {

> $content = fgets($h);

> echo $content,"
";

>}

>fclose($h);


?>


Функция fgetss


Существует разновидность функции fgets() - функция fgetss(). Она тоже позволяет считывать строку из указанного файла, но при этом удаляет из него все встретившиеся html-теги, за исключением, быть может, некоторых. Синтаксис fgetss() такой:


>string fgetss(указатель на файл,

> длина [, допустимые теги])


Обратите внимание, что здесь аргумент длина обязательный.


Пример 9.6. Пусть у нас имеется файл my_file.html следующего содержания:


>

Без труда не вынешь и рыбку из пруда.

>Тише едешь - дальше будешь


У семи нянек дитя без глазу.


Выведем на экран все строки файла my_file.html, удалив из них все теги, кроме и :


>

>$h = fopen("my_file.html","r");

>while (!feof ($h)) {

> $content = fgetss($h,1024,'');

> echo $content,"
";

>}

>fclose($h);


?>


В результате работы этого скрипта получим:


>Без труда не вынешь и рыбку из пруда.