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の環境で行ったら、取得できました。。
対象が「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の環境で行ったら、取得できました。。