將 curl 轉換為 PHP
curl2code 使用 cURL 擴充功能或 Guzzle 函式庫將 curl 指令轉換為 PHP 程式碼。轉換過程透過 WebAssembly 在您的瀏覽器中執行,確保完全隱私。若需類似的伺服器端語言,請參考我們的 curl 轉 Python 轉換器 或 curl 轉 Ruby。下方是實用的 PHP 範例。
如何從瀏覽器複製 curl
- 1
開啟開發者工具 (DevTools)
按下 F12 或 Ctrl+Shift+I 來開啟您的瀏覽器開發者工具。
- 2
前往網路 (Network) 分頁
點擊 Network 分頁,並執行觸發 HTTP 請求的操作。
- 3
複製為 cURL
右鍵點擊該請求 → Copy → Copy as cURL。然後將其貼在上方。
常見問題解答
什麼是 PHP cURL?
PHP 的 curl 擴充功能是 C 語言 libcurl 函式庫的封裝,提供了強大的 HTTP 客戶端功能。它支援 curl 本身支援的所有協定和功能。使用 curl_init() 初始化,使用 curl_setopt() 設定選項,並使用 curl_exec() 執行。curl2code 也支援 Guzzle 和 Requests 作為替代方案。
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 為兩者生成程式碼 — 在語言下拉選單中選擇您偏好的變體。