Язык программирования 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);
?>
В результате работы этого скрипта получим:
>Без труда не вынешь и рыбку из пруда.