Comparison of performance efficiency of fopen/file_get_contents to curl in PHP

Source: Internet
Author: User
A comparison of the performance efficiency of fopen/file_get_contents to curl in PHP.

(1) Fopen/file_get_contents each time the data in the remote URL is requested, the DNS query is re-made and the DNS information is not cached. However, Curl automatically caches the DNS information. Requests for Web pages or images under the same domain name require only one DNS query. This greatly reduces the number of DNS queries. So curl has a much better performance than fopen/file_get_contents.

(2) Fopen/file_get_contents is using Http_fopen_wrapper when requesting HTTP, and will not keeplive. and curl can. This makes curl more efficient when multiple links are requested more than once. (The header should be set)

(3) The Fopen/file_get_contents function is affected by the configuration of the Allow_url_open option in the php.ini file. If the configuration is turned off, the function is invalidated. Curl is not affected by this configuration.

(4) Curl can simulate a variety of requests, such as post data, form submission, etc., users can customize the request according to their own needs. Instead, fopen/file_get_contents can only get data using the Get method.

(5) fopen/file_get_contents cannot download binary files correctly.

(6) Fopen/file_get_contents cannot handle SSL requests correctly.

(7) Curl can take advantage of multithreading.

(8) When using file_get_contents, if the network is having problems, it is easy to accumulate some process here.

(9) If you want to make a persistent connection, request multiple pages more than once. Then file_get_contents will go wrong. The content obtained may also be incorrect. So when doing some similar collection work, using curl instead is a more correct choice.

  • Related Article

    Contact Us

    The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

    If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.