Я использую это, чтобы проверить наличие URL-адреса:
$fp = fsockopen($url, 443, $errno, $errstr);
и я возвращаю эту ошибку …
Предупреждение: fsockopen () [function.fsockopen]: невозможно подключиться к https://example.com/soapserver.php:443 (Не удалось найти перенос сокетов «https» – вы забыли включить его при настройке PHP? ) в C: \ Home и т. д. и т. д.
Я использую сервер IIS btw (нет, это не мое дело!), Поэтому я думаю, что это связано с тем, что у меня нет open-ssl, но я не уверен. Может ли кто-нибудь помочь?
Я сделал phpinfo (), и у меня есть ssl, но на IMAP и cURL, вот и все.
Есть идеи?
также для ssl вам нужно префикс host с помощью ssl: //
Раскомментируйте строку: extension=php_openssl.dll
в php.ini
Вы должны использовать только имя хоста, а не URL-адрес в вызове fsockopen. Вам нужно будет предоставить uri, минус host / port в фактических заголовках HTTP. Как отметил @Martijin, и как указано на странице руководства, вам необходимо указать имя вашего хоста ssl: // для SSL или tls: // при использовании безопасности транспортного уровня.
Страница руководства для fsockopen. Посмотрите пример №1.
Предположим, вы хотели захватить NY Times, что обеспечивает HTTPS:
Неправильно:
$client = stream_socket_client('https://www.nytimes.com', $errno, $errstr, 30);
Верный:
$client = stream_socket_client('tcp://www.nytimes.com:443', $errno, $errstr, 30);
Примечание. Я заменил https://
с помощью tcp://
и добавил порт 443 к имени хоста.
Я думаю, мы можем сказать, что stream_socket_client()
не говорит о URL-адресах.
Проверьте завиток, установленный или нет для php. если он не установлен, установите завиток. для окон Раскомментируйте строку: extension = php_openssl.dll в php.ini, для ubuntu sudo apt-get install php-curl
Переход на ssl://
работал для меня, но я продолжал получать ответ BAD REQUEST. Я обнаружил, что мне нужно добавить еще одну строку, чтобы явно объявить заголовок хоста, как описано здесь, и убедиться, что я обновил свой HTTP с HTTP/1.0
до HTTP/1.1
:
$header .= "POST /cgi-bin/webscr HTTP/1.1\r\n"; $header .= "Host: www.sandbox.paypal.com\r\n";