初学php的朋友们,很容易翻一个错误,在写采集程序或者调用api接口总会有线考虑到使用file_get_contents函数来或许内容,程序的访问量不大倒是没什么影响,但是访问量提升了那非常的悲剧了,你会发现服务器负载飙升,最后服务器宕机.初入公司便遇到这个问题,遂使用curl取代此命令,并且禁用远程file_get_contents,它支持很多协议:FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE 以及 LDAP.
| $url='http://www.baidu.com'; | 
 
| curl_setopt ($ch, CURLOPT_URL, $url); | 
 
| curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); | 
 
| curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout); | 
 
| $file_contents = curl_exec($ch); | 
 
| if(function_exists('file_get_contents')) { | 
 
| $file_contents = file_get_contents($url); | 
 
| curl_setopt ($ch, CURLOPT_URL, $url); | 
 
| curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); | 
 
| curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout); | 
 
| $file_contents = curl_exec($ch); | 
 
 
 
禁用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库使用方法打开连接
												
												
								- curl和file_get_contents  区别以及各自的优劣
		PHP中fopen,file_get_contents,curl函数的区别: 1.fopen /file_get_contents 每次请求都会重新做DNS查询,并不对 DNS信息进行缓存.但是CUR ... 
- PHP CURL或file_get_contents获取网页标题的代码及两者效率的稳定性问题
		PHP CURL与file_get_contents函数都可以获取远程服务器上的文件保存到本地,但在性能上面两者完全不在同一个级别,下面我先来介绍PHP CURL或file_get_contents函 ... 
- PHP使用curl替代file_get_contents
		初学php的朋友们,很容易翻一个错误,在写采集程序或者调用api接口总会有线考虑到使用file_get_contents函数来或许内容,程序的访问量不大倒是没什么影响,但是访问量提升了那非常的悲剧了, ... 
- PHPsocket、CURL、File_get_contents采集
		1.socket采集.采用最底层的,它只是建立一个长连接,然后我们自己构造http协议字符串去发送请求.例如想获取这个页面内容(http://tv.youku.com/?spm=a2hww.20023 ... 
- curl 或 file_get_contents 获取需要授权页面的方法
		原文:http://blog.csdn.net/fdipzone/article/details/44475801 红色字体部分是加上自己的注释,整理了一下. 今天因工作需要,需要用 curl / f ... 
- curl 要么 file_get_contents 获得授权页面的方法的必要性
		今天,需要工作,需要使用 curl / file_get_contents 获得授权的必要性(Authorization)的页面内容.解决后写了这篇文章分享给大家. php curl 扩展,可以在se ... 
- cURL和file_get_contents实现模拟post请求
		以前面试时候,面试官问过我后端有没有跨域问题,但是不敢肯定,现在可以肯定的说没有. 不文用php的cURL和file_get_contents方法分别实现后端跨域.本文场景也是在tp5下实现的. 一, ... 
- 批量替换git目录的远程仓库URL地址脚本
		需求: 1. 输入work-dir 工作目录 2. 扫描工作目录中的子目录 3. 对每一个子目录, 判断是否是git repo 4. 确认是git repo, 获取git origin remote- ... 
- 批量文本读取URL获取正常访问且保留对应IP
		#coding=utf-8 import sys import requests for i in range(3000,4999,1): url = 'http://192.168.88.139:8 ... 
随机推荐
	
									- Spring Boot MyBatis 连接数据库
			最近比较忙,没来得及抽时间把MyBatis的集成发出来,其实mybatis官网在2015年11月底就已经发布了对SpringBoot集成的Release版本,Github上有代码:https://gi ... 
- nginx 1.4.7 发送日志到rsyslog
			<pre name="code" class="html">tar -xzf nginx-1.4.7.tar.gz # cd nginx-1.4.7 ... 
- Codeforces Round#1
			A. Theatre Square 题目大意:有一个长宽为m和n的广场,用边长为a的正方形去铺盖,问铺满最少需要多少正方形 题解:题目分解为用长度为a的线条分别去覆盖长度为m和n的线条,计算两者的乘积 ... 
- CSSBox - Java HTML rendering engine
			CSSBox - Java HTML rendering engine CSSBox is an (X)HTML/CSS rendering engine written in pure Java.  ... 
- 基于xml文件实现系统属性配置管理
			文章标题:基于xml文件实现系统属性配置管理 . 文章地址: http://blog.csdn.net/5iasp/article/details/11774501 作者: javaboy2012 E ... 
- 第八届河南省赛B.最大岛屿(dfs)
			B.最大岛屿 Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 30  Solved: 18 [Submit][Status][Web Board] De ... 
- 在windows下完美安装GitHub
			笔者最近在Windows下安装GitHub,过程中遇到不少问题.现在把安装的详细步骤分享给大家,免得大家走弯路. 笔者安装了GitHub for Windows程序,一切都运行顺利.但事情没有结束,首 ... 
- 虎记:强大的nth-child(n)伪类选择器玩法
			写在前面的戏: 最近参加了度娘前端IFE的春季班,刷任务,百度真是有营销头脑,让咱们这帮未来的技术狂人为他到处打广告(我可不去哪),其中做的几个任务中有几个以前没有用到的东西, 也算是有些许收获(现在 ... 
- ImageMagick 转换 progressive jpeg
			什么是渐进式图片(Progressive JPEG)? 来自 张鑫旭-鑫空间-鑫生活 的解释: 不知诸位有没有注意到,这些jpg格式的图片在呈现的时候,有两种方式,一种是自上而下扫描式的,还有一种就是 ... 
- JavaMail收发邮件的一般流程与主要方法
			1.Properties属性类 Properties p = new Properties(); p.put(key, value); key -| mail.smtp.host -| mail.sm ...