
- PHP 教程
- PHP - 首頁
- PHP - 簡介
- PHP - 安裝
- PHP - 歷史
- PHP - 特性
- PHP - 語法
- PHP - Hello World
- PHP - 註釋
- PHP - 變數
- PHP - Echo/Print
- PHP - var_dump
- PHP - $ 和 $$ 變數
- PHP - 常量
- PHP - 魔術常量
- PHP - 資料型別
- PHP - 型別轉換
- PHP - 型別混淆
- PHP - 字串
- PHP - 布林值
- PHP - 整數
- PHP - 檔案與 I/O
- PHP - 數學函式
- PHP - Heredoc 和 Nowdoc
- PHP - 複合型別
- PHP - 檔案包含
- PHP - 日期和時間
- PHP - 標量型別宣告
- PHP - 返回型別宣告
- PHP 運算子
- PHP - 運算子
- PHP - 算術運算子
- PHP - 比較運算子
- PHP - 邏輯運算子
- PHP - 賦值運算子
- PHP - 字串運算子
- PHP - 陣列運算子
- PHP - 條件運算子
- PHP - 展開運算子
- PHP - 空值合併運算子
- PHP - 鍵值比較運算子
- PHP 控制語句
- PHP - 決策制定
- PHP - If…Else 語句
- PHP - Switch 語句
- PHP - 迴圈型別
- PHP - For 迴圈
- PHP - Foreach 迴圈
- PHP - While 迴圈
- PHP - Do…While 迴圈
- PHP - Break 語句
- PHP - Continue 語句
- PHP 函式
- PHP - 函式
- PHP - 函式引數
- PHP - 按值傳遞
- PHP - 按引用傳遞
- PHP - 預設引數
- PHP - 具名引數
- PHP - 可變引數
- PHP - 返回值
- PHP - 傳遞函式
- PHP - 遞迴函式
- PHP - 型別提示
- PHP - 變數作用域
- PHP - 嚴格型別
- PHP - 匿名函式
- PHP - 箭頭函式
- PHP - 可變函式
- PHP - 區域性變數
- PHP - 全域性變數
- PHP 超全域性變數
- PHP - 超全域性變數
- PHP - $GLOBALS
- PHP - $_SERVER
- PHP - $_REQUEST
- PHP - $_POST
- PHP - $_GET
- PHP - $_FILES
- PHP - $_ENV
- PHP - $_COOKIE
- PHP - $_SESSION
- PHP 檔案處理
- PHP - 檔案處理
- PHP - 開啟檔案
- PHP - 讀取檔案
- PHP - 寫入檔案
- PHP - 檔案是否存在
- PHP - 下載檔案
- PHP - 複製檔案
- PHP - 追加檔案
- PHP - 刪除檔案
- PHP - 處理 CSV 檔案
- PHP - 檔案許可權
- PHP - 建立目錄
- PHP - 列出檔案
- 面向物件 PHP
- PHP - 面向物件程式設計
- PHP - 類和物件
- PHP - 建構函式和解構函式
- PHP - 訪問修飾符
- PHP - 繼承
- PHP - 類常量
- PHP - 抽象類
- PHP - 介面
- PHP - 特性
- PHP - 靜態方法
- PHP - 靜態屬性
- PHP - 名稱空間
- PHP - 物件迭代
- PHP - 封裝
- PHP - Final 關鍵字
- PHP - 過載
- PHP - 克隆物件
- PHP - 匿名類
- PHP Web 開發
- PHP - Web 概念
- PHP - 表單處理
- PHP - 表單驗證
- PHP - 表單郵件/URL
- PHP - 完整表單
- PHP - 檔案包含
- PHP - GET 和 POST
- PHP - 檔案上傳
- PHP - Cookies
- PHP - Sessions
- PHP - Session 選項
- PHP - 傳送郵件
- PHP - 過濾輸入
- PHP - Post-Redirect-Get (PRG)
- PHP - 快閃記憶體訊息
- PHP 高階
- PHP - MySQL
- PHP.INI 檔案配置
- PHP - 陣列解構
- PHP - 編碼規範
- PHP - 正則表示式
- PHP - 錯誤處理
- PHP - Try…Catch
- PHP - 除錯 Bug
- PHP - 針對 C 開發人員
- PHP - 針對 PERL 開發人員
- PHP - 框架
- PHP - Core PHP 與框架
- PHP - 設計模式
- PHP - 過濾器
- PHP - JSON
- PHP - 異常
- PHP - 特殊型別
- PHP - 雜湊
- PHP - 加密
- PHP - is_null() 函式
- PHP - 系統呼叫
- PHP - HTTP 認證
- PHP - 交換變數
- PHP - Closure::call()
- PHP - 過濾後的 unserialize()
- PHP - IntlChar
- PHP - CSPRNG
- PHP - 預期
- PHP - Use 語句
- PHP - 整數除法
- PHP - 已棄用的特性
- PHP - 已刪除的擴充套件和 SAPIs
- PHP - PEAR
- PHP - CSRF
- PHP - FastCGI 程序
- PHP - PDO 擴充套件
- PHP - 內建函式
- PHP 有用資源
- PHP - 速查表
- PHP - 問答
- PHP - 快速指南
- PHP - 線上編譯器
- PHP - 有用資源
- PHP - 討論
PHP - 客戶端 URL 函式
PHP 的 cURL 或客戶端 URL 函式用於傳送 HTTP 請求並與 Web 伺服器互動。它們允許您與多種型別的伺服器通訊,並使用各種協議(例如 HTTP、HTTPS、FTP 等)傳送和接收資料。
這些函式對於管理響應和向 Web 傳送請求的 PHP 程式至關重要。在與 API 互動、下載檔案和抓取 Web 時,它們尤其方便。
構成 cURL 的兩個部分是 libcURL 和 cURL。
- cURL:cURL 允許您使用 URL 語法傳送和接收資料。
- libcURL:這是一個庫。它由 Daniel Stenberg 建立。cURL 庫能夠使用多種協議與其他伺服器通訊。目前,它支援各種協議,包括 LDAP、TPS、GOPHER、FTP、HTTP、HTTPS、FILE、HTTP POST、TELNET、DICT、HTTP PUT、FTP 上傳、FTP 恢復、Kerberos、基於 HTTP 的上傳、TTPS 證書、代理、Cookie、HTTP 代理隧道、使用者和密碼身份驗證等。
安裝
要使用 PHP 的 cURL 功能,您還需要使用 --with-curl[=DIR] 編譯 PHP。包含 lib 和 include 資料夾的目錄稱為 DIR。curl 資料夾(需要存在於 include 目錄中)是您應該找到 easy.h 和 curl.h 檔案的地方。lib 目錄中應該有一個名為 libcurl.a 的檔案。
要求
要在 PHP 中使用 cURL 函式,必須安裝 libcurl 庫。
- 任何版本的 PHP 都需要 libcurl 至少為 7.10.5 版。
- PHP 7.3.0 或更高版本需要 libcurl 7.15.5 或更高版本。
- 要與 PHP 8.0.0 或更高版本一起使用,libcurl 必須為 7.29.0 或更高版本。
執行時配置
php.ini 檔案中有一些設定可以修改 cURL 的工作方式。
PHP cURL 常量
PHP cURL 常量是有用的預定義值,您可以使用它們來設定設定和獲取資料。以下是一些常用常量
CURLOPT 常量
以下常量和 Curl_setopt() 用於為 cURL 會話設定選項
序號 | 常量和描述 | PHP 版本 |
---|---|---|
1 | CURLOPT_URL 要獲取的 URL。 |
3 |
2 | CURLOPT_RETURNTRANSFER 如果設定為 true,則響應將作為字串返回,而不是直接輸出。 |
4 |
3 | CURLOPT_POST 如果設定為 true,則發出 POST 請求。 |
4 |
4 | CURLOPT_POSTFIELDS 在 POST 請求中傳送的資料。 |
4 |
5 | CURLOPT_FOLLOWLOCATION 如果設定為 true,則遵循伺服器傳送的任何“Location:”標頭。 |
4 |
6 | CURLOPT_TIMEOUT 允許 cURL 函式執行的最大秒數。 |
4 |
7 | CURLOPT_SSL_VERIFYPEER 如果設定為 false,則阻止 cURL 驗證對等方的證書。 |
4 |
8 | CURLOPT_CAINFO 證書頒發機構 (CA) 捆綁包的路徑。 |
4 |
CURLINFO 常量
使用 curl_getinfo() 和以下常量,您可以獲取有關 cURL 會話的資訊
序號 | 常量和描述 | PHP 版本 |
---|---|---|
1 | CURLINFO_HTTP_CODE HTTP 響應程式碼。 |
4 |
2 | CURLINFO_CONTENT_TYPE 響應的內容型別。 |
4 |
3 | CURLINFO_TOTAL_TIME 上次傳輸的總時間。 |
4 |
CURL 錯誤常量
curl_errno() 和 curl_error() 與以下常量一起使用以處理錯誤
序號 | 常量和描述 | PHP 版本 |
---|---|---|
1 | CURLE_OK 沒有錯誤。 |
4 |
2 | CURLE_UNSUPPORTED_PROTOCOL 您傳遞給 cURL 的 URL 使用了此 libcurl 不支援的協議。 |
4 |
3 | CURLE_FAILED_INIT 非常早期的初始化程式碼失敗。 |
4 |
4 | CURLE_URL_MALFORMAT URL 格式不正確。 |
4 |
5 | CURLE_COULDNT_RESOLVE_HOST 無法解析主機。給定的遠端主機未解析。 |
4 |
函式列表
以下是一些常用的 PHP cURL 函式
序號 | 函式和描述 | PHP 版本 |
---|---|---|
1 | curl_close
關閉 cURL 會話 |
4.0.2 |
2 | curl_copy_handle
複製 cURL 控制代碼及其所有首選項 |
5 |
3 | curl_errno
返回最後一個錯誤號 |
4.0.3 |
4 | curl_error
返回一個包含當前會話的最後一個錯誤的字串 |
4.0.3 |
5 | curl_escape
對給定字串進行 URL 編碼 |
5.5.0 |
6 | curl_exec
執行 cURL 會話 |
4.0.2 |
7 | curl_getinfo
獲取有關特定傳輸的資訊 |
4.0.4 |
8 | curl_init
初始化 cURL 會話 |
4.0.2 |
9 | curl_multi_add_handle
將普通 cURL 控制代碼新增到 cURL 多控制代碼 |
5 |
10 | curl_multi_close
關閉一組 cURL 控制代碼 |
5 |
11 | curl_multi_errno
返回最後一個多 cURL 錯誤號 |
7.1.0 |
12 | curl_multi_exec
運行當前 cURL 控制代碼的子連線 |
5 |
13 | curl_multi_getcontent
如果設定了 CURLOPT_RETURNTRANSFER,則返回 cURL 控制代碼的內容 |
5 |
14 | curl_multi_info_read
獲取有關當前傳輸的資訊 |
5 |
15 | curl_multi_init
返回一個新的 cURL 多控制代碼 |
5 |
16 | curl_multi_remove_handle
從一組 cURL 控制代碼中刪除多控制代碼 |
5 |
17 | curl_multi_select
等待任何 curl_multi 連線上的活動 |
5 |
18 | curl_multi_setopt
設定 cURL 多選項 |
5.5.0 |
19 | curl_multi_strerror
返回描述錯誤程式碼的字串 |
5.5.0 |
20 | curl_pause
暫停和取消暫停連線 |
5.5.0 |
21 | curl_reset
重置 libcurl 會話控制代碼的所有選項 |
5.5.0 |
22 | curl_setopt_array
為 cURL 傳輸設定多個選項 |
5.1.3 |
23 | curl_setopt
為 cURL 傳輸設定選項 |
4.0.2 |
24 | curl_share_close
關閉 cURL 共享控制代碼 |
5.5.0 |
25 | curl_share_errno
返回上一個共享curl錯誤號 |
7.1.0 |
26 | curl_share_init
初始化一個cURL共享控制代碼 |
5.5.0 |
27 | curl_share_setopt
為cURL共享控制代碼設定選項 |
5.5.0 |
28 | curl_share_strerror
返回描述給定錯誤程式碼的字串 |
7.1.0 |
29 | curl_strerror
返回描述給定錯誤程式碼的字串 |
5.5.0 |
30 | curl_unescape
解碼給定的URL編碼字串 |
5.5.0 |
31 | curl_upkeep
執行任何連線維護檢查 |
8.2.0 |
32 | curl_version
獲取cURL版本資訊 |
4.0.2 |
使用案例
這些函式是PHP程式管理響應並向Web傳送請求所必需的。在與API互動、下載檔案和抓取網頁時,它們非常有用。