Вход/Регистрация
Курс "Язык программирования PHP"
вернуться

Савельева Нина Владимировна

Шрифт:

Функция 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.

Функция file

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

array file ( имя_файла

[, use_include_path])

Что за массив возвращает эта функция? Каждый элемент данного массива является строкой в файле, информацию из которого мы считываем (его имя задано аргументом имя_файла). Символ новой строки тоже включается в каждый из элементов массива. В случае ошибки функция file, как и все уже рассмотренные, возвращает false. Дополнительный аргумент use_include_path опять же определяет, искать или нет данный файл в директориях include_path. Открывать удаленные файлы с помощью этой функции тоже можно, если не запрещено сервером. Начиная с PHP 4.3 работа с бинарными файлами посредством этой функции стала безопасной.

Например, у нас имеется файл my_file.html следующего содержания:

<h1>Без труда не вынешь

и рыбку из пруда.</h1>

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

Прочитаем его содержимое с помощью функции file:

<?php

$arr = file ("my_file.html");

foreach($arr as $i => $a) echo $i,": ",

htmlspecialchars($a), "<br>";

?>

В результате на экран будет выведено следующее сообщение:

0: <h1>Без труда не вынешь

и рыбку из пруда.</h1>

1: <b>Тише едешь - дальше будешь</b>

Функция file_get_contents

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

string file_get_contents (

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

Эта функция абсолютно идентична функции file, только возвращает она содержимое файла в виде строки. Кроме того, она безопасна для обработки бинарных данных и может считывать информацию из удаленных файлов, если это не запрещено настройками сервера.

Проверка существования файла

Итак, создавать файл мы научились, записывать данные в него - научились, считывать данные из файла - тоже научились. Но вот вопрос: а что если файла, с которым мы пытаемся проделать все эти операции, не существует? Или он недоступен для чтения или записи? Очевидно, что в таком случае ни одна из изученных нами функций работать не будет и PHP выдаст сообщение об ошибке. Чтобы отслеживать такого рода ошибки, можно использовать функции file_exists, is_writable, is_readable. 

  • Читать дальше
  • 1
  • ...
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: