尝试这个:
<?php
$fp = fsockopen("ssl://other-server.com", 443, $errno, $errstr);
if(!$fp) die($errno. " : " . $errstr);
$send =
"GET / HTTP/1.0\r\n".
"Host:other-server.com\r\n".
"Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\n".
"\r\n";
fwrite($fp, $send);
while(!feof($fp)) {
echo fread($fp, 512);
}
?>
如果您遇到“ssl 传输不可用错误消息”,请参阅PHP 中的 Socket transport "ssl" not enabled
如果您的主机是外部主机并且可能是免费的虚拟主机服务,那么您的运气就很差了。最好的选择是找出哪些虚拟主机启用了 SSL 传输 - 否则使用 HTTPS 协议根本不符合要求。
您最后的“出局”是尝试将扩展动态加载到 PHP 语言中。您将需要匹配的精确扩展名 (dll/so)
- 主机上的 PHP 版本(参见 phpinfo)。
- 主机的 CPU 架构(unix,见
passthru("cat /proc/cpuinfo");
),例如 amd64,i386..
- 操作系统“布局”,.dll 用于 Windows 主机(IIS 等),.so 用于 UNIX。
使用的功能是dl
加载库的又名动态链接。对于 Windows 主机,您将需要php_openssl.dll
-php_sockets.dll
反过来对于 UNIX,OOops - 您需要重新编译 php 核心。
快乐的黑客:)
php 手册页