无法找到套接字传输"https"

Chr*_*len 35 php iis fsockopen

我正在使用它来检查URL的可用性:

$fp = fsockopen($url, 443, $errno, $errstr);
Run Code Online (Sandbox Code Playgroud)

我收到这个错误...

警告:fsockopen()[function.fsockopen]:无法连接到https://example.com/soapserver.php:443(无法找到套接字传输"https" - 您是否忘记在配置PHP时启用它? )在C:\ Home等等....

我正在使用IIS服务器顺便说一句,(不是我的不做!)所以我认为它与没有open-ssl有关,但我不确定.有人可以帮忙吗?

我做了一个phpinfo(),我确实有ssl,但在IMAP和cURL上,就是这样.

有任何想法吗?

Sér*_*gio 46

取消注释该行:extension=php_openssl.dllinphp.ini


tva*_*son 29

您应该只使用主机名,而不是fsockopen调用中的URL.您需要提供uri,减去实际HTTP标头中的主机/端口.正如@Martijin所指出的那样,并且如手册页中所列,您需要在主机名前加上ssl:// for SSL或tls://如果使用传输层安全性.

fsockopen的手册页.看一下例#1.


Mar*_*man 14

同样对于ssl,你需要在主机前面添加ssl://