curl 사용 예제

1 minute read

function getContentURL($url,$postData=null) { $conn = curl_init($url); $conn_timeout = 3; $exec_timeout = 3; curl_setopt($conn, CURLOPT_HEADER, false); //응답헤더 OFF. ON 할경우 받는 파일에 헤더가 붙음. curl_setopt($conn, CURLOPT_RETURNTRANSFER , true); //응답 내용 가져올지 여부. TRUE면 내용을 리턴. FALSE면 직접 브라우저에 출력 curl_setopt($conn, CURLOPT_USERAGENT,”Mozilla/5.0 mins01”); //User Agent 설정 curl_setopt($conn, CURLOPT_CONNECTTIMEOUT, $conn_timeout); //서버 접속시 timeout 설정 curl_setopt($conn, CURLOPT_CONNECTTIMEOUT, $exec_timeout); //서버 접속시 timeout 설정 //curl_setopt($conn, CURLOPT_TIMEOUT, $timeout); // curl exec 실행시간 timeout 설정 if(isset($postData)){ curl_setopt($conn, CURLOPT_POST, TRUE); //POST 전송 curl_setopt($conn, CURLOPT_POSTFIELDS, $postData); //POST값 세팅 }

$result['body'] = curl_exec($conn);
$result['errormsg'] = curl_error($conn);
$result['errorno'] = curl_errno($conn);
$result['httpcode'] = curl_getinfo($conn,CURLINFO_HTTP_CODE);
return $result; }

쿠키, 기타 해더 등이 있지만… 그냥 알아서 추가하시오/


//$postRow => xxx=yyy&zzz=ttt
//$cookieRaw=> xxx=yyy; zzz=ttt;

function getContentURL($url,$postRaw=null,$cookieRaw=null) { $result = array(); $result[‘header’] = ‘’; $result[‘body’] = ‘’; $result[‘errormsg’] = ‘’; $result[‘errorno’] = ‘’; $result[‘httpcode’] = ‘404’; //return $result; //에러처리 $c_url = $url; //$c_url = ‘http://XXXX/proxy2.php?url=’.urlencode($url); //프록시 사용시

$conn = curl_init($c_url);
$conn_timeout	=	5;
$exec_timeout	 =	5;
curl_setopt($conn, CURLOPT_HEADER, true); //응답헤더 OFF. ON 할경우 받는 파일에 헤더가 붙음.
curl_setopt($conn, CURLOPT_RETURNTRANSFER , true); //응답 내용 가져올지 여부. TRUE면 내용을 리턴. FALSE면 직접 브라우저에 출력 //	curl_setopt($conn, CURLOPT_USERAGENT,"Mozilla/5.0 sdgd"); //User Agent 설정
curl_setopt($conn, CURLOPT_USERAGENT,"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.71 Safari/537.36"); //User Agent 설정
curl_setopt($conn, CURLOPT_CONNECTTIMEOUT, $conn_timeout); //서버 접속시 timeout 설정
curl_setopt($conn, CURLOPT_TIMEOUT, $exec_timeout); //서버 접속시 timeout 설정
//curl_setopt($conn, CURLOPT_TIMEOUT, $timeout); // curl exec 실행시간 timeout 설정
if(isset($postRaw[0])){
	curl_setopt($conn, CURLOPT_POST, TRUE);				//POST 전송
	curl_setopt($conn, CURLOPT_POSTFIELDS, $postRaw);		//POST값 세팅
}
  

if(isset($cookieRaw[0])){
	curl_setopt($conn, CURLOPT_COOKIE, $cookieRaw);		//POST값 세팅
}
  


$data = curl_exec($conn); //	printrr($data);
$split_result = split("\r\n\r\n", $data, 2);
$result['header'] = isset($split_result[0])?$split_result[0]:'';
$result['body'] = isset($split_result[1])?$split_result[1]:'';
$result['errormsg'] = curl_error($conn);
$result['errorno'] = curl_errno($conn);
$result['httpcode'] = curl_getinfo($conn,CURLINFO_HTTP_CODE);
  
  

@curl_close($conn);

// printrr($result); //exit();

return $result; }

#유틸 함수

PHP 5이상용

function posts2raw($posts){ return http_build_query($posts, ‘’, ‘&’);  } function cookies2raw($cookies){ if(count($cookies==0)){ return ‘’; } return http_build_query($cookies, ‘’, ‘; ‘);  }


#SSL문제시 옵션

#ssl 인증관련 동작 안하도록 함. curl_setopt($conn, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($conn, CURLOPT_SSL_VERIFYHOST, FALSE);


🔗original-link

Updated: