Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Vtoraya_chast_uchebnika_po_WWW_Okonchat_variant...doc
Скачиваний:
33
Добавлен:
27.09.2019
Размер:
6.06 Mб
Скачать

Пример 5‑56

<?php

$novpath = "D:/FilesForPHP/file3.txt";

if ( is_readable($novpath) )

// Открыть файл и установить указатель текущей позиции в конец файла

{

$fd = fopen($novpath, "r");

echo " Файл $fd открыт! <br>";

}

else

echo "$fd не может быть прочитан! <br>";

$file = fread($fd, filesize($novpath))

echo 'Размер файла ( '. $novpath.' ) равен '.filesize($novpath).' байтf',"<br>";

echo 'Содержимое считанного файла = '.$file;

fclose($fd);

?>

5.3.5. Специальные случаи чтения файлов

5.3.5.1. Чтение строк текста: функция fgets( )

Синтаксис функции:

fgets ( resource handle [, int length])

Данная функция рассматривает файл как текстовый. В качестве аргументов функции передаются дескриптор открытого файла и необязательный параметр length. Функция возвращает строку символов длиной length-1. Считывание символов прекращается при выполнении одного из следующих условиях – в зависимости от того, какое событие произойдёт первым:

  • при достижении (length-1)-го символа;

  • при считывании конца строки, который также включается в возвращаемый результат;

  • при достижении конца файла.

Если параметр length не задан, то по умолчанию его значение принимается равным 1024 байт.

Если необходимо организовать построчное чтение файла, то надо передавать во втором параметре значение, заведомо превышающее количество байт в строке, или не использовать вообще для строк, длина которых меньше 1024 байт. Удобно использовать специальную функцию, определяющую конец файла feof( ).

Соответствующий фрагмент кода, работающий с рассмотренным ранее файлом file1.txt, представлен далее:

<?php

$novpath="D:/FilesForPHP/file1.txt";

$handle = fopen($novpath, "r");

while (!feof($handle))

{

$text = fgets($handle);

echo $text,"<br>";

}

fclose($handle);

?>

5.3.5.2. Чтение строк текста c отбрасыванием html тегов: функция fgetss( )

Синтаксис:

string fgetss ( resource $handle [, int $length [, string $allowable_tags ]] )

Данная функция идентична функции fgets() с той только разницей, что осуществляет отбрасывание любых HTML и PHP-тегов из прочитанной строки. Необязательный третий параметр может содержать строку со списком тегов, которые не должны быть отброшены.

5.3.5.3. Посимвольное чтение файла: функция fgetс( )

Синтаксис функции:

string fgetс ( resource $handle )

Функция возвращает строку, содержащую один символ, прочитанный из файла, на который указывает handle. Возвращает FALSE по достижению конца файла (EOF). Дескриптор должен указывать на файл, открытый ранее с помощью функций fopen(), popen() или fsockopen().

Эта функция может возвращать как логическое значение FALSE, так и не относящееся к логическому типу значение, которое приводится к FALSE, например, 0 или "". Для проверки значения, возвращаемого этой функцией, используйте оператор = = .

В примере Пример 5 -57 используется эта функция для посимвольного вывода файла в разных вариантах.

Пример 5‑57

<?php

$novpath="D:/FilesForPHP/file1.txt";

$handle = fopen ($novpath, "rb");

if (!$handle)

echo 'Ошибка при открытии файла somefile.txt';

while (false !== ($char = fgetc($handle)))

{

echo "$char";

//echo "$char <br>"; //Второй вариант посимвольного вывода

}

fclose($handle);

echo "<br>";

//Обеспечение посимвольного вывода по отдельным строкам

$handle = fopen($novpath, "rb");

while ($char = fgetc($handle))

{

if($char == "\n")

$char = "<br>"; //замена символа конца строки на тег

echo "$char";

}

?>