[PHP nâng cao]Tạo trang xem tỷ giá ngoại tệ cập nhật từ 24h.com.vn

Xin chào các bạn! Hôm nay edu.com.vn sẽ hướng dẫn các bạn tạo trang xem tỷ giá ngoại tệ với dữ liệu được lấy từ trang 24h.com.vn thông qua Regular Expression.

LẤY NỘI DUNG, TÌM KIẾM VÀ TÁCH NỘI DUNG

Các bạn truy cập vào trang tỷ giá của 24h.com.vn thông qua địa chỉ: http://hcm.24h.com.vn/ttcb/tygia/tygia.php

Chúng ta sẽ sử dụng hàm file_get_contents() để lấy nội dung HTML của trang trên. Tiếp theo chúng ta sử dụng regular expression để tìm kiếm bảng dữ liệu tỷ giá ( đây là nội dung chính mà chúng ta cần ) và hiển thị bảng đó trên trang của chúng ta.

Đoạn code lấy dữ liệu như sau

<?php

$link = "http://hcm.24h.com.vn/ttcb/tygia/tygia.php";
$html = file_get_contents($link);

$reg = '/class="tb-giaVang">(.*?)<\/table>/s';
$match = array();
$result = preg_match($reg, $html, $match);

?>

Chúng ta có 1 mảng $match dùng để lưu trữ các giá trị mà chúng ta đã lấy được thông qua hàm preg_match() và chuỗi pattern $reg.

XUẤT DỮ LIỆU

Tiếp theo chúng ta tạo trang HTML để trang được hoàn chỉnh 😀

<!DOCTYPE html>
<html>
	<head>
		<title>Tỷ giá</title>
		<meta charset="utf-8">
	</head>
	<body>
		<div class="div_Wrapper">
			<h1>Tỷ giá cập nhật mới nhất</h1>
			<table class="tbl_TyGia" cellpadding="0" cellspacing="0" width="100%">
				<!-- Nội dung lấy được từ trang 24h tại đây -->
			</table>
		</div>
	</body>
</html>

Đoạn mã PHP dùng để hiển thị nội dung mà chúng ta đã tìm được lưu trong $match sẽ được thay thế vào phần comment trong HTML <!– Nội dung lấy được từ trang 24h tại đây –>

<?php
if($result){
	echo $match[1];
}else{
	echo "<tr><td>Không thể lấy dữ liệu từ trang 24h</td></tr>";
}
?>

Các bạn có thể định dạng lại bảng dữ liệu bằng CSS. Kết quả chạy thử trên localhost.

Kết quả lấy tỉ giá tại trang 24h.com.vn

Kết quả lấy tỉ giá tại trang 24h.com.vn

Chúc các bạn thành công!