curl은 주로 인터넷 웹 페이지를 크롤링하는 데 사용되며, fopen은 주로 파일을 읽는 데 사용되며, file_get_contents는 주로 정적 페이지의 콘텐츠를 가져오는 데 사용됩니다.
1. fopen /file_get_contents 모든 요청이 다시 실행됩니다DNS 쿼리는 올바르지 않습니다. DNS 정보가 캐시됩니다. 그러나 CURL은 DNS 정보를 자동으로 캐시합니다. 동일한 도메인 이름의 웹페이지나 이미지를 요청하려면 DNS 쿼리 하나만 필요합니다. 이렇게 하면 DNS 쿼리 수가 크게 줄어듭니다. 따라서 CURL은 fopen보다 성능이 더 좋습니다. /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+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>