curl - 快速了解

  • 作者:KK

  • 发表日期:2017.2.16


curl可以对一个http或者https协议的网络地址发起请求,并取回结果

比如我们在浏览器输入http://www.xxx.com的时候,浏览器会向这个地址的服务器发起请求,这个服务器运行一番后通常返回了一段HTML源代码,对于浏览器来说,这得到的本质上是一个字符串,然后进行了解析渲染呈现出网页

好了你先粘贴以下代码运行一下看看:

$url = 'http://www.baidu.com';

$curlHandler = curl_init(); //初始化一个curl句柄
curl_setopt($curlHandler, CURLOPT_URL, $url); //设置请求网址
curl_setopt($curlHandler, CURLOPT_RETURNTRANSFER, 1); //后面执行exec的时候要返回内容,不要自动输出
$content = curl_exec($curlHandler); //执行并获取HTML文档内容
curl_close($curlHandler); //销毁句柄

$putSize = file_put_contents('baidu.html', $content);
echo '百度首页源码字节数:' . $putSize;

然后打开baidu.html看看内容你就懂了


curl是一个扩展

要在php.ini里开启extension=php_curl.dll,不需要其它设置就可以马上用curl系列函数

如果不是自己从零手动开始慢慢配置出来的PHP环境,通常大部都默认开启了curl,因为这个挺常用,虽然不是天天用,但有些程序员一年下来平均每2个月写一次curl代码也算正常,而且往往每次写都有新的难度挑战,让大家查完资料又再查……


浏览器能做的,curl都能做到

就上面的例子代码而言,curl就模拟了请求百度首页的行为,但当然请求完首页的源代码后,没有解析HTML、CSS和JS,因为这还需要解析器,CURL就是请求网址,取得源代码

但甚至向一个地址发送GET、POST参数都可以做到,后面一一讲解


作用

  1. 跟别的公司合作开发项目时,可以用来请求对方提供的数据接口

  2. 还是接口,一些第三方开放平台,比如支付宝、微信接口等

  3. 吖的还是接口!——公司内部各个项目间通过http进行数据交换传递

  4. 数据采集,上面的示例如果换成一个新闻网站的网址,就可以获取这个新闻网首页的头条新闻数据了,然后用正则表达式从里面匹配内容存进数据库再展示给自己的用户看……这种叫采集行为,很多项目都有这样的设定