PHP – Ví Dụ Lấy Dữ Liệu Từ RSS | Share To Be Shared - Bùi Đức Hiếu

Lấy tin từ RSS

Xin chào các bạn, trong ví dụ này mình sẽ hướng dẫn các bạn cách thức lấy dữ liệu từ nguồn RSS của các website khác, cụ thể ở đây là từ RSS của trang báo dantri.com.vn

Bước 0. Chuẩn bị

– Kiến thức về RSS: tham khảo tại đây

– Cách thức xây dựng App dựa trên CMS của mình (mình sẽ bổ xung tut về chủ đề này sau nhé :D)

Bước 1: Thiết kế giao diện

Các bạn thiết kế giao diện bao gồm những thành phần sau:

view

Sự kiện Xã hội Thế giới

Tải RSS

Danh sách tin tức
STT Hình ảnh Tiêu đề Link

Bước 2: Code file Controller (test_rss.php)

class Test_rssApp extends AppObject{ public $app_name="test_rss"; public function __construct(){ parent::__construct(); } public function display(){ $this->dir_layout="admin_trananh"; $this->layout="layout_admin"; $this->view="default"; $view = isset($_REQUEST["view"])?$_REQUEST["view"]:"default"; if($view!="ajax"){ $this->view=$view; parent::display(); }else{ $task=isset($_REQUEST["task"])?$_REQUEST["task"]:"task"; switch ($task) { case "rss": $kq = $this->RSS_get(); echo json_encode($kq); break; default: break; } } } function RSS_get(){ $chude= $_REQUEST['chu_de']; $xml = ""; switch ($chude) { case "sukien": $xml = "http://dantri.com.vn/su-kien.rss"; break; case "xahoi": $xml = "http://dantri.com.vn/xa-hoi.rss"; break; case "thegioi": $xml = "http://dantri.com.vn/the-gioi.rss"; break; default: $xml = "http://dantri.com.vn/su-kien.rss"; break; } $xmlDoc = simplexml_load_file($xml); $_rs = array(); foreach($xmlDoc->channel->item as $value){ //print_r($value); $itemTitle = (string)$value->title; $itemLink = (string)$value->link; $itemDescription = (string)$value->description; $_item = array("tieude"=>$itemTitle,"mota"=>$itemDescription,"link"=>$itemLink); //echo($itemTitle); array_push($_rs,$_item); } return $_rs; } }

Bước 3: Code JS script client tại view (file default.php)

function Rss_get() { var _gui = {}; var request = $.ajax({ url: "?app=dm_hang&amp;task=tim&amp;view=ajax", // Địa chỉ file xử lý ajax request type: "POST", // Giao thức gửi data: _gui, dataType: "html" }); // Nếu gửi thành công request.done(function (ketqua) { // convert chuỗi kết quả thành mảng console.log(ketqua); var DS = $.parseJSON(ketqua); var _html = ""; for (var i = 0; i &lt; DS.length; i++) { var sv = DS[i]; _html += &#039;&#039;; _html += &#039;&#039; + (i + 1) + &#039; &#039;; _html += &#039;&#039; + sv.ma_danh_muc + &#039; &#039;; _html += &#039;&#039; + sv.ten_danh_muc + &#039; &#039;; _html += &#039;&#039;; _html += &#039;<img src="' + sv.hinh_anh + '" alt="hinhanh" width="70" height="50" />'; _html += ' '; _html += ''; _html += '</pre> <div class="btn-group dropup"> '; _html += '<i class="fa fa-bars m-r-5"></i> '; _html += ' <ul class="dropdown-menu" role="menu"> '; _html += ' <li><a href="#"><i class="fa fa-trash"></i> Xóa </a></li> '; _html += ' <li><a href="#"><i class="fa fa-lock"></i> Khóa</a></li> '; _html += ' <li><a class="btnSua" href="#"><i class="fa fa-edit"></i> Sửa</a></li> '; _html += '</ul> '; _html += '</div> <pre> '; _html += ' '; _html += ' '; } // Chèn dữ liệu vào bảng $('#tblDanhSach tbody').html(_html); }); // Nếu gửi thất bại request.fail(function (jqXHR, textStatus) { alert("Lỗi tại server: " + textStatus); }); } $(function () { $('#btn_RSS').on('click',function(){ var _chude = $('#sel_ChuDe').val(); alert(_chude); var _gui = {chu_de:_chude}; var request = $.ajax({ url: "?app=test_rss&amp;task=rss&amp;view=ajax", // Địa chỉ file xử lý ajax request type: "POST", // Giao thức gửi data: _gui, dataType: "html" }); // Nếu gửi thành công request.done(function (ketqua) { // convert chuỗi kết quả thành mảng var _rs = JSON.parse(ketqua); console.log(_rs); var _html = ''; for (var i = 0; i &lt; _rs.length; i++) { var _item = _rs[i]; _html +=&#039;&#039;; _html +=&#039;&#039;+(i+1)+&#039; &#039;; _html +=&#039;&#039;+_item.mota+&#039; &#039;; _html +=&#039;&#039;+_item.tieude+&#039; &#039;; _html +=&#039;<a href="'+_item.link+'" target="_blank" rel="noopener"> Xem</a> '; _html +=' '; } $('#tblDanhSach tbody').html(_html); }); // Nếu gửi thất bại request.fail(function (jqXHR, textStatus) { alert("Lỗi tại server: " + textStatus); }); }); });

Bước 4: Kiểm tra kết quả:

05022018 1149 PM

Source code các bạn có thể tham khảo tại đây:

https://github.com/buiduchieuvnu/php1017e/tree/thay_hieu/app/test_rss

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

Chia sẻ:

  • X
  • Facebook
Thích Đang tải...

Có liên quan

Từ khóa » đọc Rss Trong Php