메뉴

PHP에서 POST로 받은값 그대로 다른URL로 POST 전송하기. 2

2012년 8월 8일 - PHP

fsockopen 을 이용하여 POST 전송

<?
        $keys = array_keys($_POST);
        for ($i=0; $i<count($keys); $i++)
        {
                if ($i > 0)
                {
                        $post_param .= "&";
                }
                $post_param .= "{$keys[$i]}={$param[$keys[$i]]}";
        }
        $URL = "http://www.gabia.com/post_finish.php";
 
        $url_info = parse_url($URL);
 
        $fp = fsockopen ($url_info["host"], 80, $errno, $errstr, 30);
        if (!is_resource($fp))
        {
                echo "not connect host : errno=$errno,errstr=$errstr";
                exit;
        }
 
        fputs($fp,"POST $URL HTTP/1.0\n");
        fputs($fp,"Content-type: application/x-www-form-urlencoded\n");
        fputs($fp,"Content-length: " . strlen($post_param) . "\n");
        fputs($fp,"\n");
        fputs($fp,"$post_param\n");
        fputs($fp,"\n");
 
        while(! feof ($fp))
        {
                $file .= fgets ($fp, 1024);
        }
        fclose ($fp);
?>

1편의 form 전송 방식과 2편의 fsockopen 방식은 약간 쓰임새가 다릅니다.

어떠한 경우에 어떠한 방식을 사용할지는 개발자 여러분이 판단하셔야겠지요… ^^

Tags: , , , , ,

댓글감사!