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



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


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


Функция fgetc


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


string fgetc ( указатель на файл )


Эта функция возвращает символ из файла, на который ссылается указатель на файл, и значение, вычисляемое как FALSE, если встречен конец строки.


Вот так, например, можно считать файл по одному символу:


>

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

>while (!feof ($h)) {

> $content = fgetc($h);

> echo $content,"
";

>}

>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".


>

>$n = @readfile ("my_file1.html");

>/* выводит на экран содержимое файла и

>записывает его размер в переменную $n */

>if (!$n) echo "Error in readfile";

>/* если функция readfile() выполнилась

>с ошибкой, то $n=false и выводим

>сообщение об ошибке */

>else echo $n;

> // если ошибки не было, то выводим число

> // считанных символов


?>


С помощью функции readfile() можно читать содержимое удаленных файлов, указывая их URL-адрес в качестве имени файла, если эта опция не отключена в настройках сервера.


Сразу же выводить содержимое файла на экран не всегда удобно. Порой нужно записать информацию из файла в переменную, чтобы в дальнейшем произвести с ней какие-либо действия. Для этого можно использовать функцию file() или file_get_contents().


Функция file


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