PHP中CURL详细教程
来源:互联网 发布:mac unix 编辑:程序博客网 时间:2024/06/05 17:46
一:什么是CURL
CURL:Client URL Library Functions
官方定义为:使用URL语法传输数据的命令行工具。(有点晕。。。)
- 举例理解: 顾客到饭店吃饭。
顾客———服务员————饭店
顾客到饭店吃饭,一般来说(没有服务员的饭店除外),有以下几个流程。
1:顾客通过服务员点菜;
2:饭店通过服务员了解到顾客要点的菜,做好菜;
3:饭店将做好的菜通过服务员传递给顾客;
可以知道,服务员承担了一个媒介的作用。即是顾客和饭店间沟通的桥梁。
- 类比互联网世界:
客户端———CURL————服务器
互联网上有各种各样的资源,比如图片、网页、脚本、数据等其他资源。我们作为客户端(比如浏览器),要想获得服务器的资源,如何获得呢?一般来说,也有以下几个流程。
1:客户端通过CURL告知服务器自己想要什么资源(顾客通过服务员告诉饭店要吃什么菜)。
2:服务器通过CURL了解到客户端要请求的资源,并准备好资源(顾客通过服务员知道顾客点的菜,并做好菜)。
3:服务器将准备好的资源通过CURL传递给客户端(饭店通过服务员上菜)。
可以知道,CURL承担了一个媒介的作用。即是客户端和服务器沟通的桥梁。
总结为:CURL是客户端向服务器请求资源的工具。
二:CURL的使用场景
可以得到网页资源、webservice(比如查号码归属地)、FTP服务器里的文件资源、其他资源。
- 网页资源:编写网页爬虫。
- webservice数据接口资源:动态获取接口数据,比如天气、号码归属地等。
- FTP服务器里面的文件资源:下载FTP里的文件。
其他资源:所有网络上的资源都可以用CURL下载到。
三:CURL操作步骤解析
注意:PHP一定要添加CURL扩展才可以使用,可通过 echo phpinfo()查看是否已安装CURL扩展,如未安装,请百度安装教程。初始化CURL,通过curl_init()函数初始化(在使用任何服务时,我们一般都要初始化)。
- 客户端向服务器发送请求,服务器响应请求,使用curl_exec()函数。
- 客户端接收服务器的响应,使用curl_exec()函数。
- 关闭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;
- PHP中CURL详细教程
- 【php中的curl】php中curl的详细解说
- 【php中的curl】php中curl的详细解说
- 【php中的curl】php中curl的详细解说
- 【php中的curl】php中curl的详细解说
- 【php中的curl】php中curl的详细解说
- 【php中的curl】php中curl的详细解说
- 【php中的curl】php中curl的详细解说
- 【php中的curl】php中curl的详细解说
- 【php中的curl】php中curl的详细解说
- 【php中的curl】php中curl的详细解说
- 【php中的curl】php中curl的详细解说
- 【php中的curl】php中curl的详细解说
- 【php中的curl】php中curl的详细解说
- 【php中的curl】php中curl的详细解说
- 【php中的curl】php中curl的详细解说
- 【php中的curl】php中curl的详细解说
- 【php中的curl】php中curl的详细解说
- HDU ACM 1279 验证角谷猜想
- hdu5187_zhx's contest(快速幂+快速乘法)
- PageRank算法简介及Map-Reduce实现
- Javascript Math ceil()、floor()、round()三个函数的区别
- Left:Firefox 36 VS Right:Chrome 41
- PHP中CURL详细教程
- 02 窗口与视图的基本概念和用法
- Win7与CentOS双系统时间差8个小时问题
- 黑马程序员——java基础——正则表达式
- Python中 == 与 is 的区别和应用场景
- 集合
- UVA - 10401 Injured Queen Problem
- live555基础概念【转】
- 学习笔记