PHP使用curl替代file_get_contents

Posted 网络虫

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP使用curl替代file_get_contents相关的知识,希望对你有一定的参考价值。

初学php的朋友们,很容易翻一个错误,在写采集程序或者调用api接口总会有线考虑到使用file_get_contents函数来或许内容,程序的访问量不大倒是没什么影响,但是访问量提升了那非常的悲剧了,你会发现服务器负载飙升,最后服务器宕机.初入公司便遇到这个问题,遂使用curl取代此命令,并且禁用远程file_get_contents,它支持很多协议:FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE 以及 LDAP.

禁用file_get_contents方法:
打开php.ini,配置如下:

如果是fastcgi重启php-fpm,如果是apache+php那直接重启apache即可.

file_get_contents与curl对比结果.

技术分享

curl替代file_get_contents

福建省福州市file_get_contents:0.4679060000 seconds
福建省福州市curl:0.3150200000 seconds

这边分别使用file_get_contents与curl使用淘宝ip库来获取IP地址信息,可以发现file_get_contents和curl性能的差距还是比较大.file_get_contents耗时0.467秒,curl使用0.315秒.差了0.152秒,有30%性能差距. 淘宝IP库使用方法打开连接

以上是关于PHP使用curl替代file_get_contents的主要内容,如果未能解决你的问题,请参考以下文章

无法让 cURL 或 file_get_contents 在 PHP 中工作

PHP file_get_contents / CURL 不返回整页

PHP CURL替换file_get_contents

php file_get_contents 和 curl_exec 不适用于外部文件

PHP cURL 与 file_get_contents

php curl和file_get_contents读不到数据