Devdit
 

PHP ดึงข้อมูลจาก API มาแสดงที่เว็บไซต์

1.8K

บทความนี้สอนเขียน PHP ดึงข้อมูลจาก API เพื่อมาแสดงผลที่หน้าเว็บไซต์ เราจะได้เรียนรู้การใช้คำสั่ง file_get_contents และ curl สำหรับดึงข้อมูลจาก API ที่ต้องการ และใช้คำสั่ง json_decode แปลงข้อมูลที่ได้รับจาก API ไปเป็นข้อมูลที่ PHP สามารถนำไปใช้งานต่อได้ โดยมีรายละเอียดดังนี้

 

ตัวอย่าง สมมุติ API มีโค้ดดังนี้

<?php
    $data = array(
        array('id' => 1, 'name' => 'computer'),
        array('id' => 2, 'name' => 'notebook'),
        array('id' => 3, 'name' => 'mobile phone')
    );
    $json = json_encode($data, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);
    echo $json;
?>

ผลลัพธ์

[ 
	{ "id": 1, "name": "computer" }, 
	{ "id": 2, "name": "notebook" }, 
	{ "id": 3, "name": "mobile phone" } 
]

API นี้ให้บริการดึงข้อมูลในรูปแบบของ JSON ทั้งหมด 3 ข้อมูล สมมุติ URL ที่ให้บริการคือ localhost:8000 สามารถใช้คำสั่ง file_get_contents และ curl เพื่อดึงข้อมูลจาก API นี้ ได้ดังนี้

 

ตัวอย่าง PHP ดึงข้อมูลจาก API ด้วย file_get_contents

<?php
    $url = "http://localhost:8000";
    $json = file_get_contents($url);
    $data = json_decode($json, true);
    var_dump($data);
?>

จากตัวอย่างใช้คำสั่ง file_get_contents ดึงข้อมูลจาก API โดยเก็บค่า JSON ที่ได้รับไว้ที่ตัวแปร $json จากนั้นใช้คำสั่ง json_decode แปลงข้อมูล JSON เป็นข้อมูลที่ PHP สามารถนำไปใช้งานต่อได้

 

ตัวอย่าง PHP ดึงข้อมูลจาก API ด้วย curl

<?php
    $url = "http://localhost:8000";

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    $result = curl_exec($ch);

    if (curl_errno($ch)) {
        echo 'Error:' . curl_error($ch);
    }

    curl_close($ch);
    $data = json_decode($result, true);
    var_dump($data);
?>

จากตัวอย่างใช้คำสั่งในกลุ่ม curl เพื่อดึงข้อมูลจาก API localhost:8000 เมื่อได้ข้อมูลในรูปแบบ JSON แล้วให้ใช้คำสั่ง json_decode แปลงเป็นข้อมูลที่ PHP สามารถนำไปใช้งานต่อได้

 

สรุป บทความนี้สอนใช้คำสั่ง file_get_contents และ curl เพื่อดึงข้อมูลจาก API ด้วยภาษา PHP โดยปกติ API จะใช้การสื่อสารในรูปแบบ JSON เราจึงต้องใช้คำสั่ง json_decode เพื่อแปลงข้อมูล JSON String ที่ได้รับจาก API ไปเป็นข้อมูลที่ PHP สามารถนำไปแสดงผลที่หน้าเว็บไซต์ได้

แก้ไข 1 ปีที่แล้ว
ชอบ
ลิ้งก์
แชร์
Devdit มีช่อง YouTube แล้ว
เราสร้างวิดีโอเกี่ยวกับเทคโนโลยี ทำตามง่ายๆ