PHPのバージョンは5.2.9です。(環境:Windows + Apache)
get_headers関数に「https」を渡したらエラーになりました:
$ary_headers = get_headers("https://example.com", 0);
print_r($ary_headers);
でアクセスをしにいくと、下記のエラーが出ました:
Warning: get_headers() [function.get-headers]: This function may only be used against URLs. in XXXXXXXXXXXXXXX
→ 解決策:
実は、php.iniの中のphp_openssl.dllがコメントアウトになっているだけです。
php_openssl.dllを有効にしてApacheを再起動すれば、エラーが消えます。
;extension=php_openssl.dll
→
extension=php_openssl.dll
※phpinfo()で確認できます:
(1)php_openssl.dllが無効になっている場合、
【Registered PHP Streams】php, file, data, http, ftp, compress.zlib, zip
【Registered Stream Socket Transports】tcp, udp
(2)php_openssl.dllが有効になっている場合、
【Registered PHP Streams】php, file, data, http, ftp, compress.zlib, https, ftps, zip
【Registered Stream Socket Transports】tcp, udp, ssl, sslv3, sslv2, tls
みたいな感じです。