Как использовать file_get_contents с прокси?

Когда я использую file_get_contents с SSL и Proxy у меня возникают следующие ошибки:

Предупреждение: file_get_contents (): сбой операции SSL с кодом 1. OpenSSL Сообщения об ошибках: ошибка: 1408F10B: подпрограммы SSL: ssl3_get_record: неверный номер версии в D: \ XAMPP \ htdocs \ instahu \ app \ vendor \ classes \ instagram.php в сети 154

Предупреждение: file_get_contents (https://www.instagram.com/explore/tags/test/): не удалось открыть поток: невозможно подключиться к HTTPS-серверу через прокси-сервер в папке D: \ XAMPP \ htdocs \ instahu \ app \ vendor \ classes \ instagram.php в строке 154

protected function curl_send($url,$post = null,$headers = null) {

global $settings;
global $language;
global $lng;
global $currentUrl;

$file = file_get_contents("http://" . $_SERVER['HTTP_HOST'] . "/app/vendor/classes/proxy.txt");

$file = explode("", $file);
if (count($file) == 0) {

include_once __DIR__.'/../../templates/500.php';
exit();
}

$mysqli = new mysqli($settings['db']['host'],
$settings['db']['user'],
$settings['db']['pass'],
$settings['db']['name']);
$exe_proxies = $mysqli->query('SELECT * FROM `proxy_used`');
$proxies = [];
while ($row = $exe_proxies->fetch_assoc()) {
$proxies[] = $row['proxy'];
}
foreach ($file as $proxy) {
if (!in_array($proxy, $proxies)) {
$target_proxy = $proxy;
break;
}
}

if (!isset($target_proxy)) {
$mysqli->query('DELETE FROM `proxy_used`');
$target_proxy = $file[0];
}
$mysqli->query('INSERT INTO `proxy_used` SET `proxy` = "' . $target_proxy . '"');
$target_proxy = 'tcp://'.$target_proxy;
$mysqli->close();
$headers['user-agent'] = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36';

if ($headers) {
foreach ($headers as $key => $header) {
$result[] = $key . ":" . $header;
}
$headers = join("\r\n", $result);
}

$aContext = [
'http' => [
'proxy' => $proxy,
'request_fulluri' => true,
//'method' => $post ? 'POST' : 'GET',
//'content' => http_build_query($post),
'header' => $headers,
],
];

$cxContext = stream_context_create($aContext);

$server_output = file_get_contents($url, False, $cxContext);
preg_match('#\d{3}#', $http_response_header[0], $code);

//var_dump($server_output, $code[0], $aContext, $url); exit();

return ['server_output' => $server_output, 'httpcode' => $code[0]];
}

0

Решение

Извините, ребята, я нашел решение в моем случае, все, что я изменяю, это смена ключа ‘http’ на ‘https’ в массиве $ aContext, и это работает

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]