PHP中CURL详细教程

一:什么是CURL
CURL:Client URL Library Functions
官方定义为:使用URL语法传输数据的命令行工具。(有点晕。。。)

  • 举例理解: 顾客到饭店吃饭。

顾客———服务员————饭店

顾客到饭店吃饭,一般来说(没有服务员的饭店除外),有以下几个流程。
1:顾客通过服务员点菜;
2:饭店通过服务员了解到顾客要点的菜,做好菜;
3:饭店将做好的菜通过服务员传递给顾客;
可以知道,服务员承担了一个媒介的作用。即是顾客和饭店间沟通的桥梁

  • 类比互联网世界:

客户端———CURL————服务器

互联网上有各种各样的资源,比如图片、网页、脚本、数据等其他资源。我们作为客户端(比如浏览器),要想获得服务器的资源,如何获得呢?一般来说,也有以下几个流程。
1:客户端通过CURL告知服务器自己想要什么资源(顾客通过服务员告诉饭店要吃什么菜)。
2:服务器通过CURL了解到客户端要请求的资源,并准备好资源(顾客通过服务员知道顾客点的菜,并做好菜)。
3:服务器将准备好的资源通过CURL传递给客户端(饭店通过服务员上菜)。
可以知道,CURL承担了一个媒介的作用。即是客户端和服务器沟通的桥梁

总结为:CURL是客户端向服务器请求资源的工具。

二:CURL的使用场景
可以得到网页资源、webservice(比如查号码归属地)、FTP服务器里的文件资源、其他资源。

  1. 网页资源:编写网页爬虫。
  2. webservice数据接口资源:动态获取接口数据,比如天气、号码归属地等。
  3. FTP服务器里面的文件资源:下载FTP里的文件。
  4. 其他资源:所有网络上的资源都可以用CURL下载到。

    三:CURL操作步骤解析
    注意:PHP一定要添加CURL扩展才可以使用,可通过 echo phpinfo()查看是否已安装CURL扩展,如未安装,请百度安装教程。

  5. 初始化CURL,通过curl_init()函数初始化(在使用任何服务时,我们一般都要初始化)。

  6. 客户端向服务器发送请求,服务器响应请求,使用curl_exec()函数。
  7. 客户端接收服务器的响应,使用curl_exec()函数。
  8. 关闭CURL,使用curl_close()函数。

下面是实战环节

一:用CURL制作网页爬虫

  • 以百度为例。
<?php
  $curl=curl_init("http://www.baidu.com");//初始化curl
  curl_exex($curl);//执行curl
  curl_close($curl);//关闭curl
?>

在浏览器中打开它,将会看到和百度一模一样的首页。

  • 现在,爬取了百度的内容,接下来要对爬取的内容进行处理。
<?php
  $curl=curl_init();//可以先初始化,不传参数
  curl_setopt($curl,CURLOPT_URL,"http://www.baidu.com");//对百度爬取
  curl_setopt($curl,CURLOPT_RETURNTRANSFER,true);//设置返回来的内容不输出,以流的形式返回
  $content=curl_exec($curl);//执行curl
  curl_close($curl);//关闭curl
  echo str_replace("baidu","hello",$content);//在$content中搜索baidu,替换为hello
?>

二:webservice
什么是webservice?
webservice是不依赖于任何语言,平台,可以实现不同语言间的相互调用,进行基于HTTP协议的网络应用间的交互。

<?php
$data="theCityName=青岛";
$curl=curl_init();
curl_setopt($curl,CURLOPT_URL,"http://www.webxml.com.cn/WebServices/WeatherWebService.asmx/getWeatherbyCityName");
curl_setopt($curl,CURLOPT_POST,1);
curl_setopt($curl,CURLOPT_RETURNTRANSFER,true);
curl_setopt($curl,CURLOPT_POSTFIELDS,$data);
curl_setopt($curl,CURLOPT_HTTPHEADER,array("application/x-www-form-urlencoded;charset=utf-8","Content-length:".strlen($data)));
$res=curl_exec($curl);
echo $res;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值