ในการทำเว็บที่อยากให้มีการติดราคาน้ำมันในเว็บนั้นวิธีที่ง่ายๆที่สุดคือ การติดแบบ iframe แต่ก็จะประสบปัญหากับความไม่เข้ากันของ design เว็บกับราคาน้ำมัน จะเป็นการดีกว่าถ้าเราดึงข้อมูลแบบ web service มากรองเองและใส่ desing ที่เราต้องการเอง โดยใช้ CODE ไม่กี่บรรทัด
การใช้ PHP SOAP นั้นจำเป็นต้องเป็นเปิด extension=php_soap.dll ใน php.ini โดยโฮสทั่วไปก็น่าจะเปิดไว้อยู่แล้ว
ตัวอย่างข้อมูลที่ได้ (code ดึงข้อมูลปัจจุบัน)
PHP CODE จากตัวอย่าง
// สร้าง object $client = new SoapClient("http://www.pttplc.com/webservice/pttinfo.asmx?WSDL", // URL ของ webservice array( "trace" => 1, // enable trace to view what is happening "exceptions" => 0, // disable exceptions "cache_wsdl" => 0) // disable any caching on the wsdl, encase you alter the wsdl server ); // ตัวแปลที่ webservice ต้องการสำหรับ GetOilPriceResult เป็นวันเดือนปีและ ภาษา $params = array( 'Language' => "en", 'DD' => date('d'), 'MM' => date('m'), 'YYYY' => date('Y') ); // เรียกใช้ method GetOilPrice และ ใส่ตัวแปลเข้าไป $data = $client->GetOilPrice($params); //เก็บตัวแปลผลลัพธ์ที่ได้ $ob = $data->GetOilPriceResult; // เนื่องจากข้อมูลที่ได้เป็น string(ในรูปแบบ xml) จึงต้องแปลงเป็น object ให้ง่ายต่อการเข้าถึง $xml = new SimpleXMLElement($ob); // attr PRICE_DATE , PRODUCT ,PRICE //loop เพื่อแสดงผล foreach ($xml as $key =>$val) { // ถ้าไม่มีราคาก็ไม่ต้องแสดงผล เนื่องจากมีบางรายการไม่มีราคา if($val->PRICE != ''){ echo $val->PRODUCT .' '.$val->PRICE.' บาท<br>'; } }
จริงๆใน WEB SERVICE ของ PTT นั้นมีอยู่ 2 function ตาม link http://www.pttplc.com/webservice/pttinfo.asmx
สามารถเข้าไปดูว่าต้อง query อะไปได้ใน url ครับ
ตัวอย่าง SOURCE CODE
ขอบคุณครับ
ผมลองเขียนมั่งด้วย Python แล้วอยากได้ SimpleXMLElement มาก
http://mchayapol.blogspot.com/2017/04/python-web-service.html
555 แต่ละภาษาต้องเผชิญวิบากกรรมแตกต่างกันไปครับ
ขอบคุณครับ ใช้ทำโปรเจคพอดีเลย