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 certificate problem: self signed certificate in certificate chain
=> ssl 인증관련 동작 안하도록 함.
curl_setopt($conn, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($conn, CURLOPT_SSL_VERIFYHOST, FALSE);
# http가 200이 아닐때(에러 시)에도 body 가져오도록
curl_setopt($conn, CURLOPT_FAILONERROR, false);
# html 모든 내용이 깨져서 보일때
curl_setopt($conn,CURLOPT_ENCODING , "");
압축전송 인코딩 값을 ""로