메뉴 건너뛰기

프로그램언어

조회 수 3502 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

PHP GET,POST 요청시 응답결과를 소켓을 이용하여 PHP변수(문자열)로 받기

 

보통의 URL요청(브라우저 주소창에 홈페이지 주소 입력)은 요청주소 외에 전송데이터가 있든 없든 GET전송 요청이다.

POST전송은 <form>이 존재해야 하며 method를 post로 명시해야 한다.

 

이러한 <form>이 포함된 요청페이지를 서버에서 처리해야 하거나

요청 후 응답페이지를 브라우저로 보내기전에 가공해야할 필요가 있을때 fsockopen()을 이용한 웹접속을 이용하면 된다.


//GET 전송

function http_get($host, $path, $data, $cookie) {

    $http_response = "";

 

    $fp = fsockopen($host, 80);

 

    fputs($fp, "GET ".$path." HTTP/1.1\r\n");

    fputs($fp, "Host: ".$host."\r\n");

    fputs($fp, "User-Agent: ".$_SERVER["HTTP_USER_AGENT"]."\r\n");

    fputs($fp, "Referer: http://".$host.$path."\r\n");

    fputs($fp, "Cookie: ".$cookie."\r\n");

    fputs($fp, "Content-Type: application/x-www-form-urlencoded\r\n");

    fputs($fp, "Content-Length: ".strlen($data)."\r\n");

    fputs($fp, "Connection: close\r\n\r\n");

    fputs($fp, $data);

 

    while (!feof($fp)) {

        $http_response .= fgets($fp, 128);

    }

 

    fclose($fp);

 

    return $http_response;

}

 

$html = http_get("blog.naver.com", "/csaiur/220210546540", "", "");

echo "<xmp>".$html."</xmp>";



 

//POST 전송

function http_post($host, $path, $data, $cookie) {

    $http_response = "";

 

    $fp = fsockopen($host, 80);

 

    fputs($fp, "POST ".$path." HTTP/1.1\r\n");

    fputs($fp, "Host: ".$host."\r\n");

    fputs($fp, "User-Agent: ".$_SERVER["HTTP_USER_AGENT"]."\r\n");

    fputs($fp, "Referer: http://".$host.$path."\r\n");

    fputs($fp, "Cookie: ".$cookie."\r\n");

    fputs($fp, "Content-Type: application/x-www-form-urlencoded\r\n");

    fputs($fp, "Content-Length: ".strlen($data)."\r\n");

    fputs($fp, "Connection: close\r\n\r\n");

    fputs($fp, $data);

 

    while (!feof($fp)) {

        $http_response .= fgets($fp, 128);

    }

 

    fclose($fp);

 

    return $http_response;

}

 

$html = http_post("blog.naver.com", "/PostList.nhn", "blogId=csaiur&from=postList&categoryNo=12", "");

echo "<xmp>".$html."</xmp>";

 

 

//POST 전송 SSL

function https_post($host, $path, $data, $cookie) {

    $http_response = "";

    $errno = array();

    $errstr = array();

    $timeout = 30;

 

    $fp = fsockopen("ssl://".$host, 443, $errno, $errstr, $timeout);

 

    fputs($fp, "POST ".$path." HTTP/1.1\r\n");

    fputs($fp, "Host: ".$host."\r\n");

    fputs($fp, "User-Agent: ".$_SERVER["HTTP_USER_AGENT"]."\r\n");

    fputs($fp, "Referer: http://".$host.$path."\r\n");

    fputs($fp, "Cookie: ".$cookie."\r\n");

    fputs($fp, "Content-Type: application/x-www-form-urlencoded\r\n");

    fputs($fp, "Content-Length: ".strlen($data)."\r\n");

    fputs($fp, "Connection: close\r\n\r\n");

    fputs($fp, $data);

 

    while (!feof($fp)) {

        $http_response .= fgets($fp, 128);

    }

 

    fclose($fp);

 

    return $http_response;

}

전송하는 데이터가 없고 쿠키를 유지할 필요가 없거나 URL의 Response를 단순히 문자열로 받고자 할경우에는 fopen()을 이용해도 된다.

//요청URL의 결과를 가져와 문자열로 리턴

function get_text($url) {

    $text = "";

 

    if ($fp = @fopen($url, "r")) {

        while (!feof($fp)) {

            $s = fread($fp, 1);

            $text .= $s;

        }

        fclose($fp);

    }

 

    return $text;

}

 

$html = get_text("http://blog.naver.com/csaiur/220210546540");

echo "<xmp>".$html."</xmp>";


  1. PHP 속도 테스트 20 가지

    Date2017.03.06 Views18306
    Read More
  2. PHP 소켓을 이용하여 URL의 응답결과를 문자열로 받기

    Date2018.10.27 Views3502
    Read More
  3. PHP 소스코드 인코딩(암호화)하기

    Date2018.07.19 Views6645
    Read More
  4. PHP 소스 : 이미지 리사이즈, 섬네일

    Date2014.03.26 Views20706
    Read More
  5. PHP 세션에서 시작, 변수등록, 변수삭제, 부수기

    Date2014.03.26 Views19490
    Read More
  6. php 세션 유지시간 늘리기

    Date2017.03.07 Views26323
    Read More
  7. PHP 삼항연산자 ?

    Date2015.04.14 Views22947
    Read More
  8. PHP 브라우저 알아내기

    Date2023.01.12 Views253
    Read More
  9. PHP 변수전달 GET, POST

    Date2015.04.14 Views26578
    Read More
  10. PHP 버전이 낮아 imagerotate() 함수가 없을때 대신 사용하는 함수

    Date2019.12.31 Views644
    Read More
  11. PHP 버전 숨기기 ( php version hide )

    Date2024.02.07 Views71
    Read More
  12. PHP 문자열에서 검색어를 기준으로 앞뒤로 일정 길이만큼 자르기

    Date2018.10.27 Views3539
    Read More
  13. php 문자열관련 함수

    Date2017.03.06 Views15580
    Read More
  14. PHP 만년달력 소스

    Date2017.03.06 Views17063
    Read More
  15. PHP 로그인후 현재 페이지로 돌아오기 처리

    Date2014.04.12 Views22664
    Read More
  16. PHP 랜덤확률 구하기

    Date2018.10.27 Views4763
    Read More
  17. PHP 랜덤 문자열 생성

    Date2018.10.27 Views4121
    Read More
  18. PHP 디렉토리안에 파일 리스트 가져오기

    Date2023.01.12 Views233
    Read More
  19. php 두날짜 사이의 모든날짜 배열 만들기

    Date2023.01.12 Views178
    Read More
  20. PHP 도메인 이름이나 웹문서 주소 알아내기

    Date2017.03.06 Views17589
    Read More
Board Pagination Prev 1 ... 7 8 9 10 11 12 13 14 15 16 17 Next
/ 17

하단 정보를 입력할 수 있습니다

© k2s0o1d4e0s2i1g5n. All Rights Reserved