Heim >Backend-Entwicklung >PHP-Tutorial >Der Unterschied zwischen Curl, Fopen und File_get_contents

Der Unterschied zwischen Curl, Fopen und File_get_contents

WBOY
WBOYOriginal
2016-07-29 09:15:231533Durchsuche

curl wird hauptsächlich zum Crawlen von Internet-Webseiten verwendet, fopen wird hauptsächlich zum Lesen von Dateien verwendet und file_get_contents wird hauptsächlich zum Abrufen des Inhalts statischer Seiten verwendet.

1. fopen /file_get_contents Jede Anfrage wird erneut durchgeführtDNSAbfrage, was nicht korrekt ist DNS Informationen werden zwischengespeichert. CURL speichert jedoch automatisch DNS-Informationen zwischen. Für Anfragen nach Webseiten oder Bildern unter demselben Domainnamen ist nur eine DNS-Abfrage erforderlich. Dadurch wird die Anzahl der DNS-Abfragen erheblich reduziert. CURL hat also eine bessere Leistung als fopen /file_get_contents ist viel besser.

2. fopen /file_get_contentsanfordernHTTP Wann mit http_fopen_wrapper, nicht mit keeplive. Aber Curl schon. Auf diese Weise ist curl effizienter, wenn mehrere Links mehrmals angefordert werden.

3. Curl kann eine Vielzahl von Anfragen simulieren, wie z. B. POST-Daten, Formularübermittlung usw. Benutzer können Anfragen entsprechend ihren eigenen Bedürfnissen anpassen. Und fopen/file_get_contents kann nur die get-Methode zum Abrufen von Daten verwenden.


Nachdem ich studiert habe, habe ich herausgefunden, dass Curl viele Protokolle unterstützt, darunter FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE und LDAP viel file_get_content Etwas, das nicht getan werden kann. Curl kann die Remote-Erfassung und -Sammlung der PHP-Webversion implementieren; das Implementieren von Schnittstellen-Docking (API), das Implementieren von simulierten Cookies zum Herunterladen von Dateien usw Funktion ist sehr mächtig.

Nachdem ich einige grundlegende Anwendungen von Curl verstanden hatte, stellte ich fest, dass es nicht schwierig ist, sich einige der Einstellungsparameter zu merken, aber wir können uns nur an einige häufig verwendete erinnern.

Curl aktivieren:

Da PHP die Curl-Funktion standardmäßig nicht unterstützt, müssen Sie diese Funktion zunächst in php.ini aktivieren, d. h. entfernen, wenn Sie Curl verwenden möchten. extension= php_curl. Das Semikolon vor der DLL, dann speichern und Apache/iis neu starten.

<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>


Das Obige hat die Unterschiede zwischen Curl, Fopen und File_Get_Contents vorgestellt, einschließlich der relevanten Aspekte. Ich hoffe, dass es für Freunde hilfreich sein wird, die sich für PHP-Tutorials interessieren.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn