在php中file_get_contents与curl()函数都可以用来抓取对方网站的数据并保存到本地服务器中,但是总得来讲file_get_contents()效率稍低些,常用失败的情况、curl()效率挺高的,支持多线程,不过需要开启下curl扩展,也就是说要使用curl函数就必须要打开curl扩展了,而file_get_contents函数系统是默认的哦。
下面是curl扩展开启的步骤:
1、将PHP文件夹下的三个文件php_curl.dll,libeay32.dll,ssleay32.dll复制到system32下;
2、将php.ini(c:WINDOWS目录下)中的;extension=php_curl.dll中的分号去掉;
3、重启apache或者IIS。
我们先来看看两个函数的简单实例
curl()函数
代码如下 | 复制代码 | ||||||||
curl_exec($ch); curl_close($ch); //$ch = curl_init("要采集的网址"); curl_init()函数的作用初始化一个curl会话//curl_exec($ch);执行$ch
//curl_close($ch); 关闭$ch |
代码如下 | 复制代码 |
This is a test file with test text. |
file_get_contents函数
例子
代码如下 | 复制代码 |
echo file_get_contents("http://www.hzhuti.com"); ?> |
代码如下 | 复制代码 |
This is a test file with test text. |
代码如下 | 复制代码 |
$config['context'] = stream_context_create(array('http' => array('method' => "GET",'timeout' => 5))); |
fopen / file_get_contents 每次请求都会重新做DNS查询,并不对DNS信息进行缓存。
代码如下 | 复制代码 |
file_get_contents(http://***): failed to open stream… |
代码如下 | 复制代码 |
$config['context'] = stream_context_create(array('http' => array('method' => "GET",'timeout' => 5))); |
不得已,安装了curl库,写了一个函数替换:
代码如下
|
复制代码
|
||||||||
function curl_get_contents($url) {
curl_setopt($ch, CURLOPT_URL, $url); //设置访问的url地址
|
curl_setopt($ch, CURLOPT_REFERER,_REFERER_); //设置 referer
代码如下 | 复制代码 | ||||
1.2.31319094
2.2.30374217
3.2.21512604
4.3.30553889
5.2.30124092
curl使用的时间:
1.0.68719101
2.0.64675593
3.0.64326
4.0.81983113
5.0.63956594
那么如何根据服务器情况来使用file_get_contents还是curl()呢,下面我们可以利用function_exists函数来判断php是否支持一个函数可以轻松写出下面函数
|

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

SublimeText3 Linux新版
SublimeText3 Linux最新版

MinGW - 适用于 Windows 的极简 GNU
这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

Atom编辑器mac版下载
最流行的的开源编辑器

mPDF
mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)