본문 바로가기
프로그램.코딩

php4 용 소켓통신..(agent,cookie 추가)

by landzz 2014. 4. 17.

네이버 api작업하다 필요해서만든 소켓통신함수...

호스팅 환경이 php4다보니 이것저것 함수에 제한이 좀 있어서 검색한거에 
내가 쓸만하게끔 변경함..

- GET,POST,다른포트, ssl도 그냥 되도록 만듬. http1.0이용
- http1.1에선 추가할헤더나 데이터에 이상한값문제로 보류함.
- http_build_query 가지원안되는 버젼에서는 함수를 생성하도록함.



[사용]

$_url = "http://openapi.naver.com/search";
$_send_data = array(
              'key'=> API_KEY
              ,'target' => "recmd"
              ,'query' => iconv("euc-kr","utf-8",$sch_key)
);

$_return_data = get_socket($_url, $_send_data,"GET");

결과값은 배열로 리턴
return array(
         'status' => 'ok' //실행결과
         ,'header' => $header  //받은헤더
         ,'content' => $content  // 받은데이터
        ,'urls' => $path //접속url
);

#######################################

[2014-04 추가] agent, cookie 부분추가.

사용
- 로그인이 필요한 경우나 cookie가 필요한경우 최초 접속시 생성된 쿠키를 변수에 담아두고 이후 재사용
- AGENT 는 필요한 경우에 셋팅
---------------------------------------------------------------------
1. 로그인시 또는 최초접속

$_url = "로그인url";
$_set = array(
    'return_type'=> 'json'
    ,'userid'=> $_uid
    ,'userpasswd'=> $_pw
);
$_res = get_socket($_url,$_set,'POST','',AGENT);
$_result = $_res['status'];
if( $_result == 'ok'){
    preg_match_all("/Set-Cookie: [^\n]+/", $_res['header'], $_cook);
    $_cookies = array();
    foreach($_cook[0] AS $_V){
        $_tmp = explode(";",$_V);
        $_tmp1 = explode("=",str_replace('Set-Cookie: ','',$_tmp[0]));
        $_cookies[$_tmp1[0]] = $_tmp1[1];
    }
}
-------------------------------------------------------------------------
2. 이후 계속 쿠키를 재사용 
$_url = "작업url";
$_set = array(
    'return_type'=> 'json'
);
$_res = get_socket($_url,$_set,'GET','',AGENT,$_cookies);
$_result = $_res['status'];
if( $_result == 'ok'){
    blah blah~~~
}else{
    blah blah~~~
}



첨부파일있음 (j2h crontab auto module , 암호는 맨날쓰던 n*****25**)





'프로그램.코딩' 카테고리의 다른 글

해외결제 A.u.t.h.o.r.i.z.e.n.e.t. 모듈  (0) 2015.01.06
php 정규식 이것저것  (0) 2015.01.06
ASP 용 GCM 발송  (1) 2014.01.17
ASP용 함수정리  (0) 2014.01.17
이미지 리사이징 재귀함수  (0) 2014.01.17

댓글