### 概述
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. 如何使用呢 ?

### cURL實戰
#### 制作一個簡單的爬蟲 :
一般都用$ch 這個變量來保存cutl_init()的資源. h應該是handle的縮寫,句柄.
~~~
$ch = curl_init("http://www.baidu.com");
curl_exec($ch);
curl_close($ch);
~~~

#### 用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); //打印
~~~

#### 調用天氣信息(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有用命令
- 內存