2012-02-23 40 views
1

我在我的网站上使用php和google的新CSE。请求的URL类似于 https://www.googleapis.com/customsearch/v1?key=INSERT-YOUR-KEY&cx=017576662512468239146:omuauf_lfve&q=lecturesget_file_content不适用于https

连接是https并且file_get_content()失败。我如何得到它的工作?
由于我需要在一些外部网络托管服务器上托管网站,我需要的解决方案不会改变php配置文件或使用大多数网站托管网站上的默认选项。

回答

3

您可以使用curl

## HTTPS url that you are targeting. 
$url = "https://www.googleapis.com/customsearch/v1?key=INSERT-YOUR-KEY&cx=017576662512468239146:omuauf_lfve&q=lectures"; 
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL,$url); 
curl_setopt($ch, CURLOPT_USERAGENT, 'Opera/9.23 (Windows NT 5.1; U; en)'); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); 

## Below two option will enable the HTTPS option. 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2); 
$result = curl_exec($ch); 
echo $result; 
+0

'CURLOPT_SSL_VERIFYPEER','CURLOPT_SSL_VERIFYHOST'是必要的,如果我没有任何证书? – 2012-02-23 23:00:19

+0

他正在访问的服务器(googleapis.com)有一个证书,而不是他的机器运行脚本。服务器证书需要验证才能初始化安全连接。 – 2012-02-23 23:03:05

+0

尽管我对使用curl的建议没有任何问题,但是声明_“您无法通过https使用file_get_contents()。”读取网页。“完全是完全错误的。因此而下调。 – Wrikken 2012-02-23 23:12:21

0

如果你自己不能修改配置,聊到了托管服务提供商。这很可能与php核心或启动时缺乏openssl有关。

如果您正在为其他人执行此操作并且您无法控制或与主机(“某个外部主机”)联系,请说明情况并帮助他们找到启用了相应功能的适当主机。

相关问题