>  기사  >  백엔드 개발  >  PHP 컬을 사용하여 요청을 보내는 방법에 대한 자세한 튜토리얼

PHP 컬을 사용하여 요청을 보내는 방법에 대한 자세한 튜토리얼

angryTom
angryTom원래의
2019-07-31 16:33:139633검색

PHP 컬을 사용하여 요청을 보내는 방법에 대한 자세한 튜토리얼

php에 대해 더 알고 싶다면 다음을 클릭하세요. php tutorial

 cURL URL 구문을 사용하여 브라우저가 데이터를 전송하도록 시뮬레이션할 수 있습니다. 시뮬레이션된 브라우저 따라서 HTTPS 인증, HTTP POST 방법, HTTP PUT 방법, FTP를 포함하여 FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE 및 LDAP 등과 같은 다양한 프로토콜도 지원합니다. 업로드, 키베로스 인증, HTTP 업로드, 프록시 서버, 쿠키, 사용자 이름/비밀번호 인증, 파일 다운로드 재개 가능 업로드, 업로드 파일 재개 가능 업로드, http 프록시 서버 파이프라인, IPv6를 지원하더라도, Scoket5 프록시 서버, http 프록시를 통해 서버는 파일을 다음에 업로드합니다. FTP 서버 등.

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

1. PHP에서 CURL 요청을 설정하는 기본 단계

①: 초기화

 curl_init()curl_init()

②:设置属性

  curl_setopt().有一长串cURL参数可供设置,它们能指定URL请求的各个细节。

③:执行并获取结果

  curl_exec()

④:释放句柄

  curl_close()

②: 속성 설정 curl_setopt( ) 에는 URL 요청의 다양한 세부정보를 지정할 수 있는 설정할 수 있는 cURL 매개변수의 긴 목록이 있습니다.

3: 실행하고 결과 얻기

curl_exec()

4: 핸들 해제

curl_close()

2. 예:

php 컬이 가져오기 요청을 보냅니다:

🎜
//初始化
$curl = curl_init();
//设置抓取的url
curl_setopt($curl, CURLOPT_URL, 'http://www.baidu.com');
//设置头文件的信息作为数据流输出
curl_setopt($curl, CURLOPT_HEADER, 1);
//设置获取的信息以文件流的形式返回,而不是直接输出。
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
//执行命令
$data = curl_exec($curl);
echo curl_getinfo($curl,CURLINFO_HTTP_CODE); //输出请求状态码
//关闭URL请求
curl_close($curl);
//显示获得的数据
print_r($data);
🎜🎜php 컬이 게시물 요청을 보냅니다: 🎜🎜
//初始化
$curl = curl_init();
//设置抓取的url
curl_setopt($curl, CURLOPT_URL, 'http://localhost/test/test.php');
//设置头文件的信息作为数据流输出
curl_setopt($curl, CURLOPT_HEADER, 1);
//设置获取的信息以文件流的形式返回,而不是直接输出。
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
//设置post方式提交
curl_setopt($curl, CURLOPT_POST, 1);
//设置post数据
$post_data = array(
    "title" => "1290800466",
    "content" => "3424243243"
);
//post提交的数据
curl_setopt($curl, CURLOPT_POSTFIELDS, $post_data);
//执行命令
$data = curl_exec($curl);
//关闭URL请求
curl_close($curl);
//显示获得的数据
print_r($data);
🎜🎜test.php:🎜🎜
<?php
$title = $_REQUEST[&#39;title&#39;];
$content = $_REQUEST[&#39;content&#39;];
error_log($title."\n",3,&#39;error.log&#39;);
error_log($content."\n",3,&#39;error.log&#39;);
echo &#39;ok&#39;;
🎜🎜🎜3. 🎜 🎜아래에 포함된 PHP cURL 함수 목록: 🎜
Function Description
curl_close() cURL 세션을 닫습니다.
curl_copy_handle() cURL 핸들과 모든 옵션을 복사합니다.
curl_errno() 마지막 오류 번호를 반환합니다.
curl_error() 현재 세션의 최신 오류를 보호하는 문자열을 반환합니다.
curl_escape() 주어진 문자열을 인코딩하는 URL, 이스케이프된 문자열을 반환합니다.
curl_exec() cURL 세션을 실행합니다.
curl_file_create() CURLFile 객체를 생성합니다.
curl_getinfo() cURL 연결 리소스 핸들에 대한 정보를 가져옵니다.
curl_init() cURL 세션을 초기화합니다.
curl_multi_add_handle() 컬 일괄 세션에 개별 컬 핸들을 추가합니다.
curl_multi_close() cURL 핸들 그룹을 닫습니다.
curl_multi_exec() 현재 cURL 핸들의 하위 연결을 실행합니다.
curl_multi_getcontent() CURLOPT_RETURNTRANSFER가 설정된 경우 얻은 출력의 텍스트 스트림을 반환합니다.
curl_multi_info_read() 현재 구문 분석된 cURL의 관련 전송 정보를 가져옵니다.
curl_multi_init() 새 cURL 배치 핸들을 반환합니다.
curl_multi_remove_handle() curl 배치 핸들 리소스에서 핸들 리소스를 제거합니다.
curl_multi_select() cURL 배치에서 모든 활성 연결을 기다립니다.
curl_multi_setopt() 일괄 cURL 전송 옵션을 설정합니다.
curl_multi_strerror() 오류 코드를 설명하는 문자열 텍스트를 반환합니다.
curl_pause() 연결을 일시 중지했다가 다시 시작하세요.
curl_reset() libcurl 세션 핸들의 모든 옵션을 재설정합니다.
curl_setopt_array() cURL 전송 세션에 대한 옵션을 대량으로 설정합니다.
curl_setopt() cURL 전송 옵션을 설정하세요.
curl_share_close() cURL 공유 핸들을 닫습니다.
curl_share_init() cURL 공유 핸들을 초기화합니다.
curl_share_setopt() 공유 핸들에 대한 cURL 전송 옵션을 설정합니다.
curl_strerror() 오류 코드에 대한 문자열 설명을 반환합니다.
curl_unescape() URL로 인코딩된 문자열을 디코딩합니다.
curl_version() cURL 버전 정보를 가져옵니다.

성공하면 TRUE를 반환하고, 실패하면 FALSE를 반환합니다.

일부 상태 코드

1xx: 요청 수신, 계속 처리

2xx: 작업이 성공적으로 수신, 분석, 승인됨

3xx: 이 요청을 추가로 처리해야 합니다.

4xx: 요청에 잘못된 구문이 포함되어 있습니다. 완료할 수 없습니다.

5xx: 서버가 완전히 유효한 요청을 실행하지 못했습니다.

100 - 클라이언트가 계속 요청을 해야 합니다.

101 - 클라이언트가 요청에 따라 HTTP 프로토콜 버전을 변환하도록 서버에 요청했습니다.

200 - 거래가 성공했습니다

201 - 새 파일의 URL을 묻는 메시지

202——승인 및 처리되었지만 처리가 완료되지 않았습니다.

203——반품 정보가 불확실하거나 불완전합니다

204—— 요청을 받았지만 반환 정보가 비어 있습니다.

205—— 서버가 요청을 완료했으며 사용자 에이전트는 현재 탐색된 파일을 재설정해야 합니다.

206 - 서버가 사용자의 GET 요청 중 일부를 완료했습니다.

300 - 요청한 리소스는 여러 위치에서 사용할 수 있습니다.

301 - 요청 데이터 삭제

302——요청 데이터가 다른 주소에서 발견되었습니다.

303——고객이 다른 URL에 액세스하거나 액세스 방법을 사용하는 것이 좋습니다

304— —클라이언트가 GET을 수행했지만 파일이 변경되지 않았습니다.

305 ——요청한 리소스는 서버가 지정한 주소에서 얻어야 합니다.

306 - 이전 버전의 HTTP에서 사용된 코드이며 현재에서는 더 이상 사용되지 않습니다. 버전

307 - 요청한 리소스가 일시적으로 삭제되었다는 선언

400 - 구문 오류 등의 오류 요청

401 - 요청 인증 실패

402 - 유효한 ChargeTo 헤더 응답 유지

403 - 요청이 허용되지 않음

404 - 파일, 쿼리 또는 URL을 찾을 수 없습니다.

405 - 요청 라인 필드에 정의된 사용자 방법이 허용되지 않습니다.

406 - 사용자가 보낸 Accept에 따라 요청한 리소스에 액세스할 수 없습니다.

407 - 401과 유사합니다. 사용자는 먼저 프록시 서버에서 승인을 받아야 합니다.

408 - 클라이언트가 사용자가 지정한 시간을 기다리지 않았습니다.

409 이내에 요청을 완료하세요. - 현재 리소스 상태에 대해 요청을 완료할 수 없습니다.

410 - 이 리소스 서버에 더 이상 존재하지 않으며 더 이상 참조 주소가 없습니다.

411 - 서버가 사용자 정의 Content-Length 속성 요청을 거부합니다.

412 - 현재 요청에서 하나 이상의 요청 헤더 필드가 올바르지 않습니다.

413 - 요청한 리소스가 서버에서 허용하는 크기보다 큽니다.

414 - 요청한 리소스 URL이 서버에서 허용하는 길이보다 깁니다.

415 - 요청한 리소스 요청 항목 형식이 지원되지 않습니다.

416 - 요청에 다음이 포함되어 있습니다. 범위 요청 헤더 필드, 현재 요청 자원 범위 내에 범위 표시 값이 없고 요청

에 If-Range 요청 헤더 필드가 포함되어 있지 않습니다.

417 - 서버가 요청을 충족하지 않습니다. 헤더 필드가 필요한 경우 하위 서버가 요청을 충족하지 못할 수 있습니다.

500 - 서버에서 내부 오류가 발생했습니다.

502 - 시스템 과부하를 방지하기 위해 일시적으로 서버를 사용할 수 없습니다.

503 - 서버 과부하 또는 유지 관리 중단

504 - 게이트웨이 과부하, 서버가 사용자에게 응답하기 위해 다른 게이트웨이 또는 서비스를 사용하며 대기 시간 설정 값은 다음과 같습니다. 이상

505 - 서버 요청 헤더에 지정된 HTTP 버전이 지원되지 않거나 지원이 거부되었습니다.

위 내용은 PHP 컬을 사용하여 요청을 보내는 방법에 대한 자세한 튜토리얼의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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