หลักการทำงานของ code จะใช้การดึงข้อมูลเว็บไซต์ที่ต้องการ จากนั้นดึงข้อมูลบางส่วนมาใช้งาน ตาม tag html ที่ต้องการ
Class PHP ที่ต้องใช้งาน หลักๆ DOMDocument , DOMXpath
Class PHP ที่ต้องใช้งาน หลักๆ DOMDocument , DOMXpath
<?PHP
libxml_use_internal_errors(true);
$gold = file_get_contents('https://www.goldtraders.or.th');
$dom = new DOMDocument();
$dom->validateOnParse = true;
$dom->loadHTML($gold);
$xpath = new DOMXpath($dom);
$trs = $xpath->query("//div[contains(@id,'DetailPlace_uc_goldprices1_GoldPricesUpdatePanel')]//table/tr");
$item = array();
$gold_type=""; $gold_update="";
if(count($trs) > 0){
$update = $xpath->query("//div[contains(@id,'DetailPlace_uc_goldprices1_GoldPricesUpdatePanel')]//span[contains(@id,'DetailPlace_uc_goldprices1_lblAsTime')]");
$r=1;
foreach ($trs as $tr) {
$tds = $xpath->query("//div[contains(@id,'DetailPlace_uc_goldprices1_GoldPricesUpdatePanel')]//table//tr[$r]//td",$tr);
$gold_Item = new Gold_Item();
$c = 0;
foreach($tds as $td){
if($r==1){
if($c==0){
$gold_type = trim($td->nodeValue);
$gold_update = trim($update[0]->nodeValue);
}
}
if($r==2 ||$r==3){
if($c==0)
$gold_Item->Gold_Name = trim($td->nodeValue);
if($c==1)
$gold_Item->Price_Buy = floatvalue(trim($td->nodeValue));
if($c==2)
$gold_Item->Price_Sale = floatvalue(trim($td->nodeValue));
}
$c++;
}
if($r==2 ||$r==3){
array_push($item,$gold_Item);
}
$r++;
}
$obj =(object) array();
$obj->status="success";
$obj->Gold_Type=$gold_type;
$obj->Gold_Update=$gold_update;
$obj->Gold_Item = $item;
header('Content-Type: application/json');
echo json_encode($obj,JSON_UNESCAPED_UNICODE);
}
function floatvalue($val){
$val = str_replace(",",".",$val);
$val = preg_replace('/\.(?=.*\.)/', '', $val);
return floatval($val);
}
class Gold_Item{
public $Gold_Name;
public $Price_Buy;
public $Price_Sale;
}
?>
ความคิดเห็น
แสดงความคิดเห็น