file_get_contents
(PHP 4 >= 4.3.0, PHP 5, PHP 7)
file_get_contents — Читає вміст файла в рядку
Опис
string file_get_contents
( string $filename
[, bool $use_include_path
= false
[, resource $context
[, int $offset
= -1
[, int $maxlen
]]]] )
file_get_contents() є кращим варіантом для читання вмісту
файла в рядку. Вона буде використовувати технологію співставлення в пам'яті,
якщо це підтримується вашою ОС для збільшення продуктивності.
Зауваження:
Якщо ви відкриваєте URI, що мають спец-символи, такі як пробіли, вам
потрібно закодовувати URI за допомогою urlencode().
Параметри
-
filename
-
Назва файлу, який буде читатись.
-
use_include_path
-
Зауваження:
Починаючи з PHP 5 може використовуватись константа
FILE_USE_INCLUDE_PATH
для ініціювання пошуку
в підключеному розташуванні
(include path).
-
context
-
Коректний ресурс контекста, створений за допомогою функції
stream_context_create(). Якщо вам не потрібно
використовувати користувальницький контекст, ви можете пропустити цей
параметр передавши в нього значення NULL
.
-
offset
-
Зміщення, з якого починається читання в наданому потоці.
Пошук зміщення (offset
) не підтримується для
віддалених файлів. Зміщення на віддалених файлах може працювати з
невеликими зміщеннями, але це є непередбачуваним, оскільки
в такому разі використовується буферизація потоку.
-
maxlen
-
Максимальна довжина даних для читання. Початково, відбувається
читання допоки не досягнуто кінця файлу. Майте на увазі, що цей
параметр застосовується при обробці потоку через фільтри.
Значення, що повертаються
Функція повертає прочитані дані або FALSE
в разі помилки.
УвагаЦя функція
може повертати як логічне FALSE
, так і нелогічне значення, яке прирівнюється до FALSE
.
Детальніше про це описується в розділі Логічний тип даних (Booleans). Використовуйте
оператор === щоб перевірити
значення, яке повертає дана функція.
Помилки/Винятки
Буде згенеровано помилку рівня E_WARNING
,
якщо файл (filename
) не знайдено,
максимальна довжина (maxlength
) менша за нуль,
або якщо відбулась невдала спроба зазначеного зміщення
(offset
) в потоці.
Приклади
Приклад #1 Отримання та вивід сирців домашньої сторінки веб-сайта
<?php
$homepage = file_get_contents('http://www.example.com/');
echo $homepage;
?>
Приклад #2 Пошук всередині підключеного розміщення (include_path)
<?php
// <= PHP 5
$file = file_get_contents('./people.txt', true);
// > PHP 5
$file = file_get_contents('./people.txt', FILE_USE_INCLUDE_PATH);
?>
Приклад #3 Читання частини файла
<?php
// Читання 14 символів, починаючи від 21-го символу
$section = file_get_contents('./people.txt', NULL, NULL, 20, 14);
var_dump($section);
?>
Наведений вище приклад виведе
щось подібне до:
string(14) "lle Bjori Ro"
Приклад #4 Використання контексту потока
<?php
// Створення потока
$opts = array(
'http'=>array(
'method'=>"GET",
'header'=>"Accept-language: en\r\n" .
"Cookie: foo=bar\r\n"
)
);
$context = stream_context_create($opts);
// Відкриття файла, використовуючи HTTP заголовки встановлені вище
$file = file_get_contents('http://www.example.com/', false, $context);
?>
Примітки
Зауваження: Ця функція
є бінарно-безпечною.
ПідказкаA URL can be used as a
filename with this function if the fopen wrappers have been enabled.
See fopen() for more details on how to specify the
filename. See the Supported Protocols and Wrappers for links to information
about what abilities the various wrappers have, notes on their usage,
and information on any predefined variables they may
provide.
УвагаWhen using SSL, Microsoft IIS
will violate the protocol by closing the connection without sending a
close_notify indicator. PHP will report this as "SSL: Fatal
Protocol Error" when you reach the end of the data. To work around this, the
value of error_reporting should be
lowered to a level that does not include warnings.
PHP 4.3.7 and higher can detect buggy IIS server software when you open
the stream using the https:// wrapper and will suppress the
warning. When using fsockopen() to create an
ssl:// socket, the developer is responsible for detecting
and suppressing this warning.