>php教程 >PHP开发 >PHP의 cURL 라이브러리 기능 소개: 웹 페이지 크롤링, POST 데이터 및 기타

PHP의 cURL 라이브러리 기능 소개: 웹 페이지 크롤링, POST 데이터 및 기타

高洛峰
高洛峰원래의
2016-12-23 16:22:421101검색

링크에서 데이터를 가져오거나, XML 파일을 가져와서 데이터베이스로 가져오거나, 단순히 웹페이지의 콘텐츠를 가져오려는 경우에도 cURL은 강력한 PHP 라이브러리입니다. 이 문서에서는 주로 이 PHP 라이브러리를 사용하는 방법을 설명합니다.
cURL 설정 활성화
먼저, PHP에 이 라이브러리가 활성화되어 있는지 확인해야 합니다. 이 정보는 php_info() 함수를 사용하여 얻을 수 있습니다.

<?php 
phpinfo(); 
?>

웹 페이지에 다음 출력이 표시되면 cURL 라이브러리가 활성화되었음을 의미합니다.
이 메시지가 표시되면 PHP를 설정하고 이 라이브러리를 활성화해야 합니다. Windows 플랫폼을 사용하는 경우 매우 간단합니다. php.ini 파일의 설정을 변경하고 php_curl.dll을 찾아 이전 세미콜론 주석을 취소하면 됩니다. 아래와 같이
//아래 주석 취소
extension=php_curl.dll

Linux를 사용하는 경우 편집 시 PHP를 다시 컴파일해야 합니다. 컴파일 매개변수 - 구성 명령에 "-with-curl" 매개변수를 추가합니다.
작은 예
모든 것이 준비되면 다음은 작은 루틴입니다.

<?php 
// 初始化一个 cURL 对象 
$curl = curl_init(); 
// 设置你需要抓取的URL 
curl_setopt($curl, CURLOPT_URL, &#39;http://jb51.net&#39;); 
// 设置header 
curl_setopt($curl, CURLOPT_HEADER, 1); 
// 设置cURL 参数,要求结果保存到字符串中还是输出到屏幕上。 
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); 
// 运行cURL,请求网页 
$data = curl_exec($curl); 
// 关闭URL请求 
curl_close($curl); 
// 显示获得的数据 
var_dump($data);

데이터 POST 방법
위는 웹 페이지를 크롤링하는 코드이고 다음은 다음과 같습니다. 특정 웹페이지 POST 데이터로 보내는 것입니다. 두 개의 양식 필드(하나는 전화번호, 다른 하나는 문자 메시지 내용)를 허용할 수 있는 양식 처리 URL http://www.example.com/sendSMS.php가 있다고 가정합니다.

<?php 
$phoneNumber = &#39;13912345678&#39;; 
$message = &#39;This message was generated by curl and php&#39;; 
$curlPost = &#39;pNUMBER=&#39; . urlencode($phoneNumber) . &#39;&MESSAGE=&#39; . urlencode($message) . &#39;&SUBMIT=Send&#39;; 
$ch = curl_init();chain link fencing 
curl_setopt($ch, CURLOPT_URL, &#39;http://www.example.com/sendSMS.php&#39;); 
curl_setopt($ch, CURLOPT_HEADER, 1); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_POST, 1); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $curlPost); 
$data = curl_exec(); 
curl_close($ch); 
?>

위 프로그램에서 HTTP 프로토콜의 POST 메소드를 GET 메소드 대신 CURLOPT_POST를 사용하여 설정한 다음, CURLOPT_POSTFIELDS로 POST 데이터를 설정하는 것을 볼 수 있습니다.
 프록시 서버에 대하여
 다음은 프록시 서버 사용 방법의 예입니다. 강조표시된 코드를 주목해 주세요. 코드는 매우 간단하므로 더 이상 설명할 필요가 없습니다.

<?php 
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, &#39;http://www.example.com&#39;); 
curl_setopt($ch, CURLOPT_HEADER, 1); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, 1); 
curl_setopt($ch, CURLOPT_PROXY, &#39;fakeproxy.com:1080&#39;); 
curl_setopt($ch, CURLOPT_PROXYUSERPWD, &#39;user:password&#39;); 
$data = curl_exec(); 
curl_close($ch); 
?>

SSL 및 쿠키 정보
HTTPS 프로토콜인 SSL 정보 가스 발생기의 경우 CURLOPT_URL 연결의 http://를 https://로 변경하기만 하면 됩니다. 물론 사이트 확인을 위해 설정할 수 있는 CURLOPT_SSL_VERIFYHOST라는 매개변수도 있습니다.
쿠키와 관련하여 다음 세 가지 매개변수를 알아야 합니다.
CURLOPT_COOKIE, 대면 세션에서 쿠키 설정
CURLOPT_COOKIEJAR, 세션 종료 시 쿠키 저장
CURLOPT_COOKIEFILE, 쿠키 파일.
HTTP 서버 인증
마지막으로 HTTP 서버 인증에 대해 살펴보겠습니다.

<?php 
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, &#39;http://www.example.com&#39;); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); 
curl_setopt(CURLOPT_USERPWD, &#39;[username]:[password]&#39;) 
$data = curl_exec(); 
curl_close($ch); 
?>

자세한 내용은 해당 cURL 매뉴얼을 참고하세요.

PHP의 cURL 라이브러리 기능에 대한 자세한 소개를 보려면 웹페이지 크롤링, POST 데이터 및 기타 관련 기사를 다루는 PHP 중국어 웹사이트를 주목하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.