file_get_contents
(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)
file_get_contents — Читає вміст файлу в рядок
Опис
file_get_contents( string $filename, bool $use_include_path = false, ?resource $context = null, int $offset = 0, ?int $length = null): string|false
Данная функция похожа на функциюfile() з тією лише різницею, що file_get_contents() повертає вміст файлу в рядку, починаючи з вказаного усунення offset
и доlength
байт. В случае неудачи,file_get_contents() поверне false
Использование функцииfile_get_contents() найкраще в разі необхідності отримати вміст файлу повністю, оскільки для поліпшення продуктивності функція використовує техніку відображення файлу в пам'ять (memory mapping), якщо вона підтримується вашою операційною системою.
Зауваження :
Якщо ви відкриваєте URI, що містить спецсимволи, такі як пропуск, вам потрібно закодувати URI за допомогою urlencode()
Список параметрів
filename
Ім'я файлу, що читається.
use_include_path
Зауваження :
Можна використовувати константу **
FILE_USE_INCLUDE_PATH
**для поиска файла вinclude path. Тільки пам'ятайте, що якщо ви використовуєте строгу типізацію, то так зробити не вийде, оскількиFILE_USE_INCLUDE_PATH
має тип int. У такому разі використовуйтеtrue
context
Коректний ресурс контексту, створений за допомогою функції stream_context_create(). Якщо у використанні особливого контексту немає необхідності, можна пропустити цей параметр, передавши в нього значення null
offset
Усунення, з якого почнеться читання оригінального потоку. Негативне значення усунення буде відраховуватися з кінця потоку.
Пошук усунення (offset
) не підтримується під час роботи з віддаленими файлами. Спроба пошуку усунення на нелокальних файлах може працювати при невеликих усуненнях, але результат буде непередбачуваним, оскільки функція працює на буферизованому потоці.
length
Максимальний розмір даних, що читаються. За промовчанням читання здійснюється доки не буде досягнуто кінець файлу. Зверніть увагу, що цей параметр застосовується і до потоку з фільтрами.
Значення, що повертаються
Функція повертає прочитані дані або **false
**в случае возникновения ошибки.
Увага
Ця функція може повертати як логічне значення **false
**так і значення не типу boolean, яке наводиться до false
. За більш детальною інформацією зверніться до розділу Логічний типИспользуйтеоператор === для перевірки значення, яке повертається цією функцією.
Помилки
Буде згенеровано помилку рівня E_WARNING
у випадках, якщо не вдасться знайти filename
, заданlength
менше нуля, або пошук по зміщенню offset
у потоці завершиться невдало.
Когдаfile_get_contents() викликається у каталозі, у Windows помилка генерується E_WARNING
, а з PHP 7.4 також в інших операційних системах.
список змін
Версия | Опис |
---|---|
8.0.0 | Параметрlength тепер припускає значення null |
7.1.0 | Додано підтримку негативних значень offset |
Приклади
Приклад #1 Отримати та вивести вихідний код домашньої сторінки сайту
Loading...
Приклад #2 Пошук файлів у include_path
Loading...
Приклад #3 Читання розділу файлу
Loading...
Висновок наведеного прикладу буде схожим на:
string(14) "lle Bjori Ro"
Приклад #4 Використання потокових контекстів
Loading...
Примітки
Зауваження: Ця функція безпечна для обробки даних у двійковій формі.
Підказка
У цю функцію як ім'я файлу можна передавати URL-адреси, якщо була включена директива fopen wrappers. Докладніше про те, як вказати ім'я файлу, описано в описі функції fopen(). В розділі "Підтримувані протоколи та обгортки» також дано посилання на інформацію про можливості підтримуваних обгорток, зауваження щодо роботи з ними та список визначених змінних, які вони дають.
Увага
При використанні SSL Microsoft IIS порушує протокол, закриваючи з'єднання без надсилання індикатора close_notify
. PHP повідомить про це як "SSL: Fatal Protocol Error" в той момент, коли буде досягнуто кінця даних. Щоб обійти це, потрібно встановити директиву error_reportingна уровень, исключающий E_WARNING. PHP вміє визначати, що на стороні сервера проблемний IIS при відкритті потоку обгорткою https://
та не виводить попередження. Якщо розробник створює сокет ssl://
через виклик функції fsockopen(), він сам відповідає за визначення та придушення цього попередження.
Дивіться також
- file() - Читає вміст файлу та поміщає його в масив
- fgets() - Читає рядок із файлу
- fread() - Бінарно-безпечне читання файлу
- readfile() - Виводить файл
- file_put_contents() - Пише дані у файл
- stream_get_contents() - Читає частину потоку, що залишилася, в рядок
- stream_context_create() - Створює контекст потоку
- $http_response_header