Curl PHP ส่งค่า json

ตอนนี้อาจจะมีคนกำลังหาวิธี POST json ด้วย curl ของ PHP อยู่ หุหุ มาถูกที่แล้วครับ เดี๋ยวบทความนี้จะให้ตัวอย่างเกี่ยวกับการ POST json ด้วย curl กัน หลังจากที่งมๆ อยู่นาน ^^ ซึ่งผมก็จะต่อยอดจากการใช้ curl ในการดีง feed rss ที่แสดงตัวอย่างการใช้งาน curl เพื่อดึง rss มาแสดงบนเว็บครับ

เอาล่ะ เริ่มด้วยโค้ดตัวอย่างพร้อมกับอธิบายไปด้วยก็แล้วกันเดี๋ยวมันจะไปกันใหญ่

$data = array("link" => "http://www.imooh.com", "title" => "Imooh's Blog"); //ข้อมูลที่ต้องการโพส
$data_string = json_encode($data); //ทำให้เป็น json ด้วยฟังก์ชัน json_encode

$ch = curl_init('http://www.imooh.com/'); //ตรงนี้อย่าลืมเปลี่ยนเป็น url ที่ต้องการส่งค่าไปนะครับ

//ในกรณีที่ต้องการส่งเป็น method อื่น เช่น DELETE, PUT, HEAD ก็เปลี่ยนได้ที่นี่ครับ
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");

curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
    'Content-Type: application/json', //ระบุว่าค่าที่ส่งไปเป็นแบบ json
    'Content-Length: ' . strlen($data_string))  //บอกขนาดของ json ที่ส่งไปด้วย
);

$result = curl_exec($ch);
curl_close($ch);