Php fsockopen()无法从某些站点获取远程内容

Php fsockopen()无法从某些站点获取远程内容,php,ssl,Php,Ssl,我正在尝试使用fsockopen()获取远程内容。在大多数SSL站点上,脚本可以正常工作。但是,在某些站点上,脚本失败。这是我的剧本 <?php $response = null; $host = ""; $handle = fsockopen("ssl://$host", 443, $errno, $errstr, 90); $header = "GET / HTTP/1.1\r\n"; $header .= "Host: $host\r\n"; $header .= "Accept-

我正在尝试使用fsockopen()获取远程内容。在大多数SSL站点上,脚本可以正常工作。但是,在某些站点上,脚本失败。这是我的剧本

<?php
$response = null;
$host = "";
$handle = fsockopen("ssl://$host", 443, $errno, $errstr, 90);

$header = "GET / HTTP/1.1\r\n";
$header .= "Host: $host\r\n";
$header .= "Accept-Language: en-US,en;q=0.5\r\n";
$header .= "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\n";
$header .= "User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:16.0) Gecko/20100101 Firefox/16.0\r\n";
$header .= "Referer: https://$host\r\n";
$header .= "Connection: Close\r\n\r\n";

fwrite($handle, $header);

while (!feof($handle))
{
    $response .= fgets($handle, 32768);
}

fclose($handle);

echo $response;

启用了OpenSSL扩展”,你是说php.ini中的“php_OpenSSL.dll”吗?如果没有,就必须启用。刚刚在adobe的服务器上测试了你的代码。对我有用。只收到301代码,但这是对的,因为它们重定向到特定于语言的索引。是的,我在“php.ini”中注释掉了“php_OpenSSL.dll”一行“文件。只要取消注释,如果没有其他问题,它就会工作。”。