最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
php file_get_contents与curl()函数对比
时间:2022-06-24 21:37:40 编辑:袖梨 来源:一聚教程网
下面是curl扩展开启的步骤:
1、将PHP文件夹下的三个文件php_curl.dll,libeay32.dll,ssleay32.dll复制到system32下;
2、将php.ini(c:WINDOWS目录下)中的;extension=php_curl.dll中的分号去掉;
3、重启apache或者IIS。
我们先来看看两个函数的简单实例
curl()函数
| 代码如下 | 复制代码 |
|
$ch = curl_init("https://www.111cn.net/"); //$ch = curl_init("要采集的网址"); curl_init()函数的作用初始化一个curl会话 //curl_exec($ch);执行$ch //curl_close($ch); 关闭$ch |
|
file_get_contents函数
例子
| 代码如下 | 复制代码 |
|
echo file_get_contents("https://www.111cn.net"); ?> |
|
输出:
| 代码如下 | 复制代码 |
|
This is a test file with test text. |
|
总结
fopen / file_get_contents 每次请求都会重新做DNS查询,并不对DNS信息进行缓存。
但是CURL会自动对DNS信息进行缓存。对同一域名下的网页或者图片的请求只需要一次DNS查询。这大大减少了DNS查询的次数。
所以CURL的性能比fopen / file_get_contents 好很多。
file_get_contents与curl效率及稳定性问题
| 代码如下 | 复制代码 |
|
$config['context'] = stream_context_create(array('http' => array('method' => "GET",'timeout' => 5))); |
|
'timeout' => 5//这个超时时间不稳定,经常不好使。这时候,看一下服务器的连接池,会发现一堆类似下面的错误,让你头疼万分:
| 代码如下 | 复制代码 |
| file_get_contents(http://***): failed to open stream… | |
不得已,安装了curl库,写了一个函数替换:
| 代码如下 | 复制代码 |
|
function curl_get_contents($url) |
|
如此,除了真正的网络问题外,没再出现任何问题。
这是别人做过的关于curl和file_get_contents的测试:
file_get_contents抓取google.com需用秒数:
| 代码如下 | 复制代码 |
|
1.2.31319094 curl使用的时间: 1.0.68719101 |
|
那么如何根据服务器情况来使用file_get_contents还是curl()呢,下面我们可以利用function_exists函数来判断php是否支持一个函数可以轻松写出下面函数
| 代码如下 | 复制代码 |
|
function vita_get_url_content($url) { |
|
相关文章
- poki在线小游戏网页版入口-poki免费游戏大全网站入口 02-18
- 巨量算数官网入口-巨量算数核心功能解析 02-18
- 春秋玄奇官网首页入口在哪-春秋玄奇官网首页入口直达 02-18
- 闪烁之光云游戏入口-闪烁之光在线玩即点即进 02-18
- 闪烁之光官网首页入口-闪烁之光官网首页直达地址 02-18
- 永夜降临:复苏官网入口在哪-永夜降临:复苏官网入口地址 02-18