




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、php中filegetcontents与curl性能分析PHP,是英文超文本预处理语言HypertextPreprocessor的缩写。下面带大家学习一下php中file_get_contents与curl性能分析,欢迎阅读,更多详情请关注。在php中如果不仔细的去分析性能会发现file_get_contents与curl两个同很多共同点的,他们都可以采集文件打开文件,但是如果仔细一对比会发现很多不同点,下面我们一起来看看file_get_contents与curl区别。PHP中fopen,file_get_contents,curl函数的区别:1 .fopen/file_get_conten
2、ts每次请求都会重新做DN超询,并不对DNS言息进行缓存。但是CUR总自动对DNS言息进行缓存。对同一域名下的网页或者图片的请求只需要一次DN超询。这大大减少了DN逊询的次数。所以CURL勺性能比fopen/file_get_contents好很多。2 .fopen/file_get_contents在请求时,使用的是_fopen_wrapper,不会keeplive。而curl却可以。这样在多次请求多个链接时,curl效率会好一些。3 .fopen/file_get_contents函数会受到php.ini文件中allow_url_open选项配置的影响。如果该配置关闭了,则该函数也就失效了
3、。而curl不受该配置的影响。4 .curl可以模拟多种请求,例如:POS改据,表单提交等,用户可以按照自己的需求来定制请求。而fopen/file_get_contents只能使用get方式获取数据。file_get_contents获取远程文件时会把结果都存在一个字符串中fiels函数则会储存成数组形式因此,我还是比较倾向于使用curl来访问远程url°Php有curl模块扩展,功能很是强大。说了半天大家可能说性能怎么没对比呢,那我们就来看看最近需要获取别人网站上的音乐数据。用了file_get_contents函数,但是总是会遇到获取失败的问题,尽管按照手册中的例子设置了超时,
4、可多数时候不会奏效:代码如下:$config'context'=stream_context_create(array(''=>array('method'=>"GET",'timeout'=>5/这个超时时间不稳定,经常不奏效);这时候,看一下服务器的连接池,会发现一堆类似的错误,让我头疼万分:file_get_contents(*):failedtoopenstream现在改用了curl库,写了一个函数替换:代码如下:functioncurl_file_get_contents($durl
5、)$ch=curl_init();curl_setopt($ch,CURLOPT_URL,$durl);curl_setopt($ch,CURLOPT_TIMEOUT,5);curl_setopt($ch,CURLOPT_USERAGENT,_USERAGENT_);curl_setopt($ch,CURLOPT_REFERER,_REFERER_);curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);$r=curl_exec($ch);curl_close($ch);return$r;如此,除了真正的网络问题外,没再出现任何问题。这是别人做过的关于curl和f
6、ile_get_contents的测试:file_get_contents抓取google.需用秒数:2.313190942.303742172.215126043.305538892.30124092curl使用的时间:0.687191010.646755930.643260.819831130.63956594差距很大?呵呵,从我使用的经验来说,这两个工具不只是速度有差异,稳定性也相差很大。建议对网络数据抓取稳定性要求比较高的朋友使用上面的curl_file_get_contents函数,不但稳定速度快,还能假冒浏览器欺骗目标地址哦再看一个实例后续贴出了curl和file_get_cont
7、ents的对比结果,这边除了curl与file_get_contents的性能对比,还包含了他们的性能对比,讲之前看下如下的结果图:curl与file_get_contents性能又t比PHPW代码如下:代码如下:<?php/*通过淘宝IP接口获取IP地理位置*paramstring$ip*return:string*/functiongetCityCurl($ip)$url="ip.taobao./service/getIpInfo.php?ip=".$ip;$ch=curl_init();$timeout=5;curl_setopt($ch,CURLOPT_URL
8、,$url);curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);$file_contents=curl_exec($ch);curl_close($ch);$ipinfo=json_decode($file_contents);if($ipinfo->code='1')returnfalse;$city=$ipinfo->data->region.$ipinfo->data->city;return$city;func
9、tiongetCity($ip)$url="ip.taobao./service/getIpInfo.php?ip=".$ip;$ipinfo=json_decode(file_get_contents($url);if($ipinfo->code='1')returnfalse;$city=$ipinfo->data->region.$ipinfo->data->city;return$city;/forfile_get_contents$startTime=explode('',microtime();$st
10、artTime=$startTime0+$startTime1;for($i=1;$i<=10;$i+)echogetCity("121.207.247.202").""$endTime=explode('',microtime();$endTime=$endTime0+$endTime1;$totalTime=$endTime-$startTime;echo'file_get_contents:'.number_format($totalTime,10,'.',"")."
11、;seconds"/forcurl$startTime2=explode('',microtime();$startTime2=$startTime20+$startTime21;for($i=1;$i<=10;$i+)echogetCityCurl('121.207.247.202').""$endTime2=explode('',microtime();$endTime2=$endTime20+$endTime21;$totalTime2=$endTime2-$startTime2;echo"curl:".number_format($totalTime2,10,'.',"")."seconds"?>测试访问file_get_contents速度:4.2404510975secondscu
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 脚手架施工安全培训内容与现场实际操作匹配性研究考核试卷
- 纳米复合材料在地铁制造中的应用考核试卷
- 合作伙伴关系生命周期管理考核试卷
- 产业政策扶持力度分析考核试卷
- 设备集成化对生产流程的影响考核试卷
- 农用工具批发行业竞争格局演变考核试卷
- 供应链战略联盟知识管理实践分析考核试卷
- 2025年中国PVC-U加筋管数据监测报告
- 2025年中国PE封口膜袋数据监测研究报告
- 2025年中国LED不锈钢节能电筒数据监测报告
- 医共体医保管理工作制度
- 顾问销售培训课件
- 储量知识考试题及答案
- 成都市住宅工程质量常见问题防治措施
- 2025年经济学基础知识测试试题及答案
- 2025年7月浙江省普通高中学业水平考试押题模拟暨选考意向导引卷历史学科试题(原卷版)
- 贵州省黔西南州、黔东南州、黔南州2025年八年级英语第二学期期末学业水平测试试题含答案
- 杭州市公安局滨江区分局招聘警务辅助人员笔试真题2024
- 2025年江苏省高考物理试卷真题(含答案)
- DB31/ 638-2012铸钢件单位产品能源消耗限额
- 肾肿瘤超声诊断
评论
0/150
提交评论