PHP TUTORIALS
Hướng dẫn tạo domain ảo tại localhost với XAMPP trên Window Có gì mới trong PHP 8 (Tính năng, Cải tiến và Trình biên dịch JIT) Hướng dẫn viết ứng dụng kiểm tra năm sinh theo âm lịch bằng PHP Xử lý realtime trong PHP sử dụng pusher Hướng dẫn gửi mail trong PHP với PHPMailer Bóc tách dữ liệu từ trang khác bằng PHP Simple HTML DOM Parser Cách sửa lỗi hình ảnh khi đăng bài viết lên Facebook Hướng dẫn tạo thông báo realtime với pushcrew Kích thước chuẩn và cách làm FavIcon icon Tìm hiểu bản chất vòng lặp foreach trong php Những vấn đề nâng cao kỹ năng lập trình trong php Sử Dụng Vòng Lặp Xuất Dữ Liệu Bảng Tính Lương Tìm hiểu thuật toán phân trang trong php Giới hạn số trang trong thuật toán phân trang Bài 01: Đệ quy menu đa cấp với php và mysql - phần 1 Bài 02: Đệ quy menu đa cấp với php và mysql - phần 2 Tích hợp bộ search google vào website Nên dùng count() hay sizeof() để đếm số phần tử của mảng Bài 01: Lấy dữ liệu từ mysql lưu vào file excel với PHPExcel Tạo slug tự động bằng JavaScript và PHP RSS là gì? Cách Tạo RSS cho Website PHP CMS là gì? Các CMS phổ biến hiện nay (update 2024) Web động là gì? Web tĩnh là gì? Chặn referrer từ website simple-share-buttons.com Bảng mã ASCII chuẩn các hệ nhị phân - thập phân - thập lục phân Hướng dẫn tạo Facebook App để lấy App ID và Secret Key Download Facebook SDK cho PHP Mối liên hệ giữa HTML - PHP - MYSQL Tự động post bài viết lên tường với hootsuite.com Kiểm tra người dùng đã đăng nhập hay chưa bằng PHP Lấy video kênh Youtube mới nhất bằng jQuery và Youtube API V3 Đệ quy chuyên mục đa cấp trong PHP toàn tập Font Awesome là gì? Cách sử dụng Font Awesome Tích hợp đăng nhập Google vào Website Thuật toán phân trang với PHP và MySQL Cài đặt LAMP trên Fedora
CÁC CHỦ ĐỀ
BÀI MỚI NHẤT
MỚI CẬP NHẬT

RSS là gì? Cách Tạo RSS cho Website PHP

Khi Website bạn có dữ liệu lớn ở nhiều mục khác nhau dẫn đến khó theo dõi cho người dùng. Khi bạn muốn tự động cập nhật tin tức của một số website nào đó thay vì vào từng trang để lọc tin thì bạn sẽ cần một nơi có thể xem một cách nhanh nhất? Điều này sẽ được giải quyết với RSS. Vậy 'RSS là gì?' và 'Cách tạo RSS cho Website như thế nào?' thì chúng ta cùng tìm hiểu nhé.

test php

banquyen png
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

1. RSS là gì?

Theo Wiki thì RSS là một tập tin XML dùng để chia sẻ thông tin web (có thể là tin tức, dịch vụ, ...) và được dùng phổ biến ở các website lớn như 24h.com, vnexpress.net, .. Hay thâm chị là các blog Wordpress cũng có sử dụng. Với kỹ thuật RSS này người dùng có thể lấy nội dung của các website thông qua chức năng RSS của họ, điều này có nghĩa là website đó phải có sử dụng chia sẻ RSS thì bạn mới có thể sử dụng được.

Định dạng của RSS sẽ được lưu trư dạng XML và mô tả đầy đủ cho tin đó thông qua các meta-data (title, link, description). Người ta hay gọi đây là kỹ thuật RSS Feed, Webfeed, RSS stream hay RSS chanel. Hiện nay có hai Version đó là RSS 1.0RSS 2.0, mỗi version sẽ có một số cấu trúc khác nhau, bạn có thể lên trang Wiki để đọc thêm hai ví dụ này.

2. Cấu trúc file RSS 2.0

Đây là cấu trúc file RSS thông thường, tuy nhiên tùy mỗi trang họ có thể bỏ đi một số thông tin không cần thiết.

Bài viết này được đăng tại [free tuts .net]

<?xml version="1.0"?>
<rss version="2.0">
    <channel>
        <title>Tiêu đề Website</title>
        <link>http://domain.com/</link>
        <description>Mô tả website</description>
        <language>Ngôn ngữ website</language>
        <pubDate>Ngày website public</pubDate>
        <lastBuildDate>Ngày cập nhật website mới nhất</lastBuildDate>
        <docs>Đường dẫn tới file RSS</docs>
        <generator>FW, CMS tạo ra website này</generator>
        <managingEditor>Email của chủwebsite </managingEditor>
        <webMaster>Email master</webMaster>
        <item>
            <title>Tiêu đề tin</title>
            <link>Đường link của tin</link>
            <description>Mô tả của tin</description>
            <pubDate>Ngày đăng tin</pubDate>
            <guid>Đường link của tin</guid>
        </item>
    </channel>
</rss>

Trong cấu trúc này nếu website có nhiều tin item sẽ được lặp nhiều lần.

3. Cách tạo RSS cho Website PHP

Bây giờ chúng ta sẽ tìm hiểu cách tạo RSS sử dụng PHP và dữ liệu sẽ lấy từ MySQL. Trước tiên chúng ta cần tạo một bảng tin tức và thêm một số record để demo nhé.

# Tạo database news

Bạn bật PHPMYADMIN lên và chạy đoạn SQL sau:

CREATE DATABASE `rss_news`;

USE `rss_news`;

CREATE TABLE IF NOT EXISTS `news` (
  `id` INT(11) NOT NULL AUTO_INCREMENT,
  `title` VARCHAR(255) COLLATE utf8_unicode_ci DEFAULT NULL,
  `slug` VARCHAR(255) COLLATE utf8_unicode_ci DEFAULT NULL,
  `image` VARCHAR(255) COLLATE utf8_unicode_ci DEFAULT NULL,
  `description` VARCHAR(255) COLLATE utf8_unicode_ci DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=INNODB  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=4 ;

INSERT INTO `news` (`id`, `title`, `slug`, `image`, `description`) VALUES
(1, 'Bài 01: Cài đặt MySQL và tham quan PHPMyAdmin', 'cai-dat-mysql-va-tham-quan-phpmyadmin', 'https://freetuts.net/upload/tut_post/images/2015/03/04/311/hoc-mysql-cai-dat-mysql-va-tham-quan-phpmyadmin.gif', 'Trong bài đầu tiên này chúng ta sẽ tìm hiểu cách cài đặt MYSQL và tham quan sơ qua hệ quản trị CSDL MySQL'),
(2, 'Bài 02: MySQL Table Types & Storage Engines', 'mysql-table-types-storage-engines', 'https://freetuts.net/upload/tut_post/images/2015/03/04/311/hoc-mysql-cai-dat-mysql-va-tham-quan-phpmyadmin.gif', 'Trong bài này chúng ta sẽ tìm hiểu một số loại table trong mysql và storage engines. Việc nắm từng loại table này giúp bạn sử dụng một cách hiệu quả về tính performance'),
(3, 'Bài 03: MySQL Data Types', 'mysql-data-types', 'https://freetuts.net/upload/tut_post/images/2015/03/04/311/hoc-mysql-cai-dat-mysql-va-tham-quan-phpmyadmin.gif', 'Như ta biết trong SQL có một ngôn ngữ tên là T-SQL, mà đã là ngôn ngữ lập trình thì đương nhiên sẽ có các kiểu dữ liệu.');
Ok, bây giờ ta viết code PHP nhé.

# Viết code PHP tạo RSS cho website

Bây giờ bạn tạo một file rss.php và dán nội dung sau vào:

// Thiết lập cấu trúc fiel là xml
header("Content-type: text/xml");

 // Hàm chuyển đổi những ký tự đặc biệt để khỏi lỗi XML
function xml_entities($string) {
    return str_replace(
            array("&", "<", ">", '"', "'"), array("&amp;", "&lt;", "&gt;", "&quot;", "&apos;"), $string
    );
}
 
// Kết nối CSDL và lấy danh sách 10 tin mới nhất
$conn = mysqli_connect("localhost", "root", "vertrigo", "rss_news") or die("Khong the ket noi CSDL");
mysqli_set_charset($conn,"utf8");
$query = "SELECT * FROM news order by id desc";
$result = mysqli_query($conn, $query);

// Lặp dư liệu và đưa ra các items XML
$items = '';
while ($row = mysqli_fetch_array($result)) {
    $items .= '<item>';
        $items .= "<title>" . xml_entities($row['title']) . "</title>";
        $items .= "<link>" . xml_entities("https://freetuts.net/{$row['slug']}-{$row['id']}.html") . "</link>";
        $items .= "<description>" . xml_entities($row['description']) . "</description>";
        $items .= "<guid>" . xml_entities("https://freetuts.net/{$row['slug']}-{$row['id']}.html") . "</guid>";
        // Nếu bạn muốn thêm ngày tạo tin thì trong CSDL thêm một field add_date và
        // thêm dòng này:
        // $items .= "<pubDate>{$result['description']}</pubDate>";
    $items .= '</item>';
}

// Xuất thông tin website và nối $items vào
echo '<?xml version="1.0"?>
<rss version="2.0">
    <channel>
        <title> ' . xml_entities('Học lập trình online freetuts.net') . ' </title>
        <link>' . xml_entities('https://freetuts.net') . '</link>
        <description> ' . xml_entities('Freetust.net là một website học lập trình online miễn phí') . ' </description>
        <language>vi_VN</language>
        '.$items.'
    </channel>
</rss>';

Trong đó bạn cần chú ý những vấn đề sau:

  • Đoạn code header("Content-type: text/xml"); dùng để thiết lập hiển thị cho file này là dạng XML, nếu không có nó thì browser sẽ hiểu đây là file bình thường.
  • Hàm xml_entities có tác dụng chuyển đổi những ký tự đặc biệt để không bị lỗi trùng với cú pháp của XML. Nếu không sử dụng hàm này thì bạn phải sử dụng CDATA
  • Sửa lại thông tin kết nối giống với hệ thống của bạn
  • Sửa lại đường dẫn URL trong phần hiển thị items
  • Nếu website bạn có tên field khác thì nhớ sửa lại luôn nhé, đây chỉ là một ví dụ demo

Bây giờ bạn chạy file rss.php lên sẽ thấy kế quả như sau tức là đã thành công:

tao-rss-cho-website-php.png

4. Lời kết

Bài này mang tính chất tham khảo cách tạo RSS cho website nên nếu bạn sử dụng thì hãy chỉnh sửa lại thông tin cho giống với website của bạn nhé, nó cũng rất đơn giản và dễ sử dụng. Bạn có thể lên những website lớn khác để tham khảo các RSS của họ.

Cùng chuyên mục:

Hàm key_exists() trong PHP

Hàm key_exists() trong PHP

Cách sử dụng key_exists() trong PHP

Hàm mysqli_fetch_row() trong PHP

Hàm mysqli_fetch_row() trong PHP

Cách sử dụng mysqli_fetch_row() trong PHP

Hàm end() trong PHP

Hàm end() trong PHP

Cách sử dụng end() trong PHP

Hàm mysqli_field_count() trong PHP

Hàm mysqli_field_count() trong PHP

Cách sử dụng mysqli_field_count() trong PHP

Hàm count() trong PHP

Hàm count() trong PHP

Cách sử dụng count() trong PHP

Hàm mysqli_field_seek() trong PHP

Hàm mysqli_field_seek() trong PHP

Cách sử dụng mysqli_field_seek() trong PHP

Hàm compact() trong PHP

Hàm compact() trong PHP

Cách sử dụng compact() trong PHP

Hàm mysqli_field_tell() trong PHP

Hàm mysqli_field_tell() trong PHP

Cách sử dụng mysqli_field_tell() trong PHP

Hàm array_values() trong PHP

Hàm array_values() trong PHP

Cách sử dụng array_values() trong PHP

Hàm mysqli_free_result() trong PHP

Hàm mysqli_free_result() trong PHP

Cách sử dụng mysqli_free_result() trong PHP

Hàm array_unshift() trong PHP

Hàm array_unshift() trong PHP

Cách sử dụng array_unshift() trong PHP

Hàm mysqli_get_charset() trong PHP

Hàm mysqli_get_charset() trong PHP

Cách sử dụng mysqli_get_charset() trong PHP

Hàm array_shift() trong PHP

Hàm array_shift() trong PHP

Cách sử dụng array_shift() trong PHP

Hàm mysqli_get_client_stats() trong PHP

Hàm mysqli_get_client_stats() trong PHP

Cách sử dụng mysqli_get_client_stats() trong PHP

Hàm array_unique() trong PHP

Hàm array_unique() trong PHP

Cách sử dụng array_unique() trong PHP

Hàm mysqli_get_client_version() trong PHP

Hàm mysqli_get_client_version() trong PHP

Cách sử dụng mysqli_get_client_version() trong PHP

Hàm array_uintesect() trong PHP

Hàm array_uintesect() trong PHP

Cách sử dụng array_uintesect() trong PHP

Hàm mysqli_get_connection_stats() trong PHP

Hàm mysqli_get_connection_stats() trong PHP

Cách sử dụng mysqli_get_connection_stats() trong PHP

Hàm array_sum() trong PHP

Hàm array_sum() trong PHP

Cách sử dụng array_sum() trong PHP

Hàm mysqli_get_host_info() trong PHP

Hàm mysqli_get_host_info() trong PHP

Cách sử dụng mysqli_get_host_info() trong PHP

Top