링크에서 데이터를 가져오거나, 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, 'http://jb51.net'); // 设置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 = '13912345678'; $message = 'This message was generated by curl and php'; $curlPost = 'pNUMBER=' . urlencode($phoneNumber) . '&MESSAGE=' . urlencode($message) . '&SUBMIT=Send'; $ch = curl_init();chain link fencing curl_setopt($ch, CURLOPT_URL, 'http://www.example.com/sendSMS.php'); 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, 'http://www.example.com'); curl_setopt($ch, CURLOPT_HEADER, 1); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, 1); curl_setopt($ch, CURLOPT_PROXY, 'fakeproxy.com:1080'); curl_setopt($ch, CURLOPT_PROXYUSERPWD, 'user:password'); $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, 'http://www.example.com'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); curl_setopt(CURLOPT_USERPWD, '[username]:[password]') $data = curl_exec(); curl_close($ch); ?>
자세한 내용은 해당 cURL 매뉴얼을 참고하세요.
PHP의 cURL 라이브러리 기능에 대한 자세한 소개를 보려면 웹페이지 크롤링, POST 데이터 및 기타 관련 기사를 다루는 PHP 중국어 웹사이트를 주목하세요!