### 概述
1. cURL : Client URL Library Functions 的简称 .
2. 官方定义 : curl is a command line tool for transferring data with URL syntax , 即使用URL语法传输数据的命令行工具.
### 使用场景
1. 网页资源 : 编写网页爬虫.
2. WebService 数据接口资源 : 动态获取接口数据,比如天气,号码归属地等等.
3. FTP服务器里面的文件资源 : 下载上传FTP服务器里面的文件.
4. 其他资源 : 所有网络上的资源都可以用cURL访问和下载到.
### 在PHP种使用cURL
1. windows : 打开cmd 命令行 输入php -i , 查找curl .
2. linux : 命令行输入 php -i | grep cURL 查看是否支持 .
3. 如何使用呢 ?
![](https://box.kancloud.cn/00ad91b82e044b68e8d42154f276d0bc_951x546.png)
### cURL实战
#### 制作一个简单的爬虫 :
一般都用$ch 这个变量来保存cutl_init()的资源. h应该是handle的缩写,句柄.
~~~
$ch = curl_init("http://www.baidu.com");
curl_exec($ch);
curl_close($ch);
~~~
![](https://box.kancloud.cn/2357709904c7bf5e62ca91a6cef0cd5a_964x186.png)
#### 用cURL抓取网页信息并替换部分内容(get方式)
~~~
$url = "https://www.baidu.com";
$ch = curl_init(); //初始化
curl_setopt_array($ch, [
CURLOPT_URL => $url, //指定地址
CURLOPT_SSL_VERIFYPEER => false, //禁止服务器验证SSL证书
CURLOPT_SSL_VERIFYHOST => false, //禁止验证https
CURLOPT_RETURNTRANSFER => true, //以文档流形式返回
]);
$output = curl_exec($ch); //执行
echo str_replace('百度', 'Jiee', $output); //打印
~~~
![](https://box.kancloud.cn/8a438d050bce844952c177807f27ecba_760x504.png)
#### 调用天气信息(post)
~~~
$url = 'ws.webxml.com.cn/WebServices/WeatherWS.asmx/getWeather';
$ch = curl_init();
$data = 'theCityCode=31119';
curl_setopt_array($ch, [
CURLOPT_URL => $url,
CURLOPT_POST => true, //使用post方式
CURLOPT_POSTFIELDS => $data, //post传递的参数
CURLOPT_SSL_VERIFYHOST => false,
CURLOPT_SSL_VERIFYPEER => false,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [ //必须设置报头信息
'application/x-www-form-urlencoded',
'charset=utf-8',
'Content-length:' . count($data)
]
]);
$output = curl_exec($ch);
~~~
- PHP加密技术
- md5加密
- Crypt加密
- 函数
- 概述
- 强类型参数
- 可变参数列表
- 值传递&引用传递
- 变量作用域
- 可变函数
- 嵌套函数
- 递归函数
- 匿名函数(闭包)
- 面向对象
- 概念
- 类
- 对象的传值
- 对象的克隆
- 构造方法
- 析构方法
- 克隆方法
- $this
- 类常量
- 静态属性
- 静态方法
- 继承
- 重写
- 重载
- 概述
- 属性重载
- 概述
- __set()
- __get()
- __unset()
- __isset()
- 方法重载
- 概述
- __call()
- __callstatic()
- 封装
- 最终类
- 抽象类
- 接口
- 对象的序列化与反序列化
- __sleep()
- __wakeup()
- 其他魔术方法
- 对象的遍历
- 类和对象相关函数
- 错误
- 概述
- 设置错误级别
- trigger_error()触发错误
- 处理PHP中的错误
- 异常
- 概述
- 自定义异常类
- 自定义文件写入异常类
- 记录和发送异常信息
- 使用观察者模式处理异常信息
- 自定义异常处理器
- 设计模式
- 创建型
- 单例模式
- 工厂模式
- 原型模式
- 结构型
- 注册树模式
- 适配器模式
- 数据映射模式
- 装饰器模式
- 代理模式
- 行为型
- 策略模式
- 观察者模式
- 迭代器模式
- 网络
- cURL
- Oauth2.0
- QQ第三方登录
- TCP/IP协议
- 概述
- HTTP协议
- 概述
- HTTP请求协议
- HTTP响应协议
- WebSocket
- 安装扩展
- Redis
- Socket
- 计算机通信
- socket简介
- PHP操作socket
- TCP
- HTTP服务端
- WebSocket
- PHP7
- 生成器yield
- 异常finally
- CGI和FPM
- php有用命令
- 内存