52568.fb2
<b>Тише едешь - дальше будешь</b>
У семи нянек<i> дитя без глазу</i>.
Выведем на экран все строки файла my_file.html, удалив из них все теги, кроме <b> и <i>:
<?php
$h = fopen("my_file.html","r");
while (!feof ($h)) {
$content = fgetss($h,1024,'<b><i>');
echo $content,"<br>";
}
fclose($h);
?>
В результате работы этого скрипта получим:
Без труда не вынешь и рыбку из пруда.
Тише едешь - дальше будешь
У семи нянек дитя без глазу.
Функция fgetc
Естественно, если можно считывать информацию из файла построчно, то можно считывать ее и посимвольно. Для этого предназначена функция fgetc(). Легко догадаться, что синтаксис у нее следующий:
string fgetc ( указатель на файл )
Эта функция возвращает символ из файла, на который ссылается указатель на файл, и значение, вычисляемое как FALSE, если встречен конец строки.
Вот так, например, можно считать файл по одному символу:
<?php
$h = fopen("my_file.html","r");
while (!feof ($h)) {
$content = fgetc($h);
echo $content,"<br>";
}
fclose($h);
?>
На самом деле для того чтобы прочитать содержимое файла, открывать соединение с ним посредством функции fopen() совсем не обязательно. В PHP есть функции, которые позволяют делать это, используя лишь имя файла. Это функции readfile( ), file( ) и file_get_contents( ). Рассмотрим каждую их них подробнее.
Функция readfile
Синтаксис:
int readfile ( имя_файла
[, use_include_path])
Функция readfile() считывает файл, имя которого передано ей в качестве параметра имя_файла, и выводит его содержимое на экран. Если дополнительный аргумент use_include_path имеет значение TRUE, то поиск файла с заданным именем производится и по директориям, входящим в include_path.
В программу эта функция возвращает число считанных байтов (символов) файла, а в случае ошибки - FALSE. Сообщения об ошибке в этой функции можно подавить оператором @ .
Пример 9.7. Следующий скрипт выведет на экран содержимое файла my_file1.html и размер этого файла, если он существует. В противном случае выведется наше сообщение об ошибке - строка "Error in readfile".
<?php
$n = @readfile ("my_file1.html");
/* выводит на экран содержимое файла и
записывает его размер в переменную $n */
if (!$n) echo "Error in readfile";
/* если функция readfile() выполнилась
с ошибкой, то $n=false и выводим
сообщение об ошибке */
else echo $n;
// если ошибки не было, то выводим число
// считанных символов
?>
С помощью функции readfile() можно читать содержимое удаленных файлов, указывая их URL-адрес в качестве имени файла, если эта опция не отключена в настройках сервера.
Сразу же выводить содержимое файла на экран не всегда удобно. Порой нужно записать информацию из файла в переменную, чтобы в дальнейшем произвести с ней какие-либо действия. Для этого можно использовать функцию file() или file_get_contents().