2012-02-23 6 views
1

私は自分のウェブサイトにphpとgoogleの新しいCSEを使用しています。リクエストのURLは https://www.googleapis.com/customsearch/v1?key=INSERT-YOUR-KEY&cx=017576662512468239146:omuauf_lfve&q=lectureshttpsのget_file_contentが機能しません

です。接続はhttpsで、file_get_content()は失敗しています。どのように私はそれを働かせることができますか?
私はいくつかの外部Webホスティングサーバーでサイトをホストする必要があるので、私はPHPの構成ファイルを変更しない、またはWebホスティングサイトのほとんどにあるデフォルトオプションで動作するソリューションが必要です。

答えて

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'は必要ですか? –

+0

彼がアクセスしているサーバー(googleapis.com)には、スクリプトを実行しているマシンではなく、証明書があります。セキュア接続を初期化するには、サーバー証明書を検証する必要があります。 –

+0

curlを使用することには問題はありませんが、文「_ file_get_contents()を使用してhttpsでWebページを読むことはできません」_まったく偽です。その理由でダウン投票する。 – Wrikken

0

あなたが設定を自分で変更することはできません場合は、ホスティングプロバイダに相談してください。おそらく、PHPコアやスタートアップでopensslが欠けていることと関係があります。

これを他の人にしていて、ホスト(「何らかの外部ホスト」)とのコントロールや接触がない場合は、その状況を説明し、適切な機能が有効になっている適切なホストを見つける手助けをしてください。

関連する問題