Знакомства на Just click it
Скоро новый год!
Онлайн радио
Вверх
Новые статьи

Ретро газета в подарок
Архив

fread,fgets,fgetss,fgetc,readfile,file,file_get_contents - чтение из файла

Создавать файлы и записывать в них данные мы научились в предыдущих уроках данного учебника. Но как считать данные из файла?

Для считывания данных из файлов в PHP имеется ряд функций, которые мы рассмотрим в данном уроке.

 

Чтение данных из файла


После того, как соединение с файлом открыто, можно произвести чтение данных из этого файла. В PHP существует целый ряд функций, предназначенных для считывания данных из файла:

 

 

Функция fread

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

 

fread (указатель на файл,длина)

 

Параметр указатель на файл позволяет установить связь с файлом из которого будет происходить считывание. Указатель на файл возникает момент создания нового файла или открытия существующего ($h=fopen()). Параметр длинна позволяет указать количество информации (в байтах), которое будет считанно из файла. Длинну файла можно узнать при помощи функции filesize().

 

В результате своего выполнения функция fread() возвращает строку со считанной из файла информацией.

 

<?php
$h = fopen("my_file.1","r+");
$content = fread($h,filesize("my_file.1"));
fclose($h);
echo $content;
?>
Строка для записи в файл.

 

Функция fgets

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

 

fgets ( указатель на файл [, длина])

 

Если параметр длинна не указан, то файл будет считан целиком:

 

<?php
$h = fopen("my_file.1","r+");
$content = fgets($h,11);
fclose($h);
echo $content;
?>
Строка для


Функция fgetss

Функция fgetss() позволяет считать данные из файла, паралельно удаляя все встретившиеся HTML теги. Синтаксис fgetss() такой:

 

fgetss(указатель на файл, длина , допустимые теги])

 

Следует отметить, что в отличие от функции fgets() в данном случае параметр длина является обязательным.

 

Рассмотрим пример:

 

для начала создадим файл file1.txt:

 

<?
$h=fopen("file1.txt",w);
$text="<h1>Заголовок H1 </h1> <b>Жирный шрифт </b><p>Параграф</p>";
if (fwrite($h,$text))
echo "файл готов";
else
echo "произошла ошибка";
?>

файл готов


А теперь произведем чтение из файла, параллельно удалив все HTML теги, кроме <H1>:

 

<?php
$h = fopen("file1.txt","r");
while (!feof ($h))
{
$content = fgetss($h,1024,'<h1>');
echo $content,"<br>";
}
fclose($h);
?>

Заголовок H1

Жирный шрифт Параграф


В данном примере мы производим считывание данных из файла внутри цикла while. Условием выполнение цикла является проверка окончания файла – !feof ($h). Если не произошло окончание файла, то считывается 1024 байта данных из файла, с паралельным удалением всех встречающихся HTML тегов, за исключением <h1>.



Функция fgetc

Функция fgetc() позволяет считать один символ из файла и обладает следующим синтаксисом:

 

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

 

Попробуем считать весь файл посимвольно:

 

<?php
$h = fopen("file1.txt","r");
while (!feof ($h))
{
$content = fgetc($h);
echo $content;
}
fclose($h);
?>

Заголовок H1

Жирный шрифт

Параграф



В данном примере для считывания всей строки мы использовали цикл while(), каждая итерация которого инициировалась при выполнении условия не достижения конца файла..

Функция readfile

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

 

readfile ( имя_файла [ use_include_path])

Если используется аргумент use_include_path, то поиск файла будет производиться внутри директории для скриптов по умолчанию (include_path), расположение которой задается в настройках PHP.

В момент вызова функция выводит на экран считанную строку, а в результате своей работы возвращает количество считанных символов:

 

 

<?php
$n = readfile ("my_file.1");
echo "<br>".$n;
?>
Строка для записи в файл.
25


Функция file

Функция file() позволяет считать данные из файла, записав их в массив:

 

file ( имя_файла [ use_include_path])

 

Каждым элементом созданного массива будет являться новая строка файла из которого производилось считывание. Дополнительный аргумент use_include_path определяет, искать или нет данный файл в директориях include_path.

 

Попробуем считать данные из файла file1.txt при помощи функции file():

 

<?php
$arr = file ("file1.txt");
foreach($arr as $i => $a)
echo $i,": ",htmlspecialchars($a), "<br>";
?>
0: <h1>Заголовок H1 </h1> <b>Жирный шрифт </b><p>Параграф</p>


В данном примере мы использовали функцию htmlspecialchars() для перевода всех символов HTML форматирования в их специальную кодировку для вывода их на экран.

Функция file_get_contents

Функция file_get_contents() позволяет произвести чтение файла в строку и имеет следующий синтаксис:

 

file_get_contents ( имя_файла [ use_include_path])

 

В общем–то данная функция не привносит нового функционала в работу с файлами, но все–же рассмотрим пример:

 

<?php
$a = file_get_contents ("file1.txt");
echo $a;
?>

Заголовок H1

Жирный шрифт

Параграф

 

 

назад
далее
Наверх
Источник: Создание сайтов
Мы В Контакте Мы на Facebook Лента новостей RSS
Копирование и публикация материалов сайта разрешены только при наличии активной ссылки на источник
2011 - наши дни.. © Контакты | Лого | Реклама на сайте | Вебмастерам