Файл: sys/core/getRemoteFile.php
Строк: 37
<?php
/**
* @author PHP
* @copyright 2015
* функция может получать контент,
* с отключеным url_fopen, и без библиотеки cURL
*/
function getRemoteFile($url)
{
// получаем имя хоста и путь
$parsedUrl = parse_url($url);
$host = $parsedUrl['host'];
if (isset($parsedUrl['path'])) {
$path = $parsedUrl['path'];
} else {
$path = '/';
}
if (isset($parsedUrl['query'])) {
$path .= '?' . $parsedUrl['query'];
}
if (isset($parsedUrl['port'])) {
$port = $parsedUrl['port'];
} else {
// наиболее вероятный 80 порт
$port = '80';
}
$timeout = 10;
$response = '';
// Коннектимся к удаленному серверу
$fp = @fsockopen($host, '80', $errno, $errstr, $timeout);
if (!$fp) {
die("Не удалось получить $url");
} else {
// отправляем заголовки
fputs($fp, "GET $path HTTP/1.0rn" .
"Host: $hostrn" .
"User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.0.3) Gecko/20060426 Firefox/1.5.0.3rn" .
"Accept: */*rn" .
"Accept-Language: en-us,en;q=0.5rn" .
"Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7rn" .
"Keep-Alive: 300rn" .
"Connection: keep-alivern" .
"Referer: http://$hostrnrn");
// получаем ответ от удаленного сервера
while ($line = fread($fp, 4096)) {
$response .= $line;
}
fclose($fp);
// удаляем заголовки
$pos = strpos($response, "rnrn");
$response = substr($response, $pos + 4);
}
// возвращаем контент
return $response;
}