Intereting Posts
Использование ajax для вызова php и возврата нескольких переменных? Преобразование массива в csv База данных связанных параметров PHP вызывает неправильное количество параметров, если я использую двоеточие Как кэшировать / сохранять внешние API Зарегистрированная администратором регистрация в Symfony2 / FosUSerBundle PHP Неопределенный индекс / переменные PHP регулярное выражение с \ s в нем не работает Код возвращает последнее значение перед последним обновлением вместо последнего введенного значения? Мыло Jira с Php Передача результатов запроса базы данных в jQuery Sparkline Charts с использованием PHP Почему этот короткий скрипт php не отправляет электронную почту? Рекультивирующий xgettext? Что делает обертывание процедурного блока в фигурных скобках в php? Функция вызова PHP SOAP-клиента с параметрами Получить данные профиля пользователя Facebook в php

curl – разрешить эквивалент в библиотеке PHP CURL

Есть ли эквивалент curl --resolve .... в библиотеке PHP CURL?

Справочная информация. У меня есть циклический DNS (одно доменное имя разрешено для нескольких IP-адресов), и я хочу отправить запрос на конкретный хост. Я использую виртуальные хосты на основе имени apache, и поэтому правильное имя домена должно появляться в HTTP-запросе.

Я попытался указать IP в URL- curl_setopt($ch, CURLOPT_URL, '127.0.0.1') запроса: curl_setopt($ch, CURLOPT_URL, '127.0.0.1') и используя curl_setopt($ch, CURLOPT_HTTPHEADER, 'Host: example.com') . Он работает для HTTP, но для HTTPS я получаю ошибку проверки SSL (видимо, CURL проверяет сертификат против имени хоста URL и NOT Host: hostname).

Использование файла hosts не является удобным вариантом.

Во-первых, лучший способ получить ответ на то, как любой вариант curl переводит на libcurl (или PHP / CURL), – с помощью опции -libcurl .

Если вы это сделаете, вы узнаете, что –resolve переводит CURLOPT_RESOLVE с libcurl, поддерживаемый в PHP с версии 5.5.0 . Поддерживается libcurl с 7.21.3 .

У меня есть решение этого с помощью Python.

В .php-файле просто выполните эхо-вывод вывода python:

 <?php echo passthru("python python.py"); ?> 

В python.py:

 import httplib conn = httplib.HTTPSConnection('127.0.0.1'); url = "example.com" conn.request("GET", url) content = conn.getresponse() print content.read() conn.close() 

если вы собираетесь беспокоиться о том, чтобы развить другой процесс, просто вилка скручивается с опцией «–resolve» по сравнению с еще одним скриптом.