試試這個:
<?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傳輸不可用的錯誤消息」,看Socket transport "ssl" in PHP not enabled
如果您的主機是外部的,並且可能是免費的虛擬主機服務,那麼您運氣不佳。最好的選擇是找出哪些虛擬主機啓用了SSL傳輸 - 否則使用HTTPS協議將無法遵守。
您最後的'out'是嘗試動態地將擴展加載到PHP語言中。您將需要與主機上的PHP版本匹配的excact擴展名(dll/so),其格式與
- (請參閱phpinfo)匹配。 (例如,參見
passthru("cat /proc/cpuinfo");
)的CPU架構(例如,參見passthru("cat /proc/cpuinfo");
)。 amd64,i386 ..
- OS'佈局',.dll用於Windows主機(IIS等),而.so用於UNIX。
要使用的功能是dl
aka動態鏈接來加載庫。對於Windows主機,則需要php_openssl.dll
和php_sockets.dll
- ,進而爲UNIX,哎呀 - 你將需要重新編譯PHP核心..
快樂黑客:)
php-man-pages
有很多免費託管出那裏;爲什麼不找到一個呢? – 2012-07-21 15:31:08
聽起來像您可能需要找到另一個允許CURL或'file_get_contents()'訪問遠程服務器的主機。 (也許建議遠程服務器所有者更新他們的SSL證書。) – 2012-07-21 15:39:51
你可以試試'wget https:// other-server.com' ...但是這聽起來像這個特定的主機不希望你出站連接。找到一個允許它。 – phatfingers 2012-07-21 15:59:47