http://ru.html.net/tutorials/php/lesson15.php | |
Урок 15: Чтение из текстового файлаВ предыдущем уроке мы научились использовать РНР для доступа к файловой системе сервера. В этом уроке используем эту информацию для чтения из простого текстового файла. Текстовые файлы отлично подходят для хранения разного рода данных. Они не так гибки, как базы данных, но обычно не требую такого количества памяти. Более того, текстовые файлы имеют формат, который читается на большинстве систем. Открыть текстовый файлДля открытия текстового файла используем функцию fopen. Вот её синтаксис: fopen(filename, mode)
Примеры этого урока используют файл unitednations.txt. Это простой список программ и фондов ООН и их доменов. Можете загрузить этот файл или создать свой и использовать его в примерах. Сначала попробуем открыть unitednations.txt: <?php // Открыть текстовый файл $f = fopen("unitednations.txt", "r"); // Закрыть текстовый файл fclose($f); ?> Пример 1: Чтение строки из текстового файлаС помощью функции fgets можно читать строку из текстового файла. Этот метод читает до первого символа переноса строки (но не включая символ переноса строки). <html> <head> <title>Чтение из текстовых файлов</title> </head> <body> <?php $f = fopen("unitednations.txt", "r"); // Читать строку их текстового файла и записать содержимое клиенту echo fgets($f); fclose($f); ?> </body> </html> Пример 2: Чтение всех строк текстового файла
<html> <head> <title>Чтение из текстовых файлов</title> </head> <body> <?php $f = fopen("unitednations.txt", "r"); // Читать построчно до конца файла while(!feof($f)) { echo fgets($f) . "<br />"; } fclose($f); ?> </body> </html> В этом примере мы выполняем цикл по всем строкам и используем функцию feof (for end-of-file/до конца файла) для проверки достижения конца файла. Если конец не достигнуть ("!" - см. Урок 6), строка записывается. Вместо цикличного прохода по всем строкам мы можем получить тот же результат функцией fread. При работе с очень большими текстовыми файлами помните, что fread использует больше ресурсов, чем fgets. Для маленьких файлов разница в работе несущественна. Пример 3: Простая директория ссылокКак сказано в начале этого урока, текстовые файлы могут отлично подойти для хранения данных. Это показано на следующем примере, где создаётся простая директория ссылок из содержимого файла unitednations.txt. В файле систематизированно записаны: название программы, запятая, домен. Как вы, вероятно, могли предположить, в файле с разделением запятыми можно записать куда больше информации. Для получения информации из каждой строки используем массив. См. в Уроке 8 о массивах. <html> <head> <title>Чтение из текстовых файлов</title> </head> <body> <?php $f = fopen("unitednations.txt", "r"); // Читать построчно до конца файла while (!feof($f)) { // Создать массив с запятой-разделителем $arrM = explode(",",fgets($f)); // Записать ссылки (получить данные из массива) echo "<li><a href='http://" . $arrM[1] . "'>" . $arrM[0]. "</a></li>"; } fclose($f); ?> </body> </html> Весьма удобно, правда? В принципе вы можете расширить этот файл сотнями ссылок или расширить директорию, включив также адреса. В следующем уроке мы мы посмотрим, как записать в текстовый файл.
|
|