>백엔드 개발 >PHP 튜토리얼 >컬, fopen 및 file_get_contents의 차이점

컬, fopen 및 file_get_contents의 차이점

WBOY
WBOY원래의
2016-07-29 09:15:231533검색

curl은 주로 인터넷 웹 페이지를 크롤링하는 데 사용되며, fopen은 주로 파일을 읽는 데 사용되며, file_get_contents는 주로 정적 페이지의 콘텐츠를 가져오는 데 사용됩니다.

1. fopen /file_get_contents 모든 요청이 다시 실행됩니다DNS 쿼리는 올바르지 않습니다. DNS 정보가 캐시됩니다. 그러나 CURLDNS 정보를 자동으로 캐시합니다. 동일한 도메인 이름의 웹페이지나 이미지를 요청하려면 DNS 쿼리 하나만 필요합니다. 이렇게 하면 DNS 쿼리 수가 크게 줄어듭니다. 따라서 CURLfopen보다 성능이 더 좋습니다. /file_get_contents 이 훨씬 좋습니다.

2. fopen /file_get_contents요청HTTP 언제 keeplive가 아닌 http_fopen_wrapper를 사용하세요. 하지만 curl은 그렇습니다. 이런 식으로 여러 링크를 여러 번 요청할 때 curl이 더 효율적입니다.

3. Curl은 POST 데이터, 양식 제출 등 다양한 요청을 시뮬레이션할 수 있습니다. 사용자는 필요에 따라 요청을 맞춤 설정할 수 있습니다. 그리고 fopen/file_get_contents는 데이터를 얻기 위해 get 메소드만 사용할 수 있습니다.

curl의 몇 가지 기본적인 사용법을 이해한 후에는 설정 매개변수 중 일부를 기억하는 것이 어렵지 않다는 것을 알았습니다. 하지만 일반적으로 사용되는 몇 가지 매개변수만 기억하면 됩니다.

컬 활성화:

PHP는 기본적으로 컬 기능을 지원하지 않기 때문에 컬을 사용하려면 먼저 php.ini에서 이 기능, 즉 제거를 활성화해야 합니다. 확장명= php_curl.dll 앞에 세미콜론을 입력한 다음 apache/iis를 저장하고 다시 시작하세요.

<precourier new border-width:1px border-style:solid border-color:rgb rgb background-color:rgb padding:5px><span><?</span><span>php</span><span>  $curl </span><span>=</span><span> curl_init</span><span>();</span><span>//初始化一个cURL对象</span><span>  $url </span><span>=</span><span></span><span>"http://cart.jd.com/cart/cart.html?backurl=http://item.jd.com/176166.html&rid=0.9533184533      938766"</span><span>;</span><span>  $header </span><span>=</span><span> array</span><span>();</span><span>  $header</span><span>[]</span><span></span><span>=</span><span></span><span>'User-Agent: 5.0 (iPhone; U; CPU iPhone OS 4_3 like Mac OS X; en-us)'</span><span>;</span><span>  $header</span><span>[]</span><span></span><span>=</span><span></span><span>'Accept: text/html,application/xhtml&#43;xml,application/xml;q=0.9,*/*;q=0.8'</span><span>;</span><span>  $header</span><span>[]=</span><span></span><span>'Accept-Encoding: gzip,deflate'</span><span>;</span><span>  $header</span><span>[]=</span><span></span><span>'//可以根据需要增加header内容'</span><span>;</span><span>  curl_setopt</span><span>(</span><span>$culr</span><span>,</span><span>CURLOPT_URL</span><span>,</span><span> $url</span><span>);</span><span>//设置你需要抓去的URL地址</span><span>  curl_setopt</span><span>(</span><span>$curl</span><span>,</span><span>CURLOPT_HEADER</span><span>,</span><span>$header </span><span>);</span><span>//设置header</span><span>  curl_setopt</span><span>(</span><span>$curl</span><span>,</span><span>CURLOPT_RETURNTRANSFER</span><span>,</span><span>1</span><span>);</span><span>//将结果返回输出到字符串</span><span>  $str </span><span>=</span><span> curl_exec</span><span>(</span><span>$curl</span><span>);运行</span><span>cURL</span><span>,请求网页</span><span>  curl_close</span><span>(</span><span>$curl</span><span>);</span><span>//关闭url请求</span><span></span><span>return</span><span> $str</span><span>;</span><span>//返回或者显示结果</span><span>?></span></precourier>

위에서는 관련 측면을 포함하여 컬, fopen 및 file_get_contents의 차이점을 소개했습니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.


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