แปลงคำสั่ง curl เป็นโค้ด PHP - สร้างโค้ด PHP cURL พร้อมใช้งานสำหรับคำขอ API
"https://api.example.com/data", CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => "", CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => "POST", CURLOPT_POSTFIELDS => json_encode(["name" => "test"]), CURLOPT_HTTPHEADER => [ "Content-Type: application/json" ], ]); $response = curl_exec($curl); $err = curl_error($curl); curl_close($curl); if ($err) { echo "cURL Error #:" . $err; } else { echo $response; }
นี่คือคำสั่ง curl ทั่วไปที่คุณสามารถแปลงเป็นโค้ด PHP ได้:
curl https://api.example.com/users
curl -X POST -H "Content-Type: application/json" -d '{"name":"John","email":"[email protected]"}' https://api.example.com/users
curl -X PUT -H "Authorization: Bearer token123" -d '{"status":"active"}' https://api.example.com/users/1
curl -X DELETE https://api.example.com/users/1
curl -H "X-API-Key: abc123" -H "Accept: application/json" https://api.example.com/data
ส่วนขยาย cURL ของ PHP มอบวิธีที่ทรงพลังในการทำคำขอ HTTP นี่คือรูปแบบ PHP cURL ทั่วไป:
"https://api.example.com/upload", CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => "", CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => "POST", CURLOPT_POSTFIELDS => [ 'file' => $cfile ], CURLOPT_HTTPHEADER => [ "Authorization: Bearer YOUR_TOKEN_HERE" ], ]); $response = curl_exec($curl); $err = curl_error($curl); curl_close($curl); if ($err) { echo "cURL Error #:" . $err; } else { echo $response; }
"https://api.example.com/data", CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => "", CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 5, // 5 seconds timeout CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => "GET", ]); $response = curl_exec($curl); $err = curl_error($curl); $httpCode = curl_getinfo($curl, CURLINFO_HTTP_CODE); curl_close($curl); if ($err) { echo "cURL Error: " . $err; } else { if ($httpCode >= 400) { echo "HTTP Error: " . $httpCode . "\n"; echo "Response: " . $response; } else { $data = json_decode($response, true); if (json_last_error() === JSON_ERROR_NONE) { // Process JSON data print_r($data); } else { echo "JSON parsing error: " . json_last_error_msg(); echo "Raw response: " . $response; } } }
คัดลอกคำสั่ง curl ของคุณ → วางลงในช่องป้อนข้อมูล → รับโค้ด PHP cURL ที่แปลงแล้ว
true, CURLOPT_ENCODING => "", CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_HTTPHEADER => [ "Authorization: Bearer YOUR_TOKEN_HERE", "Content-Type: application/json", "Accept: application/json" ], ]; // First request curl_setopt_array($curl, $options + [ CURLOPT_URL => "https://api.example.com/users", CURLOPT_CUSTOMREQUEST => "GET", ]); $response1 = curl_exec($curl); $err1 = curl_error($curl); // Second request with the same session curl_setopt_array($curl, $options + [ CURLOPT_URL => "https://api.example.com/products", CURLOPT_CUSTOMREQUEST => "GET", ]); $response2 = curl_exec($curl); $err2 = curl_error($curl); curl_close($curl); // Process responses $users = json_decode($response1, true); $products = json_decode($response2, true);
เครื่องมือของเราจัดการตัวเลือก curl ทั่วไปเหล่านี้และแปลงเป็นโค้ด PHP cURL ที่เหมาะสม:
คำตอบ: โค้ด PHP cURL ที่สร้างขึ้นเข้ากันได้กับ PHP 5.5 ขึ้นไป สำหรับ PHP เวอร์ชันเก่ากว่า อาจต้องมีการปรับเล็กน้อย โดยเฉพาะสำหรับคลาส CURLFile ที่ใช้ในการอัปโหลดไฟล์
คำตอบ: ใช่ โค้ดที่สร้างขึ้นรวมการจัดการข้อผิดพลาดพื้นฐานสำหรับข้อผิดพลาด cURL สำหรับโค้ดการผลิต คุณอาจต้องการเพิ่มการจัดการข้อผิดพลาดที่ครอบคลุมมากขึ้นตามความต้องการเฉพาะของแอปพลิเคชันของคุณ
คำตอบ: สำหรับการตอบสนอง JSON ใช้ json_decode() เพื่อแยกวิเคราะห์การตอบสนองเป็นอาร์เรย์หรือออบเจ็กต์ PHP สำหรับรูปแบบอื่นๆ คุณสามารถประมวลผลสตริงการตอบสนองดิบตามที่ต้องการ
คำตอบ: ใช่ คุณต้องเปิดใช้งานส่วนขยาย cURL ในการติดตั้ง PHP ของคุณ การติดตั้ง PHP สมัยใหม่ส่วนใหญ่มี cURL เปิดใช้งานโดยค่าเริ่มต้น คุณสามารถตรวจสอบด้วย php -m | grep curl
ในเทอร์มินัลของคุณ
คำตอบ: สำหรับการอัปโหลดไฟล์ใน PHP คุณจะต้องใช้คลาส CURLFile เครื่องมือแปลงของเราจัดการคำสั่ง curl ที่มีตัวเลือก -F
หรือ --form
และสร้างโค้ด PHP ที่เหมาะสมโดยใช้ CURLFile
คำตอบ: ส่วนขยาย cURL ของ PHP มีตัวเลือกสำหรับการจัดการคุกกี้ เมื่อคุณแปลงคำสั่ง curl ที่รวมการจัดการคุกกี้ (โดยใช้ -b
หรือ --cookie
) เครื่องมือของเราจะสร้างโค้ด PHP ที่จัดการคุกกี้อย่างเหมาะสมโดยใช้ตัวเลือก CURLOPT_COOKIE หรือ CURLOPT_COOKIEFILE/CURLOPT_COOKIEJAR
คำตอบ: ในขณะที่ curl บรรทัดคำสั่งเหมาะสำหรับการทดสอบ API อย่างรวดเร็ว PHP cURL ช่วยให้คุณสามารถรวมคำขอ HTTP โดยตรงในแอปพลิเคชัน PHP ของคุณ การแปลง curl เป็น PHP ช่วยเชื่อมช่องว่างระหว่างการทดสอบและการนำไปใช้ในการพัฒนา PHP
การเข้าใจคำสั่ง curl มีความสำคัญสำหรับการทดสอบ API ที่มีประสิทธิภาพด้วย PHP นี่คือข้อมูลอ้างอิงอย่างรวดเร็วของตัวเลือก curl ทั่วไปที่เครื่องมือแปลงของเรารองรับ:
curl [options] [URL]
-X, --request METHOD
: Specify request method (GET, POST, PUT, DELETE, etc.)-H, --header LINE
: Add header to the request-d, --data DATA
: Send data in POST request-F, --form CONTENT
: Submit form data-u, --user USER:PASSWORD
: Server user and password-k, --insecure
: Allow insecure server connections-I, --head
: Show document info only-v, --verbose
: Make the operation more verbose-s, --silent
: Silent mode--connect-timeout SECONDS
: Maximum time for connectionเครื่องมือแปลง PHP ของเราจัดการคำสั่ง curl ที่ซับซ้อนรวมถึงหลาย headers, การตรวจสอบสิทธิ์, ข้อมูลที่ส่ง และตัวเลือกต่างๆ เพียงวางคำสั่ง curl ของคุณและรับโค้ด PHP ที่สะอาดและทันสมัยโดยใช้ส่วนขยาย cURL
เมื่อทำงานกับ PHP cURL ให้ปฏิบัติตามแนวทางที่ดีที่สุดเหล่านี้สำหรับการโต้ตอบกับ API ที่มีประสิทธิภาพและปลอดภัย:
2. ใช้ curl_setopt_array สำหรับตัวเลือกหลายรายการ
"https://api.example.com/data", CURLOPT_RETURNTRANSFER => true, CURLOPT_TIMEOUT => 30, CURLOPT_CUSTOMREQUEST => "GET", CURLOPT_HTTPHEADER => [ "Authorization: Bearer token123", "Accept: application/json" ], ]); $response = curl_exec($curl); curl_close($curl);3. ใช้การจัดการข้อผิดพลาดที่ครอบคลุม
"https://api.example.com/data", CURLOPT_RETURNTRANSFER => true, CURLOPT_TIMEOUT => 30, CURLOPT_CUSTOMREQUEST => "GET", ]); $response = curl_exec($curl); $errno = curl_errno($curl); $httpCode = curl_getinfo($curl, CURLINFO_HTTP_CODE); curl_close($curl); if ($errno) { // Handle cURL errors switch ($errno) { case CURLE_OPERATION_TIMEDOUT: echo "Request timed out"; break; case CURLE_COULDNT_CONNECT: echo "Could not connect to server"; break; default: echo "cURL error ({$errno}): " . curl_strerror($errno); } } else if ($httpCode >= 400) { // Handle HTTP errors echo "HTTP error: {$httpCode}"; } else { // Process successful response $data = json_decode($response, true); // Continue processing... }