tetsunosukeのnotebook

tetsunosukeのメモです

[PHP] cURLを使わずにPOSTリクエストを出す(PEAR::HTTP_Requestを使って)

PHPプロで「cURLを使わずに、PHPでPOSTリクエストを送信する」が紹介されていたので、PEARのHTTP_Requestを使って書いてみた。

こんな感じ?

<?php
require_once "HTTP/Request.php";

function do_post_request($url, $data, $optional_headers = null) {
    $req =& new HTTP_Request($url);
    $req->setMethod(HTTP_REQUEST_METHOD_POST);
    if(is_array($data)){
        foreach($data as $key => $val){
            $req->addPostData($key, $val);
        }
    }

    if($optional_headers !== null){
        if(is_array($optional_headers)){
            foreach($optional_headers as $name => $value){
                $req->addHeader($name, $value);
            }
        }
    }
    $res = $req->sendRequest();
    if(PEAR::isError($res)){
        return $res->getMessage();
    }
    return $req->getResponseBody();
}

echo do_post_request("http://www.google.co.jp/search",
                     array("q" => "ito.tetsunosuke")
);
?>

あっ!!The server is unable to process your request.とか怒られてる!!(笑)