Функция file_get_contents

Функция file_get_contents читает содержимое файла и возвращает его в виде строки. В первый параметр передается путь к файлу, во второй - флаг включения пути поиска, в третий - контекст потока, в четвертый - смещение для начала чтения, в пятый - максимальная длина данных.

Третий параметр особенно полезен, когда нужно искать файлы в стандартных директориях, указанных в конфигурации PHP, а не только по абсолютному пути.

Синтаксис

phpfile_get_contents(
  string $filename,
  bool $use_include_path = false,
  ?resource $context = null,
  int $offset = 0,
  ?int $maxlen = null
): string|false

Параметры

Параметр Описание
filename Путь к файлу или URL
use_include_path Если установлено в true, функция будет искать файл в директориях, указанных в параметре include_path в настройках PHP в файле php.ini. По умолчанию false.
context Ресурс контекста потока
offset Смещение для начала чтения
maxlen Максимальная длина читаемых данных

Пример

Чтение содержимого локального файла:

php<?php
  $res = file_get_contents('data.txt');
  echo $res;
?>

Результат выполнения кода:

php'abcde'

Пример

Чтение части файла с указанием смещения и длины:

php<?php
  $res = file_get_contents('data.txt', false, null, 1, 3);
  echo $res;
?>

Результат выполнения кода:

php'bcd'

Пример

Чтение содержимого веб-страницы:

php<?php
  $res = file_get_contents('https://example.com');
  echo substr($res, 0, 50) . '...';
?>

Результат выполнения кода:

php'<!doctype html><html><head><title>Example D...'

Пример

Поиск файла в include_path:

php<?php
  $res = file_get_contents('config.ini', true);
  echo $res;
?>

Результат выполнения кода:

php'config_data'

Параметр контекста потока

Параметр context позволяет передать ресурс контекста потока, который может модифицировать поведение функции при работе с файлами или сетевыми ресурсами.

Ресурс контекста, созданный функцией stream_context_create. Если не требуется особых настроек, можно передать null.

Возможности контекста:

Пример работы:

php<?php
  $opts = [
    'http' => [
      'method' => "GET",
      'header' => "Accept-language: en\r\n"
    ]
  ];
  $context = stream_context_create($opts);
  $res = file_get_contents('https://example.com', false, $context);
?>

Смотрите также

  • функцию file_put_contents,
    которая записывает данные в файл
  • функцию fopen,
    которая открывает файл
  • функцию file,
    которая читает файл в массив строк