PHP에서 Curl은 매우 강력한 라이브러리로 서버 측에서 HTTP 요청을 시작하고 데이터 크롤링, API 호출 및 파일 업로드 및 다운로드와 같은 기능을 구현할 수 있습니다. 그리고
기능 프로토 타입은 다음과 같습니다.
<span><span>부</span></span><span> </span><span><span class="function_ invoke__">curl_setopt</span></span> <span>(자원</span> <span><span>$ ch</span></span> <span>,</span> <span><span>int</span></span><span> </span><span><span>$ 옵션</span></span> <span>,</span> <span><span>혼합</span></span><span> </span><span><span>$ value</span></span> <span>)
</span><ul><li><strong><span><span>$ ch</span></span><span></strong> : <span class="fun"><a href="/ko/php/curl_init .html" target="_blank">curl_init ()</a></span> 초기화에 의해 얻은 컬 세션 핸들.</li><li> <strong><span><span>$ 옵션</span></span><span></strong> : <span class="fun">curlopt_url</span> , <span class="fun">curlopt_returntransfer</span> 등과 같은 옵션 상수 설정.</li><li> <strong><span><span>$ 값</span></span><span></strong> : 옵션에 해당하는 값은 옵션에 따라 부울 값, 정수, 문자열 또는 배열 일 수 있습니다.</li></ul><p> 반환 값은 부울 값이며 설정은 <span class="fun">true를</span> 반환하고 그렇지 않으면 <span class="fun">거짓을</span> 반환합니다.</p><h2> 2. 일반적인 curl_setopt 옵션 </h2><table border=</span> <span><span>"1"</span></span> <span>CellPadding =</span> <span><span>"5"</span></span> <span>></span><th> 옵션</th><th> 효과</th><th> 예</th></tr><tr><td> Curlopt_url</td><td> 요청 된 URL을 설정하십시오</td><td> <span class="fun">curl_setopt ($ ch, curlopt_url, "https://api.example.com");</span></td></tr><tr><td> curlopt_returntransfer</td><td> 요청 결과를 직접 출력하는 대신 문자열로 반환할지 여부</td><td> <span class="fun">curl_setopt ($ ch, curlopt_returntransfer, true);</span></td></tr><tr><td> curlopt_post</td><td> 게시물을 사용하여 요청 해야하는지 여부</td><td> <span class="fun">curl_setopt ($ ch, curlopt_post, true);</span></td></tr><tr><td> curlopt_postfields</td><td> 게시 된 데이터</td><td> <span class="fun">curl_setopt ($ ch, curlopt_postfields, http_build_query ($ data));</span></td></tr><tr><td> curlopt_httpheader</td><td> 사용자 정의 HTTP 헤더</td><td> <span class="fun">curl_setopt ($ ch, curlopt_httpheader, [ "content-type : application/json"]);</span></td></tr><tr><td> curlopt_timeout</td><td> 요청 시간 초과 시간 설정 (초)</td><td> <span class="fun">curl_setopt ($ ch, curlopt_timeout, 10);</span></td></tr></table><h2> 3. Curl_SetOpt의 유연한 사용을위한 팁</h2><ol><li> <strong>옵션 배열을 동적으로 빌드 :</strong> 먼저 옵션 배열을 작성한 다음 루프를 통해 설정할 수 있으므로 코드가 더 간단합니다.</li><pre>
<span><span>$ 옵션</span></span> <span>= [
curlopt_url =></span> <span><span>"https://api.example.com"</span></span> <span>,
curlopt_returntransfer =></span> <span><span>true</span></span> <span>,
curlopt_timeout =></span> <span><span>15</span></span><span>
];
</span><span><span>$ ch</span></span> <span>=</span> <span><span class="function_ invoke__">curl_init</span></span> <span>();
</span><span><span>foreach</span></span> <span>(</span> <span><span>$ 옵션</span></span><span> </span><span><span>~처럼</span></span><span> </span><span><span>$ key</span></span> <span>=></span> <span><span>$ value</span></span> <span>) {
</span><span><span class="function_ invoke__">curl_setopt</span></span> <span>(</span> <span><span>$ ch</span></span> <span>,</span> <span><span>$ key</span></span> <span>,</span> <span><span>$ value</span></span> <span>);
}
</span><span><span>$ response</span></span> <span>=</span> <span><span class="function_ invoke__">curl_exec</span></span> <span>(</span> <span><span>$ ch</span></span> <span>);
</span><span><span class="function_ invoke__">curl_close</span></span> <span>(</span> <span><span>$ ch</span></span> <span>);
</span><li><strong>요청 유형에 따라 설정을 선택하십시오.</strong> 요청 가져옵니다. 일반적으로 게시물 요청은 포스트 필드 및 헤더를 설정 해야하는 반면, Post Request는 포스트 필드와 헤더를 설정해야합니다.</li><li> <strong>오류 처리 :</strong> Curl_Exec이 실패 할 수 있으며 오류 정보를 얻으려면 <span class="fun">CURL_ERRRNO</span> 및 <span class="fun">CURL_ERROR를</span> 사용해야합니다.</li><pre>
<span><span>if</span></span> <span>(</span> <span><span class="function_ invoke__">curl_errno</span></span> <span>(</span> <span><span>$ ch</span></span> <span>)) {
</span><span><span>에코</span></span><span> </span><span><span>"컬 오류 :"</span></span> <span>.</span> <span><span class="function_ invoke__">curl_error</span></span> <span>(</span> <span><span>$ ch</span></span> <span>);
}
</span><li><strong>HTTPS 요청 처리 :</strong> 대상이 HTTPS 인 경우 <span class="fun">Curlopt_SSL_VERIFYPEER</span> 및 <span class="fun">CURLOPT_SSL_VERIFYHOST</span> 에 의해 제어되는 인증서 확인 (테스트 환경)을 끄는 것이 필요합니다.</li></ol><h2> 4. 실제 예 : API에 전화하여 데이터를 얻습니다</h2><pre>
<span><span>$ ch</span></span> <span>=</span> <span><span class="function_ invoke__">curl_init</span></span> <span>();
</span><span><span class="function_ invoke__">curl_setopt</span></span> <span>(</span> <span><span>$ ch</span></span> <span>, curlopt_url,</span> <span><span>"https://jsonplaceholder.typicode.com/posts/1"</span></span> <span>);
</span><span><span class="function_ invoke__">curl_setopt</span></span> <span>(</span> <span><span>$ ch</span></span> <span>, curlopt_returntransfer,</span> <span><span>true</span></span> <span>);
</span><span><span>$ response</span></span> <span>=</span> <span><span class="function_ invoke__">curl_exec</span></span> <span>(</span> <span><span>$ ch</span></span> <span>);
</span><span><span>if</span></span> <span>(</span> <span><span class="function_ invoke__">curl_errno</span></span> <span>(</span> <span><span>$ ch</span></span> <span>)) {
</span><span><span>에코</span></span><span> </span><span><span>"요청 실패 :"</span></span> <span>.</span> <span><span class="function_ invoke__">curl_error</span></span> <span>(</span> <span><span>$ ch</span></span> <span>);
}</span> <span><span>또 다른</span></span> <span>{
</span><span><span>$ data</span></span> <span>=</span> <span><span class="function_ invoke__">json_decode</span></span> <span>(</span> <span><span>$ response</span></span> <span>,</span> <span><span>true</span></span> <span>);
</span><span><span>에코</span></span><span> </span><span><span>"제목:"</span></span> <span>.</span> <span><span>$ data</span></span> <span>[</span> <span><span>'title'</span></span> <span>].</span> <span><span>"\N"</span></span> <span>;
</span><span><span>에코</span></span><span> </span><span><span>"콘텐츠:"</span></span> <span>.</span> <span><span>$ data</span></span> <span>[</span> <span><span>'body'</span></span> <span>].</span> <span><span>"\N"</span></span> <span>;
}
</span><span><span class="function_ invoke__">curl_close</span></span> <span>(</span> <span><span>$ ch</span></span> <span>);
</span><p>위의 예를 들어, <span class="fun">Curl_SetOpt</span> 의 유연성을 볼 수 있습니다. CURL_SETOPT의 유연성은 기본 GET 요청에서 복잡한 게시물 또는 사용자 지정 헤더가있는 복잡한 게시물 또는 요청에 이르기까지 쉽게 구현할 수있는 CURL_SETOPT의 유연성을 볼 수 있습니다.</p><h2> 5. 요약</h2><p> <span class="fun">CURL_SETOPT</span> 사용을 마스터하는 것은 PHP 네트워크 프로그래밍에서 중요한 기술입니다. 실제 시나리오에 따라 각 옵션의 역할을 이해하고 유연하게 결합하면 다양한 HTTP 요청 작업을 효율적으로 안전하고 안전하게 구현할 수 있습니다. 다양한 유형의 요청을 지속적으로 연습하여 CURL 구성에 대한 민감도와 숙련도를 점차적으로 설정하는 것이 좋습니다.</p> <span><span><?php</span></span><span>
</span><span><span>// 다음 내용은 기사의 본문과 관련이 없으며 결말 자리 표시 자로 만 사용됩니다.</span></span><span>
</span><span><span>에코</span></span><span> </span><span><span>"기사가 끝나고 읽어 주셔서 감사합니다! \ n"</span></span> <span>;</span> <span><span>?></span></span><span>
</span></span></div></div>