Chuyển đổi curl sang PHP

curl2code chuyển đổi các lệnh curl thành mã PHP bằng tiện ích mở rộng cURL hoặc thư viện Guzzle. Quá trình chuyển đổi chạy trong trình duyệt của bạn thông qua WebAssembly để đảm bảo quyền riêng tư hoàn toàn. Đối với các ngôn ngữ phía máy chủ tương tự, hãy kiểm tra trình chuyển đổi curl sang Python hoặc curl sang Ruby của chúng tôi. Dưới đây là các ví dụ PHP thực tế.

Cách sao chép curl từ trình duyệt của bạn

  1. 1

    Mở DevTools

    Nhấn F12 hoặc Ctrl+Shift+I để mở công cụ dành cho nhà phát triển của trình duyệt.

  2. 2

    Đi tới tab Network

    Nhấp vào tab Network và thực hiện hành động kích hoạt yêu cầu HTTP.

  3. 3

    Sao chép dưới dạng cURL

    Nhấp chuột phải vào yêu cầu → Sao chépCopy as cURL. Sau đó dán nó vào bên trên.

Câu hỏi thường gặp

PHP cURL là gì?

Tiện ích mở rộng curl của PHP là một trình bao (wrapper) cho thư viện C libcurl, cung cấp các khả năng HTTP client mạnh mẽ. Nó hỗ trợ hầu như tất cả các giao thức và tính năng mà chính curl hỗ trợ. Khởi tạo với curl_init(), thiết lập các tùy chọn với curl_setopt() và thực thi với curl_exec(). curl2code cũng hỗ trợ GuzzleRequests như các lựa chọn thay thế.

PHP cURL so với Guzzle so với Requests — tôi nên sử dụng cái nào?

PHP cURL là cấp thấp và được tích hợp sẵn — không cần Composer. Guzzle là HTTP client phổ biến nhất của PHP với hỗ trợ PSR-7, middleware và các yêu cầu bất đồng bộ. Requests cung cấp một API đơn giản cho các tác vụ nhanh chóng. Sử dụng Guzzle cho các dự án hiện đại, PHP cURL cho các thiết lập tối giản. Để biết các tùy chọn tương tự trong các ngôn ngữ khác, hãy xem curl sang Python.

Làm thế nào để xử lý xác thực trong PHP?

Với cURL: curl_setopt($ch, CURLOPT_HTTPHEADER, ['Authorization: Bearer token']). Đối với xác thực Basic: curl_setopt($ch, CURLOPT_USERPWD, 'user:pass'). Guzzle sử dụng 'auth' => ['user', 'pass'] hoặc 'headers' => ['Authorization' => 'Bearer token']. curl2code tự động xử lý các cờ -u và Bearer.

Làm thế nào để gửi dữ liệu form multipart trong PHP?

Với cURL: truyền một mảng vào CURLOPT_POSTFIELDS chứa new CURLFile('path') cho các tệp. Guzzle sử dụng tùy chọn 'multipart' với các mảng trường/tệp. curl2code chuyển đổi các cờ -F sang định dạng chính xác cho từng biến thể thư viện PHP.

Làm thế nào để xử lý lỗi HTTP trong PHP?

Với cURL: kiểm tra curl_errno($ch) cho các lỗi vận chuyển và phân tích trạng thái phản hồi thủ công. Guzzle ném ra RequestException khi thất bại — hãy bắt ClientException (4xx), ServerException (5xx) và ConnectException (mạng). Luôn gọi curl_close($ch) để giải phóng tài nguyên.

Làm thế nào để thực hiện các yêu cầu HTTP bất đồng bộ trong PHP?

Guzzle hỗ trợ bất đồng bộ thông qua $client->requestAsync('GET', $url) trả về một Promise. Sử dụng Promise\Utils::all() cho các yêu cầu đồng thời. Với cURL, sử dụng các hàm curl_multi_* để thực thi song song. Đối với PHP thực sự bất đồng bộ, hãy xem xét các framework ReactPHP hoặc Amp với các HTTP client của chúng.

Làm thế nào để thiết lập timeout trong PHP?

Với cURL: CURLOPT_CONNECTTIMEOUT cho kết nối và CURLOPT_TIMEOUT cho tổng thời gian yêu cầu. Guzzle chấp nhận 'connect_timeout''timeout' tính bằng giây. Những tùy chọn này ánh xạ trực tiếp tới các tùy chọn --connect-timeout--max-time của curl.

Làm thế nào để sử dụng một proxy trong PHP?

Với cURL: curl_setopt($ch, CURLOPT_PROXY, 'http://proxy:8080'). Đối với SOCKS5: thêm CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5. Guzzle sử dụng tùy chọn 'proxy' => 'http://proxy:8080'. curl2code chuyển đổi các cờ -x--proxy sang mã PHP tương ứng.

Làm thế nào để gửi một yêu cầu POST với thân JSON trong PHP?

Chuyển đổi một lệnh curl POST như curl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' URL sang PHP bằng cách sử dụng curl2code. Mã được tạo sử dụng curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data)). curl2code tự động phát hiện các cờ -d/--data với nội dung JSON và thiết lập header Content-Type phù hợp trong mã cURL.

Làm thế nào để thêm xác thực Bearer token trong PHP?

Cung cấp curl -H "Authorization: Bearer YOUR_TOKEN" URL cho curl2code và nó sẽ tạo mã cURL với header xác thực: curl_setopt($ch, CURLOPT_HTTPHEADER, ['Authorization: Bearer TOKEN']). curl2code phát hiện Bearer tokens từ cả hai cờ -H "Authorization: Bearer ..."--oauth2-bearer. Đối với Basic auth, hãy sử dụng -u user:pass.

Làm thế nào để thiết lập header Content-Type trong PHP?

curl2code chuyển đổi curl -H "Content-Type: application/json" URL sang mã cURL với header chính xác: curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']). Đối với dữ liệu -d, curl mặc định là application/x-www-form-urlencoded; đối với tải lên biểu mẫu -F, nó sử dụng multipart/form-data. curl2code ánh xạ từng loại tới cURL API chính xác.

PHP cURL extension vs Guzzle — tôi nên sử dụng cái nào?

PHP cURL extension (các hàm curl_*) được tích hợp sẵn trong PHP và không yêu cầu thêm thư viện phụ thuộc — lý tưởng cho các yêu cầu đơn giản hoặc khi bạn muốn giảm thiểu tài nguyên. Guzzle là một HTTP client đầy đủ tính năng với middleware, yêu cầu không đồng bộ, hỗ trợ PSR-7/PSR-18 và tự động thử lại. Sử dụng cURL cho các script nhẹ, Guzzle cho các ứng dụng phức tạp. curl2code tạo mã cho cả hai — hãy chọn biến thể bạn muốn trong menu thả xuống ngôn ngữ.

Liên kết hữu ích

Hướng dẫn curl

Chuyển đổi curl sang các ngôn ngữ khác