Наш чат в Telegram для обмена идеями, проектами, мыслями, людьми в сфере ИТ г.Ростова-на-Дону: @it_rostov

file_get_contents

(PHP 4 >= 4.3.0, PHP 5)

file_get_contents - Получить содержимое файла в виде одной строки

Описание

string file_get_contents ( string filename [, bool use_include_path [, resource context [, int offset [, int maxlen]]]] )

Данная функция идентична функции file() с той только разницей, что содержимое файла возвращается в строке, начиная с указанного смещения offset и до maxlen байтов. В случае неудачи, file_get_contents() вернёт FALSE.

Использование функции file_get_contents() наиболее предпочтительно в случае необходимости получить содержимое файла целиком, поскольку для улучшения производительности функция использует алгоритм 'memory mapping' (если поддерживается операционной системой).

Замечание: Если вы открываете URI содержащий спецсимволы, такие как пробел, вам нужно закодировать URI при помощи urlencode().

Примечания

Замечание: Эта функция безопасна для обработки данных в двоичной форме.

Подсказка: Для этой функции вы можете использовать URL в качестве имени файла, если была включена опция "fopen wrappers". Смотрите более подробную информацию об определении имени файла в описании функции fopen(), а также список поддерживаемых протоколов URL в Прил. M.

Внимание

При использовании SSL, Microsoft IIS нарушает протокол, закрывая соединение без отправки индикатора close_notify. PHP сообщит об этом как о "SSL: Fatal Protocol Error" в тот момент, когда вы достигнете конца данных. Чтобы обойти это, вы должны установить error_reporting на уровень, исключающий E_WARNING. PHP версий 4.3.7 и старше умеет определять, что на стороне сервера находится проблемный IIS и не выводит предупреждение. Если вы используете fsockopen() для создания ssl:// сокета, вы сами отвечаете за определение и подавление этого предупреждения.

Примеры

Пример 1. Получить содержание сайта через прокси с помощью file_get_contents:
$aContext = array(
    'http' => array(
    'proxy' => 'tcp://127.0.0.1:8080?,
    'request_fulluri' => True,
    ),
    );
$cxContext = stream_context_create($aContext);
$sFile = file_get_contents("http://htmlweb.ru", False, $cxContext);

echo $sFile;
Пример 2. Эмулятор функции file_get_contents
if (!function_exists('file_get_contents')) {
function file_get_contents($filename, $incpath = false, $resource_context = null)
{
if (false === $fh = fopen($filename, 'rb', $incpath)) {
trigger_error('file_get_contents() failed to open stream: No such file or directory', E_USER_WARNING);
return false;
}

clearstatcache();
if ($fsize = @filesize($filename)) {
$data = fread($fh, $fsize);
} else {
$data = '';
while (!feof($fh)) {
$data .= fread($fh, 8192);
}
}

fclose($fh);
return $data;
}
}
Пример 3. POST-запрос с помощью file_get_contents
function http_post ($url, $data)
{
$data_url = http_build_query ($data);
$data_len = strlen ($data_url);

return array (
    'content'=>file_get_contents ($url, false,
        stream_context_create (array ('http'=>array ('method'=>'POST'
    , 'header'=>"Connection: close\r\n".
                "Content-Type: application/x-www-form-urlencoded; charset=utf-8\r\n".
                "Content-Length: $data_len\r\n"
    , 'content'=>$data_url
    ))))
    , 'headers'=>$http_response_header
);
}

Смотрите также: file(), fgets(), fread(), readfile(), file_put_contents().

Все функции файл
Описание на ru2.php.net
Описание на php.ru