[php] curl 라이브러리를 이용한 소켓통신 함수 프로그래밍
2017.10.24 14:01 Edit
전에 올렸던 [이니시스/PG] Mobile 모듈 붙이기
포스팅에 request_curl 함수에 대해서 궁금해 하신분이 계셔서 포스팅한다.
request_curl 함수는 직접만든 사용자정의 함수이며
php 상에 curl 라이브러리가 설치되어야 사용가능한 기능이다.
간단하게 소켓통신을 간편하게 해주는 도구라고 생각하면 된다.
1. curl 이 설치 되어있는지 확인하기.
php를 실행할수있는 서버에 하나의 가상파일을 만들어서 해당 코드 입력.
<?php phpinfo(); ?>
해당코드 입력후 파일을 실행해서 결과값 확인.
curl이 설치되어있는지 확인.
설치가 되어있지 않다면 서버담당자에게 요청하거나 직접설치한다. (설치내용은 길어서 다음에 포스팅)
2. 설치가 되었있다면 curl을 사용할 함수를 제작.
/** * @param $url 값을 던질 url * @param int $is_post post 통신이면 1, get 이면0 * @param array $data 전달할 값 * @param null $custom_header header를 같이 전송할경우 * @return mixed */ function request_curl($url, $is_post=0, $data=array(), $custom_header=null) { $ch = curl_init(); curl_setopt ($ch, CURLOPT_URL,$url); curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt ($ch, CURLOPT_SSLVERSION,1); curl_setopt ($ch, CURLOPT_POST, $is_post); if($is_post) { curl_setopt ($ch, CURLOPT_POSTFIELDS, $data); } curl_setopt ($ch, CURLOPT_TIMEOUT, 300); curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 1); //curl_setopt ($ch, CURLOPT_HEADER, true); if($custom_header) { curl_setopt($ch, CURLOPT_HTTPHEADER, $custom_header); } $result[0] = curl_exec ($ch); $result[1] = curl_errno($ch); $result[2] = curl_error($ch); $result[3] = curl_getinfo($ch, CURLINFO_HTTP_CODE); curl_close ($ch); return $result; }
3. 사용법
$params = array( 'P_TID' => '값', 'P_MID' => '값' ); $strArrResult = request_curl('값을 던질 url', 1, $params);