(PHP 4 >= 4.3.0, PHP 5)
file_get_contents — Изчита файл в низ
Функцията е подобна на file(), с тази разлика, че file_get_contents() връща резултата в низ, започвайки от отместване offset и изчитайки maxlen байта. При грешка file_get_contents() ще върне FALSE
file_get_contents() е предпочитания начин за изчитане на цялото съдържание на файл в низ. Тя ще използва съпоставяне в паметта (memory mapping), ако се поддържа от операционната система, с цел да се повиши производителността.
Забележка: Ако отваряте URI, съдържащ специални знаци, като например интервали, трябва да кодирате този URI с urlencode().
Файлът, който трябва да бъде изчетен.
За всички версии преди 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. |
Валиден ресурс на контекст, създаден с stream_context_create(). Ако нямате нужда от потребителски контекст, можете да пропуснете този параметър като подадете NULL.
Отместването от което започва четенето.
Максималната дължина на данните, които да бъдат изчетени.
Функцията връща изчетените данни или 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', NULL, NULL, 20, 14);
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:// сокет, разработчикът е отговорен за това да открие и подтисне предупреждението.