Den1xxx
Постоялец
- Регистрация
- 15 Янв 2014
- Сообщения
- 290
- Реакции
- 168
- Автор темы
- #1
Здравствуйте.
Как, при использовании curl, определить заголовки, посылаемые сервером?
Дело в том, что редиски из Гугла отдают в контенте
А вот перед этим заголовками посылают хидеры с кодировкой, она имеет естественно приоритет и всё ломается.
Вот так определяются заголовки, посылаемые curl'ом:
А вот опции CURLINFO_HEADER_IN — не существует.
Но как-то можно же их посмотреть?
Ткните носом, плиз, не нашёл.
Если задавать curl_setopt($ch, CURLOPT_HEADER, true); — заголовки смешиваются с контентом, что не айс.
Весь код:
Как, при использовании curl, определить заголовки, посылаемые сервером?
Дело в том, что редиски из Гугла отдают в контенте
HTML:
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
Вот так определяются заголовки, посылаемые curl'ом:
PHP:
<?
$headers = curl_getinfo($ch,CURLINFO_HEADER_OUT);
Но как-то можно же их посмотреть?
Ткните носом, плиз, не нашёл.
Если задавать curl_setopt($ch, CURLOPT_HEADER, true); — заголовки смешиваются с контентом, что не айс.
Весь код:
PHP:
<?
// mini proxy, manyyy bugs!
if (isset($_GET['proxy'])) {
$url = isset($_GET['url'])?$_GET['url']:'';
$form = '
<div style="position:relative;z-index:10500;">
<form action="" method="GET">
<input type="hidden" name="proxy" value="true">
Url: <input type="text" name="url" value="'.$url.'">
<input type="submit" value="Show">
</form>
</div>
';
if ($url) {
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_USERAGENT, 'Den1xxx test proxy');
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST,0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,0);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_REFERER, 'http://'.$_SERVER['HTTP_HOST']);
ob_start();
curl_exec($ch);
print(curl_error($ch));
curl_close($ch);
$result = ob_get_clean();
$result = str_replace('background:url(/',$url.'/',$result);
$result = preg_replace('#(href|src)=["\'][http://]?([^:]*)["\']#Ui', '\\1="'.$url.'/\\2"', $result);
$result = preg_replace('%(<body.*?>)%i', '$1'.$form, $result);
echo $result;
die();
} else {
?>
<!doctype html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Proxy</title>
</head>
<body>
<?=$form?>
</body>
</html>
<?
die();
}
}