>백엔드 개발 >PHP 튜토리얼 >PHP 컬의 몇 가지 예

PHP 컬의 몇 가지 예

WBOY
WBOY원래의
2016-07-30 13:29:46836검색
[네트워크 프로그래밍] PHP 컬의 여러 예

PHP의 cURL 라이브러리를 사용하면 웹 페이지를 쉽고 효과적으로 캡처할 수 있습니다. 스크립트를 실행하고 크롤링한 웹페이지를 분석하기만 하면 프로그래밍 방식으로 원하는 데이터를 얻을 수 있습니다. 링크에서 부분 데이터를 검색하거나, XML 파일을 가져와서 데이터베이스로 가져오거나, 단순히 웹 페이지의 콘텐츠를 검색하려는 경우에도 cURL은 강력한 PHP 라이브러리입니다.

PHP의 CURL 함수 라이브러리(클라이언트 URL 라이브러리 함수)

curl_close — 컬 세션 닫기
curl_copy_handle — 컬 연결 리소스의 모든 내용과 매개변수 복사
curl_errno — 반환 현재 세션의 오류 정보가 포함된 숫자
curl_error — 현재 세션의 오류 정보가 포함된 문자열을 반환합니다
curl_exec — 컬 세션 실행
curl_getinfo — 컬 연결 리소스 핸들에 대한 정보 가져오기
curl_init — 컬 세션 초기화
curl_multi_add_handle — 컬 배치 세션에 별도의 컬 핸들 리소스 추가
curl_multi_close — 배치 핸들 리소스 닫기
curl_multi_exec — 컬 배치 핸들 구문 분석
curl_multi_getcontent — 텍스트 반환 획득된 출력 스트림
curl_multi_info_read — 현재 구문 분석된 컬의 관련 전송 정보를 가져옵니다.
curl_multi_init — 컬 배치 핸들 리소스를 초기화합니다.
curl_multi_remove_handle — 컬 배치 핸들 리소스에서 핸들을 제거합니다. 리소스
curl_multi_select — "선택"할 수 있는 cURL 확장과 관련된 모든 소켓을 가져옵니다.
curl_setopt_array — 배열 형식으로 컬에 대한 세션 매개변수 설정
curl_setopt — 컬에 대한 세션 매개변수 설정
curl_version — 컬 관련 버전 정보 얻기

curl_init() 함수의 기능은 컬 세션을 초기화하는 것입니다. 컬_init() 함수의 유일한 매개변수는 선택사항이며 URL 주소를 나타냅니다.
curl_exec() 함수는 컬 세션을 실행하는 데 사용됩니다. 유일한 매개변수는 컬_init() 함수가 반환하는 핸들입니다.
curl_close() 함수는 컬 세션을 닫는 데 사용됩니다. 유일한 매개변수는 컬_init() 함수가 반환하는 핸들입니다.

예제 1: 기본 예

기본 예﹤?php
// cURL 객체 초기화
$curl = cur_init ();
//크롤링에 필요한 URL 설정
curl_setopt($curl, CURLOPT_URL, 'http://www.cmx8.cn');
//헤더 설정
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);

?>

예 2: POST 데이터

sendSMS.php는 두 개의 양식 필드(하나는 전화번호이고 다른 하나는 문자 메시지 내용)를 허용할 수 있습니다.

POST 데이터 ﹤?php
$phoneNumber ='13812345678';
$message ='ThisMessagewasgenerated by curlandphp';
$curlPost = 'pNUMBER =' .urlencode($phoneNumber) .'&MESSAGE=' .urlencode($message) .'&SUBMIT=보내기';'http://www.lxvoip.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);
?﹥

예 3: 프록시 서버 사용

프록시 서버 사용
﹤?php $ch = 컬_init();curl_setopt($ch, CURLOPT_URL ,'http://www.cmx8.cn');
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, 1);
curl_setopt($ch, CURLOPT_PROXY, 'proxy.lxvoip.com:1080' );
curl_setopt($ch, CURLOPT_PROXYUSERPWD, 'user:password');
$data =curl_exec() ;
curl_close($ch);
?﹥

예시 4: 시뮬레이션된 로그인

DZ7.0에 적합한 시뮬레이션된 로그인 discuz 프로그램 컬링, 사용자 이름을 로 변경 사용자 이름과 userpass를 비밀번호로 변경하세요.

Curl 시뮬레이션 로그인 discuz 프로그램 /**
* 컬 시뮬레이션 로그인 discuz 프로그램
* 인증코드가 활성화된 포럼 로그인 기능은 아직 구현되지 않았습니다
*/

!extension_loaded('curl') && die('curl 확장 프로그램은 다음과 같습니다. 로드되지 않았습니다.');

$discuz_url = 'http://www.lxvoip.com';//포럼 주소
$login_url = $discuz_url .'/logging.php?action=login' ;//로그인 페이지 주소
$get_url = $discuz_url .'/my.php?item=threads'; //내 게시물

$post_fields = array()//다음 두 항목은 수정할 필요가 없습니다.
$post_fields['loginfield'] = 'username';
$post_fields['loginsubmit'] = 'true'; post_fields['username'] = 'lxvoip'; 🎜>$post_fields['password'] = '88888888';
//보안 질문
$post_fields['questionid'] = 0
$ post_fields['answer'] = '';
//@todo 인증 코드                                                                                      curl_init($login_url); _setopt($ch, CURLOPT_HEADER, 0)
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
preg_match('/< ;inputs*type="hidden"s*name="formhash"s*value="(.*?)"s*/>/i', $contents, $ match)
if(!empty( $matches)) {
$formhash = $matches[1];
} else {
die('포럼 해시를 찾을 수 없습니다.')

 
//POST 데이터, COOKIE 가져오기 
$cookie_file = dirname(__FILE__) . '/cookie.txt'; 
//$cookie_file = tempnam('/tmp'); 🎜> Curl_Setopt($ ch, curlopt_header, 0);
Curl_Setopt($ ch, curlopt_returntransfer, 1)
C url_setopt($ ch, curlopt_post, 1); post_fields);
CURL_SETOPT ($ ch, curlopt_cookiejar, $ cookie_file)
Curl_exec ( $ ch) Curl_Close ($ ch)
🎜>//위에서 얻은 COOKIE를 사용합니다. 로그인해야 볼 수 있는 페이지의 내용입니다.
curl_setopt($ch, CURLOPT_HEADER, 0); ch, CURLOPT_RETURNTRANSFER, 0); $ch, CURLOPT_COOKIEFILE, $cookie_file)
$contents = 컬_exec($ch)
?>


위 내용은 내용의 측면을 포함하여 PHP 컬의 여러 가지 예를 소개합니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.


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