[PHP-users 11632] Re: CURLを用いてHTTPS 通信
D.Yamashita
php-users@php.gr.jp
Thu, 21 Nov 2002 00:49:47 +0900
山下と申します。
> curlを用いてhttps://〜のデータを取得したいと考えています。
> そこで、過去ログの6456などを参考にソースを書いてみました。
> しかし、実行したところ、結果が何も表示されません。
> エラーメッセージも表示されません。
>
> 普通のhttp://〜のファイルだとちゃんとデータを取得することが出来ました。
>
> これはソースの問題でしょうか、それとも環境の問題でしょうか?
> それとも何か別の原因があるのでしょうか?
> 何かアドバイスをいただければ幸いです。
ソースを以下のように変更して、結果をファイルに書き込むようにして
みてはいかがでしょうか?
$ch = curl_init("https://www.secure.com/foo.php");
curl_setopt ($ch, CURLOPT_POSTFIELDS, "var1=aaa&var2=bbb");
curl_setopt ($ch, CURLOPT_POST, 1);
curl_setopt ($ch, CURLOPT_SSLVERSION,3);
curl_setopt ($ch, CURLOPT_TIMEOUT, 120);
$tmpfile = tempnam ('/tmp', 'phptools');
if(!($fp = fopen ($tmpfile, 'w')))
・・・エラー処理・・・
else {
curl_setopt ($ch, CURLOPT_FILE, $fp);
curl_exec ($ch);
curl_close ($ch);
fclose ($fp);
$fp = fopen ($tmpfile, 'r');
$results .= fread ($fp, filesize ($tmpfile));
fclose ($fp);
unlink ($tmpfile);
}
あとは、
curl_setopt ($ch, CURLOPT_USERAGENT, "Mozilla・・・")
という感じでUSERAGENTをちゃんと指定してみるとか。
参考までに、全くもって個人のページですが、
http://www.homedjr.org/index.html
に、HTTPSにポストするPHPプログラムがありますよ。
うちではちゃんとHTTPSへのポストができています。
PHP 4.1.2 (Debian Package)
libcurl 7.9.5 (OpenSSL 0.9.6g)
では。
国国国国国国国国国国国国国国国国国国国国国国国国
大阪大学大学院 工学部研究科 情報システム工学専攻
山 下 大 介
Mail: yamasan@ise.eng.osaka-u.ac.jp
国国国国国国国国国国国国国国国国国国国国国国国国