2013年10月15日

httpsのurlでfile_get_contents出来ない。。

PHPの関数「file_get_contents」でAPIを利用した情報を取得しようとしましたが、
対象が「https」で始まるurlの場合に、

file_get_contents('https://www.example,co,jp')

failed to open stream: HTTP request failed! HTTP/1.1 406 Not Acceptable

エラーが発生して、取得出来ませんでした。

まずは検索をして見て、

file_get_contentsでhttpsから始まる情報を取得できない

これかなぁという記事があったので、

php,iniのいじって、
allow_url_fopen = On
extension=php_openssl.dll

をやって見たのですが、全然ダメ...(´-ω-`)
そもそもエラー内容が違ったし...


完全に詰まったので、cURLを代用することに(^^;

$ch = curl_init();
curl_setopt_array($ch,
array(
CURLOPT_URL => 'https://www.example,co,jp',
CURLOPT_SSL_VERIFYPEER =>false,
CURLOPT_RETURNTRANSFER =>true,
)
);

$html = curl_exec($ch);
curl_close($ch);

無事取得出来ました(>_<)
SSL通信時サーバー証明書の検証が原因??

ちなみに、file_get_contentsでエラーで環境はPHP/5.3.8なのですが、
php/5.2.17の環境で行ったら、取得できました。。




Posted by wataru78 at 20:02│Comments(0)php
 
<ご注意>
書き込まれた内容は公開され、ブログの持ち主だけが削除できます。
このページの上へ

削除
httpsのurlでfile_get_contents出来ない。。
    コメント(0)