|
 |
Путь: Шпаргалки
Шпаргалки
Автор: - Yurik
Дата публикации - 30.06.2005
Просмотров: - 9611
Работа CURL с SSL
[quote]Пытаюсь загрузить через HTTP-Proxy и показать линк с https сайта и что то ничего не получается. если аддресс http то нет проблем.[/quote]
Вот способ решения такой проблемы.
[php]
<?php
$domain = "www.nash_ssl_site.com";
$file="/folder/script.dll?variables=dsds";
$proxy='192.168.1.1';
$port=3128;
$fp = fsockopen($proxy, $port, $errno, $errstr,5);
fputs($fp, "CONNECT $url:443 HTTP/1.0\r\nUser-agent: PHP/4.3.11\r\n\r\n");
// А вот тут обломчики... открыть fsockopen('ssl://site.com') в уже существующий $fp мы не сможем...
?>[
/php]
Без CURL очевидно не обойтись...
[php]
<?php
function curl_string ($url,$user_agent,$proxy){
$ch = curl_init();
// установить соединение через прокси:порт_прокси
curl_setopt ($ch, CURLOPT_PROXY, $proxy);
// если требуется авторизация на Proxy
curl_setopt ($ch, CURLOPT_PROXYUSERPWD, 'user_login:secret_password');
// установить соединение в режиме "туннеля" прокси - через CONNECT !!
curl_setopt ($ch, CURLOPT_HTTPPROXYTUNNEL, $proxy);
// установить запрашиваемый URL
curl_setopt ($ch, CURLOPT_URL, $url);
// "зашифроваться" под USER_AGENT
curl_setopt ($ch, CURLOPT_USERAGENT, $user_agent);
// установить куда сохранять куку, очень нужная вещь если есть авторизация и редиректы!
// надо чтобы был доступ на запись.
// в многопользовательской среде могут быть траблы с паралельным доступом к файлу.
// Тогда надо хранить в временном файле
curl_setopt ($ch, CURLOPT_COOKIEJAR, "./cookie.txt");
// если требуется передача HTTP_REFERER
curl_setopt ($ch, CURLOPT_REFERER, "http://example.com/previous.html");
// HTTP заголовки ответа включать в возвращаемый результат
curl_setopt ($ch, CURLOPT_HEADER, 1);
// возвратить результат обработки в переменную а не на STDOUT
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
// если будут редиректы - следовать за ними
curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt ($ch, CURLOPT_TIMEOUT, 120); // таймаут соединения - 2 минуты
$result = curl_exec ($ch); // выполнить запрос
curl_close($ch);
return $result;
}
$url_page = "https://authorize.net/dir/file.req?var=val";
$user_agent = "PHP/4.3.11";
$proxy = "192.168.1.1:3128";
$string = curl_string($url_page,$user_agent,$proxy);
echo $string;
?>[
/php]
Обсудить в ФОРУМе - комментариев ()
Путь: Шпаргалки
Если вы заметили орфографическую, стилистическую или другую ошибку на этой странице, просто выделите ошибку мышью и нажмите Ctrl+Enter.
|
|