- fsockopen 関数を使う
- sockets ライブラリを使う
- stream 関数を使う(※PHP5)
- HTTP拡張モジュールを使う
- cURLを使う
- Zend_Http_Clientを使う
- PEAR::HTTP_Clientを使う
ただし参照元のコードのままでは、POST先からのレスポンスをPHPの出力として(200 OK で)クライアントに渡すため、POST先でエラーだったりリダイレクトされていたりの場合に困ったことになる。そこで、
/* ヘッダ部分とボディ部分を分離 */
$DATA = split("\\r\\n\\r\\n", $response, 2);
の後ろに、以下のコードを挿入。
/* ヘッダを出力 */
/* これより前に出力が無いよう(空白・空行など)注意! */
$headers = explode("\\n", $DATA[0]);
foreach( $headers as $header ){
header($header);
}
これにより、POST先から受け取ったレスポンスをそのままクライアントに渡すことができるようになる。
あとはエラー時の対応を付け加えるとなお良い。
リファレンス
- ref. とても簡単にPHPからPOSTリクエストを送信する方法 - Programming Magic
Emoji Emoji