php, mysql

외부문서 불러오기 curl

날씨좋군 2017. 4. 15. 21:17

외부문서를 불러올때 fopen, fsoketopen으로 불러오기가 수월치 않을때 curl을 이용해보세요.

해당서버에 curl이 설치되었을경우 이용가능합니다.


설치된경우 php.ini 에서
;extension=php_curl.dll
위와 같이 주석이 되어있다면 제거하세요. ";" 제거
php.ini 저장후 서버 재시동합니다.

 

# 예제소스
<?
$page_url = "http://www.yahoo.com"; //불러올페이지
$proxy_ip = "111.222.333.444:8080"; //프록시이용시 IP:PORT

function curl_page($page_url,$proxy_ip){
 $ch = curl_init();

 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, TRUE);
 curl_setopt($ch, CURLOPT_TIMEOUT, 10);
 curl_setopt($ch, CURLOPT_HEADER, 0);
 curl_setopt($ch, CURLOPT_POST, true);
 curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
 curl_setopt($ch, CURLOPT_URL, $page_url);
 curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
 curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);

 if ($proxy_ip) { //프록시사용시
  curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
  curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, TRUE);
  curl_setopt($ch, CURLOPT_PROXY, $proxy_ip);
 }

 $result = curl_exec($ch);
 curl_close($ch);

 return $result;
}

 

//출력
echo curl_page($page_url,$proxy_ip);
?>