Войти через VK Войти через FB Войти через Google Войти через Яндекс
Поиск по сайту
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