file_get_contents
(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)
file_get_contents — Читає вміст файла в рядку
Опис ¶
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
. Докладніше про це описано в розділі Логічні типи даних. Для перевірки
значення, яке повертає ця функція, використовується оператор ===.
Помилки/виключення ¶
Буде згенеровано помилку рівня 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);
?>
Примітки ¶
Зауваження: Ця функція є бінарно
безпечною.
ПідказкаURL як назву файлу можна
використовувати з цією функцією, якщо ввімкнені обгортки fopen. Докладніше про те, як
вказати назву файлу: fopen(). На сторінці Підтримувані протоколи та обгортки є посилання на інформацію про можливості різних обгорток,
примітки щодо їхнього використання, інформацію про будь-які попередньо визначені
цими обгортками змінні.
УвагаЯкщо використовувати SSL,
Microsoft IIS порушуватиме протокол, закриваючи зʼєднання без надсилання
індикатора close_notify
. Коли буде досягнуто кінця даних, PHP
повідомлятиме: "SSL: Fatal Protocol Error". Щоб обійти це, значення error_reporting має бути знижене до рівня,
який не включає попереджень. PHP може виявити несправне програмне забезпечення
сервера IIS та приховати попередження, якщо відкривати потік за допомогою
обгортки https://
. Якщо розробник використовує
fsockopen() для створення сокета ssl://
,
то він сам має виявляти та приховувати це попередження.