แอปพลิเคชันซอฟต์แวร์ cURL ซึ่งเป็นคำย่อของ "Client for URLs" นำเสนอชุดฟังก์ชันการทำงานที่ครอบคลุมสำหรับนักพัฒนาในการจัดการการถ่ายโอนข้อมูล ทำงานในสองโหมดที่แตกต่างกัน: อินเทอร์เฟซบรรทัดคำสั่งที่ใช้งานง่ายสำหรับการโต้ตอบพื้นฐาน และไลบรารีอันทรงพลังที่สามารถผสานรวมเข้ากับโครงการเขียนโปรแกรมได้อย่างราบรื่น
หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับสิ่งที่ Apidog มีให้สำหรับนักพัฒนาเช่นคุณ ให้คลิกปุ่มด้านล่าง!
คำจำกัดความอย่างเป็นทางการของ curl_init()
ตาม เว็บไซต์ PHP อย่างเป็นทางการ ฟังก์ชัน curl_init จะเริ่มต้นเซสชัน cURL และส่งคืนแฮนเดิล cURL เพื่อใช้กับฟังก์ชัน curl_setopt(), curl_exec() และ curl_close()
พารามิเตอร์ที่เกี่ยวข้อง
url
หากคุณระบุ URL ตัวเลือก CURLOPT_URL จะถูกตั้งค่าเป็นค่าของมัน คุณยังสามารถตั้งค่าตัวเลือกนี้ด้วยตนเองโดยใช้ฟังก์ชัน curl_setopt()
อย่างไรก็ตาม โปรดทราบว่าโปรโตคอล file ถูกปิดใช้งานโดย cURL เองหากมีการตั้งค่า open_basedir
ค่าที่ส่งคืน
ฟังก์ชัน curl_init() จะส่งคืนแฮนเดิล cURL เมื่อสำเร็จ และส่งคืน false เมื่อเกิดข้อผิดพลาด
POST Request คืออะไร?
ในบริบทของการสื่อสารทางเว็บ โปรโตคอลการถ่ายโอนข้อความหลายมิติ (HTTP) ทำหน้าที่เป็นรากฐานสำหรับการแลกเปลี่ยนข้อมูล วิธีการที่สำคัญอย่างหนึ่งที่ใช้ภายใน HTTP คือ POST request ซึ่งออกแบบมาโดยเฉพาะสำหรับการส่งข้อมูลไปยังเว็บเซิร์ฟเวอร์ เอกสารนี้เจาะลึกรายละเอียดของ POST request โดยอธิบายฟังก์ชันการทำงานและเปรียบเทียบกับคู่กันคือ GET request

คุณสมบัติหลักของ POST Requests
การส่งข้อมูล
POST requests ได้รับการออกแบบมาโดยเฉพาะเพื่อ ส่งข้อมูล ไปยังเว็บเซิร์ฟเวอร์ ข้อมูลนี้สามารถใช้เพื่อสร้างทรัพยากรใหม่ อัปเดตข้อมูลที่มีอยู่ หรือลบข้อมูล
การวางตำแหน่งข้อมูล
POST requests ส่งข้อมูลใน request body แทนที่จะรวมไว้ใน URL เอง การแยกนี้ช่วยเพิ่มความปลอดภัย โดยเฉพาะอย่างยิ่งสำหรับข้อมูลที่ละเอียดอ่อน เช่น รหัสผ่านหรือรายละเอียดบัตรเครดิต ซึ่งไม่ได้เปิดเผยใน URL
การเปลี่ยนแปลงสถานะ
POST requests มักจะส่งผลให้เกิด การปรับเปลี่ยน ที่ฝั่งเซิร์ฟเวอร์ ซึ่งอาจเกี่ยวข้องกับการสร้างบัญชีผู้ใช้ใหม่ การอัปโหลดไฟล์ การเพิ่มผลิตภัณฑ์ใหม่ลงในรถเข็น หรือการลบความคิดเห็น
ไม่สามารถแคชได้
เนื่องจาก POST requests ปรับเปลี่ยนข้อมูล เบราว์เซอร์เว็บจึงมักจะไม่ แคช ข้อมูลเหล่านั้น ซึ่งช่วยให้มั่นใจได้ว่าข้อมูลล่าสุดจะถูกส่งไปยังเซิร์ฟเวอร์เสมอ ป้องกันไม่ให้ใช้ข้อมูลที่ล้าสมัย
ตัวอย่างโค้ดของ curl_init() POST Requests
นี่คือตัวอย่างการเขียนโค้ด PHP บางส่วนที่คุณสามารถอ้างอิงได้หากคุณต้องการสร้าง POST requests ด้วยฟังก์ชัน curl_init()
ตัวอย่างที่ 1 - การส่งข้อมูลข้อความอย่างง่าย
ตัวอย่างนี้ส่งชื่อผู้ใช้และรหัสผ่านพื้นฐานไปยังสคริปต์การเข้าสู่ระบบ
<?php
$url = "https://www.example.com/login.php";
$username = "your_username";
$password = "your_password";
$data = array(
"username" => $username,
"password" => $password
);
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_POST, 1); // ตั้งค่าวิธีการร้องขอเป็น POST
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data)); // ตั้งค่าข้อมูล POST
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // ส่งคืนการตอบสนอง
$response = curl_exec($ch);
curl_close($ch);
if($response) {
echo "Login successful!";
} else {
echo "Error: " . curl_error($ch);
}
?>
คำอธิบายโค้ด:
- เรากำหนด URL เป้าหมาย ชื่อผู้ใช้ และรหัสผ่าน
- เราสร้างอาร์เรย์
$dataที่มีชื่อผู้ใช้และรหัสผ่าน - เราเริ่มต้นแฮนเดิล curl ด้วย
curl_init($url) - เราตั้งค่าวิธีการร้องขอเป็น POST โดยใช้
curl_setopt($ch, CURLOPT_POST, 1) - เราตั้งค่าข้อมูล POST โดยใช้
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data))http_build_queryแปลงอาร์เรย์ข้อมูลเป็นสตริงที่เข้ารหัส URL - เราตั้งค่า
CURLOPT_RETURNTRANSFERเป็น 1 เพื่อจับภาพการตอบสนองแทนที่จะพิมพ์โดยตรง - เราดำเนินการร้องขอด้วย
curl_exec($ch)และเก็บการตอบสนองไว้ใน$response - เราปิดแฮนเดิล curl ด้วย
curl_close($ch) - สุดท้าย เราตรวจสอบว่ามีการตอบสนองหรือไม่ และแสดงข้อความแสดงความสำเร็จหรือข้อผิดพลาด
ตัวอย่างที่ 2 - การส่งข้อมูล JSON
ตัวอย่างนี้ส่งอ็อบเจกต์ JSON ที่มีข้อมูลผู้ใช้ไปยังสคริปต์การลงทะเบียน
<?php
$url = "https://www.example.com/register.php";
$user_data = array(
"name" => "John Doe",
"email" => "john.doe@example.com",
"password" => "your_password"
);
$data_json = json_encode($user_data);
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_POST, 1); // ตั้งค่าวิธีการร้องขอเป็น POST
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_json); // ตั้งค่าข้อมูล POST เป็น JSON
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // ส่งคืนการตอบสนอง
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json', // ตั้งค่าประเภทเนื้อหาเป็น JSON
));
$response = curl_exec($ch);
curl_close($ch);
if($response) {
echo "Registration successful!";
} else {
echo "Error: " . curl_error($ch);
}
?>
คำอธิบายโค้ด:
- เรากำหนด URL เป้าหมายและอาร์เรย์ข้อมูลผู้ใช้
- เราแปลงข้อมูลผู้ใช้เป็นสตริง JSON โดยใช้
json_encode - เราเริ่มต้นแฮนเดิล curl และตั้งค่าวิธีการร้องขอเป็น POST
- เราตั้งค่าข้อมูล POST โดยใช้
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_json) - เราตั้งค่า
CURLOPT_RETURNTRANSFERเป็น 1 เพื่อจับภาพการตอบสนอง - เราตั้งค่าส่วนหัวแบบกำหนดเอง
Content-Type: application/jsonเพื่อแจ้งให้เซิร์ฟเวอร์ทราบว่าข้อมูลอยู่ในรูปแบบ JSON - เราดำเนินการร้องขอและปิดแฮนเดิล curl เช่นเดียวกับในตัวอย่างก่อนหน้า
- สุดท้าย เราตรวจสอบการตอบสนองและแสดงข้อความแสดงความสำเร็จหรือข้อผิดพลาด
ตัวอย่างที่ 3 - การตั้งค่าส่วนหัวแบบกำหนดเองและการติดตามการเปลี่ยนเส้นทาง
ตัวอย่างนี้ส่ง POST request พร้อมส่วนหัวแบบกำหนดเองและติดตามการเปลี่ยนเส้นทาง
<?php
$url = "https://www.example.com/login.php";
$data = array(
"username" => "your_username",
"password" => "your_password"
);
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_POST, 1); // ตั้งค่าวิธีการร้องขอเป็น POST
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // ส่งคืนการตอบสนอง
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Authorization: Bearer YOUR_API_KEY', // ตั้งค่าส่วนหัวแบบกำหนดเอง
));
// ติดตามการเปลี่ยนเส้นทางสูงสุด 3 ครั้ง
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_MAXREDIRS, 3);
$response = curl_exec($ch);
curl_close($ch);
if($response) {
echo "Login successful!";
} else {
echo "Error: " . curl_error($ch);
}
?>คำอธิบายโค้ด:
- เรากำหนด URL การเข้าสู่ระบบและข้อมูลผู้ใช้
- เราตั้งค่าแฮนเดิล curl และ POST request เหมือนเดิม
- เราสร้างส่วนหัวแบบกำหนดเองพร้อมโทเค็นการอนุญาตโดยใช้
CURLOPT_HTTPHEADER - เราเปิดใช้งานการติดตามการเปลี่ยนเส้นทางด้วย
CURLOPT_FOLLOWLOCATIONและจำกัดไว้ที่ 3 ด้วยCURLOPT_MAXREDIRS
หมายเหตุที่ต้องจำ
โปรดตรวจสอบให้แน่ใจว่าตัวอย่างโค้ดด้านบนไม่ได้ถูกคัดลอกและวางลงใน IDE ของคุณ เนื่องจากโค้ดเหล่านี้ถูกทำให้ง่ายขึ้นและจะต้องมีการปรับเปลี่ยนเพิ่มเติมเพื่อให้เหมาะกับความต้องการของแอปพลิเคชันของคุณ
สำหรับเอกสารอย่างเป็นทางการ คุณสามารถตรวจสอบได้ที่: https://www.php.net/manual/en/book.curl.php

Apidog - นำเข้าคำสั่ง cURL ได้อย่างง่ายดาย
Apidog เป็นแพลตฟอร์มการพัฒนา API ที่ซับซ้อน ซึ่งมอบเครื่องมือที่จำเป็นทั้งหมดให้กับผู้ใช้สำหรับวงจรชีวิต API ทั้งหมด ด้วย Apidog คุณสามารถสร้าง ดีบัก จำลอง และจัดทำเอกสาร API ทั้งหมดได้ภายในแอปพลิเคชันเดียว

มาดูวิธีที่คุณสามารถนำเข้าคำสั่ง cURL ลงใน Apidog ได้!
นำเข้าคำสั่ง cURL ลงใน Apidog ได้อย่างง่ายดาย

Apidog รองรับผู้ใช้ที่ต้องการนำเข้าคำสั่ง cURL ไปยัง Apidog ในโปรเจกต์เปล่า ให้คลิกปุ่ม + สีม่วงรอบๆ ส่วนบนซ้ายของหน้าต่าง Apidog แล้วเลือก Import cURL

คัดลอกและวางคำสั่ง cURL ลงในช่องที่แสดงบนหน้าจอของคุณ

หากสำเร็จ คุณควรจะสามารถดูคำสั่ง cURL ในรูปแบบของ API request ได้
สร้างโค้ด PHP ด้วย Apidog
หากคุณไม่มีประสบการณ์ในการเขียนโค้ดในภาษาโปรแกรม PHP ไม่ต้องกังวล! Apidog มีคุณสมบัติการสร้างโค้ดที่มอบก๊อกน้ำสำหรับภาษาต่างๆ ให้กับนักพัฒนา!

ขั้นแรก ให้ค้นหาปุ่ม </> Generate Code บน API หรือ request ใดๆ แล้วเลือก Generate Client Code ในรายการแบบเลื่อนลง

ถัดไป เลือก PHP และค้นหาส่วน cURL ตอนนี้คุณควรเห็นโค้ดที่สร้างขึ้นสำหรับ cURL สิ่งที่คุณต้องทำคือคัดลอกและวางลงใน IDE (Integrated Development Environment) ของคุณ และดำเนินการพัฒนาแอปพลิเคชันของคุณต่อไป
บทสรุป
การเรียนรู้ POST requests ด้วย curl_init() จะปลดล็อกเครื่องมืออันทรงพลังสำหรับนักพัฒนา ช่วยให้คุณสามารถส่งข้อมูลไปยังเว็บเซิร์ฟเวอร์ ทำให้สามารถดำเนินการต่างๆ เช่น การสร้างบัญชีผู้ใช้ การอัปโหลดไฟล์ และการส่งแบบฟอร์มได้ ด้วยการทำความเข้าใจแนวคิดหลักของ POST requests และฟังก์ชันการทำงานของ curl_init() คุณสามารถสร้างโซลูชันที่ปรับแต่งได้สำหรับการโต้ตอบทางเว็บต่างๆ
โปรดจำไว้ว่า curl_init() นำเสนอแนวทางที่ยืดหยุ่น ช่วยให้คุณสามารถส่งข้อมูลในรูปแบบต่างๆ ตั้งค่าส่วนหัวแบบกำหนดเอง และจัดการสถานการณ์ต่างๆ เช่น การอัปโหลดไฟล์และการเปลี่ยนเส้นทาง ด้วยความรู้ใหม่นี้ คุณสามารถใช้ POST requests เพื่อเพิ่มขีดความสามารถของเว็บแอปพลิเคชันของคุณได้อย่างมั่นใจ



