文档章节

PHP中fopen,file_get_contents,curl的区别

Surjur
 Surjur
发布于 2014/09/10 10:29
字数 305
阅读 102
收藏 0

1.       fopen /file_get_contents 每次请求都会重新做DNS查询,并不对 DNS信息进行缓存。但是CURL会自动对DNS信息进行缓存。对同一域名下的网页或者图片的请求只需要一次DNS查询。这大大减少了DNS查询的次数。 所以CURL的性能比fopen /file_get_contents 好很多。


2.       fopen /file_get_contents 在请求HTTP时,使用的是http_fopen_wrapper,不会keeplive。而curl却可以。这样在多次请求多个链接时,curl效率会好一些。


3.       fopen / file_get_contents 函数会受到php.ini文件中allow_url_open选项配置的影响。如果该配置关闭了,则该函数也就失效了。而curl不受该配置的影响。


4.       curl 可以模拟多种请求,例如:POST数据,表单提交等,用户可以按照自己的需求来定制请求。而fopen / file_get_contents只能使用get方式获取数据。


file_get_contents 获取远程文件时会把结果都存在一个字符串中  fiels函数则会储存成数组形式


因此,我还是比较倾向于使用curl来访问远程url。Php有curl模块扩展,功能很是强大。没事可以研究一下。


本文转载自:

Surjur
粉丝 26
博文 194
码字总数 13150
作品 0
杭州
程序员
私信 提问
PHP中获取远程文件的三种方法

1.filegetcontents <?php $url = 'http://www.xxx.com/';$contents = filegetcontents($url);//如果出现中文乱码使用下面代码//$getcontent = iconv(“gb2312″, “utf-8″,filegetcontents(......

slagga
2016/10/27
19
0
php中 curl, fsockopen ,file_get_contents 三个函数 比较

赵永斌: 有些时候用filegetcontents()调用外部文件,容易超时报错。换成curl后就可以.具体原因不清楚 curl 效率比filegetcontents()和fsockopen()高一些,原因是CURL会自动对DNS信息进行缓存(...

lixiaokai2008
2013/09/26
5K
8
php发送get、post请求的几种方法

方法1: 用filegetcontents 以get方式获取内容 <?php $url='http://www.domain.com/'; $html = filegetcontents($url); echo $html; ?> 方法2: 用fopen打开url, 以get方式获取内容 <?php $fp ......

麦克
2012/09/24
218
0
复习PHP-语言参考-Context选项和参数

1.在filegetcontents和fopen作为参数调用。 resource fopen ( string , string [, bool = false [, resource ]] ) string filegetcontents ( string [, bool = false [, resource [, int = -......

qzd1989
2014/05/04
0
0
file_get_content 和curl以及fopen 谁的效率最高

三个函数虽然都是读取资源的函数,但各自的应用场景不同。 curl多用于互联网网页之间的抓取,fopen多用于读取文件,而filegetcontents多用于获取静态页面的内容。 1. fopen /filegetcontent...

范思哲思考者
2014/09/18
1K
0

没有更多内容

加载失败,请刷新页面

加载更多

详解tomcat的连接数与线程池

前言 在使用tomcat时,经常会遇到连接数、线程数之类的配置问题,要真正理解这些概念,必须先了解Tomcat的连接器(Connector)。 在前面的文章 详解Tomcat配置文件server.xml 中写到过:Con...

xiaomin0322
26分钟前
3
0
分布式锁的由来、特点、及Redis分布式锁的实现详解

什么是分布式锁 要介绍分布式锁,首先要提到与分布式锁相对应的是线程锁、进程锁。 1.线程锁 主要用来给方法、代码块加锁。当某个方法或代码使用锁,在同一时刻仅有一个线程执行该方法或该代...

一只会编程的狼
30分钟前
5
0
docker+tomcat+负载均衡

1、首先安装docker docker安装 2、docker安装tomcat docker安装tomcat(支持多个) 3、docker按照nginx docker按照nginx 可能在最后你放我项目地址后,会发现nginx样式丢失先现象,不用慌,按...

你好夜故事
34分钟前
4
0
【巨杉数据库SequoiaDB】巨杉⼯具系列之一 | ⼤对象存储⼯具sdblobtool

近期,巨杉数据库正式推出了完整的SequoiaDB 工具包,作为辅助工具,更好地帮助大家使用和运维管理分布式数据库。为此,巨杉技术社区还将持续推出工具系列文章,帮助大家了解巨杉数据库丰富的...

巨杉数据库
34分钟前
3
0
软件开发相关规范

1,语义化版本 2.0.0

四季变幻
42分钟前
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部