2011年9月13日火曜日

fsockopenでhttps://へ接続したいとき

どうも、久しぶりです。俺@残業中です。

今日はphpのfsockeopen()の使い方注意をメモメモ。
httpsな外部サイトへfsockopen()したいときは

fsockopen('www.example.com', 443, $errono, $errstr, $timeout);
では接続できません。
サーバ側から

<!DOCTYPE HTML PUBLIC “-//IETF//DTD HTML 2.0//EN”>

<html><head><title>400 Bad Request</title></head><body><h1>Bad Request</h1><p>Your browser sent a request that this server could not understand.<br />
Reason: You’re speaking plain HTTP to an SSL-enabled server port.<br />
Instead use the HTTPS scheme to access this URL, please.<br />
とかで帰ってきます。
fsockopen()でhttps://なサイトへ接続するときは

fsockopen('ssl://www.example.com', 443, $errno, $errstr, $timeout);
としましょう。

あ、ちなみにphpはopensslが利用可能な環境でインストールされている必要がありますよ。

 ./configure --with-openssl


以上でぇぇえっぇす。