將 curl 轉換為 PHP

curl2code 使用 cURL 擴充功能或 Guzzle 函式庫將 curl 指令轉換為 PHP 程式碼。轉換過程透過 WebAssembly 在您的瀏覽器中執行,確保完全隱私。若需類似的伺服器端語言,請參考我們的 curl 轉 Python 轉換器curl 轉 Ruby。下方是實用的 PHP 範例。

如何從瀏覽器複製 curl

  1. 1

    開啟開發者工具 (DevTools)

    按下 F12Ctrl+Shift+I 來開啟您的瀏覽器開發者工具。

  2. 2

    前往網路 (Network) 分頁

    點擊 Network 分頁,並執行觸發 HTTP 請求的操作。

  3. 3

    複製為 cURL

    右鍵點擊該請求 → CopyCopy as cURL。然後將其貼在上方。

常見問題解答

什麼是 PHP cURL?

PHP 的 curl 擴充功能是 C 語言 libcurl 函式庫的封裝,提供了強大的 HTTP 客戶端功能。它支援 curl 本身支援的所有協定和功能。使用 curl_init() 初始化,使用 curl_setopt() 設定選項,並使用 curl_exec() 執行。curl2code 也支援 GuzzleRequests 作為替代方案。

PHP cURL vs Guzzle vs Requests — 我應該使用哪一個?

PHP cURL 是底層且內建的 — 不需要 Composer。Guzzle 是最受歡迎的 PHP HTTP 客戶端,支援 PSR-7、中介軟體(middleware)和非同步請求。Requests 為快速任務提供簡單的 API。現代專案建議使用 Guzzle,極簡設定則使用 PHP cURL。關於其他語言中的類似選項,請參閱 curl 轉 Python

如何在 PHP 中處理身份驗證?

使用 cURL:curl_setopt($ch, CURLOPT_HTTPHEADER, ['Authorization: Bearer token'])。對於基本驗證:curl_setopt($ch, CURLOPT_USERPWD, 'user:pass')。Guzzle 使用 'auth' => ['user', 'pass']'headers' => ['Authorization' => 'Bearer token']。curl2code 會自動處理 -u 和 Bearer 旗標。

如何在 PHP 中發送多部分表單資料?

使用 cURL:向 CURLOPT_POSTFIELDS 傳遞一個陣列,其中包含用於檔案的 new CURLFile('path')。Guzzle 使用 'multipart' 選項搭配欄位/檔案陣列。curl2code 會將 -F 旗標轉換為各個 PHP 函式庫變體的正確格式。

如何在 PHP 中處理 HTTP 錯誤?

使用 cURL:檢查 curl_errno($ch) 以確認傳輸錯誤,並手動解析回應狀態。Guzzle 在失敗時會拋出 RequestException — 擷取 ClientException (4xx)、ServerException (5xx) 和 ConnectException (網路)。務必呼叫 curl_close($ch) 以釋放資源。

如何在 PHP 中發送非同步 HTTP 請求?

Guzzle 透過 $client->requestAsync('GET', $url) 支援非同步,並回傳一個 Promise。使用 Promise\Utils::all() 進行併發請求。使用 cURL 時,使用 curl_multi_* 函式進行平行執行。對於真正的非同步 PHP,請考慮 ReactPHP 或 Amp 框架及其 HTTP 客戶端。

如何在 PHP 中設定逾時?

使用 cURL:CURLOPT_CONNECTTIMEOUT 用於連線逾時,CURLOPT_TIMEOUT 用於總請求時間。Guzzle 接受以秒為單位的 'connect_timeout''timeout'。這些直接對應到 curl 的 --connect-timeout--max-time 選項。

如何在 PHP 中使用代理伺服器?

使用 cURL:curl_setopt($ch, CURLOPT_PROXY, 'http://proxy:8080')。對於 SOCKS5:加入 CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5。Guzzle 使用 'proxy' => 'http://proxy:8080' 選項。curl2code 會將 -x--proxy 旗標轉換為相應的 PHP 程式碼。

如何在 PHP 中發送帶有 JSON 主體的 POST 請求?

使用 curl2code 將類似 curl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' URL 的 curl POST 指令轉換為 PHP。生成的程式碼使用 curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data))。curl2code 會自動偵測帶有 JSON 內容的 -d/--data 旗標,並在 cURL 程式碼中設置適當的 Content-Type 標頭。

如何在 PHP 中添加 Bearer 權杖授權?

curl -H "Authorization: Bearer YOUR_TOKEN" URL 傳遞給 curl2code,它會生成帶有授權標頭的 cURL 程式碼:curl_setopt($ch, CURLOPT_HTTPHEADER, ['Authorization: Bearer TOKEN'])。curl2code 會從 -H "Authorization: Bearer ..."--oauth2-bearer 旗標中偵測 Bearer 權杖。對於 Basic auth,請使用 -u user:pass

如何在 PHP 中設置 Content-Type 標頭?

curl2code 將 curl -H "Content-Type: application/json" URL 轉換為帶有正確標頭的 cURL 程式碼:curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json'])。對於 -d 數據,curl 預設為 application/x-www-form-urlencoded;對於 -F 表單上傳,它使用 multipart/form-data。curl2code 會將每一項映射到正確的 cURL API。

PHP cURL 擴充功能與 Guzzle — 我應該使用哪一個?

PHP cURL 擴充功能 (curl_* 函式) 內建於 PHP 中,不需要額外的依賴項 — 非常適合簡單的請求或當您希望最小化開銷時。Guzzle 是一個功能齊全的 HTTP 用戶端,支援中介軟體、非同步請求、PSR-7/PSR-18 支援以及自動重試。輕量級腳本請使用 cURL,複雜應用程式請使用 Guzzle。curl2code 為兩者生成程式碼 — 在語言下拉選單中選擇您偏好的變體。

實用連結

curl 指南

將 curl 轉換為其他語言