Tạo BBCode Đơn Giản Trong PHP
Đã lâu rồi tôi không viết 1 bài viết nào trên blog này. Tối nay, trong lúc đang ngồi code dự án downde.com tôi phải sử dụng 1 phần trong PHP mà từ trước tôi rất ít khi sử dụng. Đó là BBCode trong PHP.
BBCode là gì?
BBCode là viết tắt của Bulletin Board Code, đây là một ngôn ngữ nhỏ được thêm vào để định dạng các bài viết trên website, blog, diễn đàn. BBCode các bạn thường thấy nhiều nhất ở các diễn đàn.
Thẻ lệnh của BBCode được đóng mở bằng [ và ] thay vì HTML dùng < và >
Ý nghĩa
BBCode được đưa ra để cung cấp thêm sự an toàn, tiện lợi, và nhiều phương thức hơn để người dùng có thể dễ dàng định dạng bài viết trên các website, blog, diễn đàn.
Ngày trước, họ thường cho định dạng bài viết trên website, diễn đàn, blog bằng HTML. Với những website chỉ có người quản trị mới được tác động vào phần bài viết thì không sao. Nhưng với những website có sự tương tác giữa người dùng với website như: Bình luận trên website, diễn đàn,… mà sử dụng HTML thì rất dễ khiến giao diện website bị vỡ khi sử dụng không đúng quy tắc của HTML
Ví dụ BBCode
[b]Chữ đậm[/b] [i]Chữ nghiêng[/i] [u]Chữ gạch chân[/u]
Tạo BBCode Cơ Bản Trong PHP Như Thế Nào?
Để tạo BBCode trong PHP, tôi sẽ sử dụng hàm preg_replace. Chúng ta cùng bắt đầu nhé!
<?php function create_bbcode($text) { //BBcode $find = array( '~\[b\](.*?)\[/b\]~s', '~\[i\](.*?)\[/i\]~s', '~\[u\](.*?)\[/u\]~s', '~\[quote\](.*?)\[/quote\]~s', '~\[size=(.*?)\](.*?)\[/size\]~s', '~\[color=(.*?)\](.*?)\[/color\]~s', '~\[url\]((?:ftp|https?)://.*?)\[/url\]~s', '~\[img\](https?://.*?\.(?:jpg|jpeg|gif|png|bmp))\[/img\]~s' ); // HTML tags thay thế BBcode $replace = array( '<b>$1</b>', '<i>$1</i>', '<span style="text-decoration:underline;">$1</span>', '<pre>$1</'.'pre>', '<span style="font-size:$1px;">$2</span>', '<span style="color:$1;">$2</span>', '<a href="$1">$1</a>', '<img src="$1" alt="" />' ); // Thay thế return preg_replace($find,$replace,$text); } ?>
Sử dụng BBCode như thế nào?
<?php $content="Đây là [b]Chữ đậm[/b]. Đây là [i]chữ nghiêng[/i]. Đây là chữ [u]gạch chân[/u]"; echo create_bbcode($content); ?>
Kết quả:
Đây là Chữ đậm. Đây là chữ nghiêng. Đây là chữ gạch chân
Trên đây tôi đã hướng dẫn bạn cách tạo BBCode trong PHP. Rất đơn giản phải không các bạn!