Функции за работа с файловата система
PHP Manual

file_get_contents

(PHP 4 >= 4.3.0, PHP 5)

file_get_contentsИзчита файл в низ

Описание

string file_get_contents ( string $filename [, int $flags = 0 [, resource $context [, int $offset = -1 [, int $maxlen = -1 ]]]] )

Функцията е подобна на file(), с тази разлика, че file_get_contents() връща резултата в низ, започвайки от отместване offset и изчитайки maxlen байта. При грешка file_get_contents() ще върне FALSE

file_get_contents() е предпочитания начин за изчитане на цялото съдържание на файл в низ. Тя ще използва съпоставяне в паметта (memory mapping), ако се поддържа от операционната система, с цел да се повиши производителността.

Забележка: Ако отваряте URI, съдържащ специални знаци, като например интервали, трябва да кодирате този URI с urlencode().

Параметри

filename

Файлът, който трябва да бъде изчетен.

flags
Предупреждение

За всички версии преди PHP 6 се нарича use_include_path и е от тип bool. Параметърът flags е наличен от версия PHP 6 и по-нови. Ако използвате по-стара версия и искате файлът filename да бъде търсен и в include path, този параметър трябва да бъде TRUE. От PHP 6 вместо това трябва да използвате константата FILE_USE_INCLUDE_PATH.

Стойността на параметъра flags може да бъде каква да е комбинация от следните флагове (с някои ограничения), съединени с оператор двоично ИЛИ (|) .

Налични флагове
Флаг Описание
FILE_USE_INCLUDE_PATH Търси за файл filename и в include path.
FILE_TEXT Ако се използва семантика unicode, знаковата кодировка на прочетените данни по подразбиране ще бъде UTF-8. Можете да указвате различна кодировка, чрез създаване на друг контекст или чрез смяна на подразбиращата се посредством stream_default_encoding(). Този флаг не може да се използва с FILE_BINARY.
FILE_BINARY При указване на този флаг, файлът се изчита в двоичен режим. Това е подразбиращата се стойност и не може да се използва с FILE_TEXT.

context

Валиден ресурс на контекст, създаден с stream_context_create(). Ако нямате нужда от потребителски контекст, можете да пропуснете този параметър като подадете NULL.

offset

Отместването от което започва четенето.

maxlen

Максималната дължина на данните, които да бъдат изчетени.

Връщани стойности

Функцията връща изчетените данни или FALSE при грешка.

Примери

Example #1 Взима и извежда кода на началната страница на уеб-сайт

<?php
$homepage 
file_get_contents('http://www.example.com/');
echo 
$homepage;
?>

Example #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);
?>

Example #3 Четене на част от файл

<?php
// Прочита 14 знака, започвайки от 21-ия знак
$section file_get_contents('./people.txt'NULLNULL2014);
var_dump($section);
?>

Примерът по-горе ще изведе нещо подобно на:

string(14) "lle Bjori Ro" 

Example #4 Използване на потоков контекст

<?php
// Create a stream
$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);
?>

Дневник на промените

Версия Описание
5.0.0 Добавена е поддръжка за контекст.
5.1.0 Добавени са параметри offset и maxlen .
6.0.0 Параметърът use_include_path е заменен с flags .

Бележки

Забележка: Тази функция е двоично сигурна (binary-safe).

Съвет

Даден URL може да бъде използван като име на файл с тази функция ако fopen wrappers е включено. Виж fopen() за повече подробности относно начина, по който се задава име на файл и List of Supported Protocols/Wrappers за списък с поддържаните URL протоколи.

Предупреждение

Ако използвате SSL, Microsoft IIS ще наруши протокола, като прекъсне връзката без да изпрати индикатора close_notify. При достигане до края на данните, PHP ще съобщи за това чрез "SSL: Fatal Protocol Error". За да се справите с това, трябва да намалите нивото на error_reporting така, че да не генерира предупреждения. PHP 4.3.7 и по-късните версии могат да разкриват неправилно работещ IIS сървър, когато отворите потока чрез опаковката https://, и ще подтиснат предупреждението. При използване на fsockopen() за създаване на ssl:// сокет, разработчикът е отговорен за това да открие и подтисне предупреждението.

Вж. също


Функции за работа с файловата система
PHP Manual