Insane

CuDemVN.Wap.Sh

- GetSmile.Mobie.In - Diễn đàn chia sẻ Cú đêm Việt Nam
- AiChat.Wap.Sh - Diễn đàn Xtgem Việt Nam
- HamTruyen.Xtgem.Com - Blog Ham Truyện nơi hội tụ của những tín đồ mê truyện chữ
* Trang chủ >> WapMaster
Tìm Kiếm Thảo Luận
↓↓

Hướng dẫn tạo BBcode sử dụng Regular Expression và preg_replace đơn giản

Admin* RoSino18k *
* 22-11-2015
Đối với anh em CuDemVN.Wap.Sh chưa biết thì nghĩ BBCODE viết ra rất là cao siêu, nghĩ đến là không dám viết.
Nếu anh em có suy nghĩ này sẽ chỉ mãi đi tìm rồi dựa dẫm các code khác, không nên.
Hôm nay 20-11 rảnh không đi học nên ngồi muốn hướng dẫn anh em viết để anh em được hiểu rõ BBCODE là gì.

Vậy BBCODE là gì và tại sao phải dùng nó.
Theo ý kiến riêng của mình BBCODE là thay thế các câu lệnh HTML thay vào lệnh mới.
Còn vì sao phải dùng nó, như các bạn đã biết nếu chúng ta cho sử dụng HTML vào nội dung bài viết, thì đương nhiên các bạn có thể dán vào đó mã CSS có thể sai cấu trúc website, hoặc một đoạn script nào đó mà có thể chuyển hướng, khai thác tài nguyên....

Vậy tại sao lại dùng nó. tại vì nó giúp chúng ta sử dụng các thẻ tag cần thiết mà chúng ta không phải sợ bị sử dụng các thẻ khác gây ảnh hưởng, chúng ta có thể in đậm, chữ nghiêng, hình ảnh, đường link mà lại được rút gọn đi.

Rồi nói đến đây dài dòng bây giờ mình sẽ làm câu lệnh đầu tiên.

Chúng ta có thể tạo 1 files là index.php chẳng hạn và tạo cho nó 1 function.
function bbcode($noidung) {

}


ok thế là ta có 1 function bbcode. ở đây ta có hàm là công cụ chính để làm Regular Expressionpreg_replace
thế "Regular Expression" là gì *http://freetuts.net/regular-expression-la-gi-64.html
còn "preg_replace" dùng để làm gì, đó là tìm cấu trúc trong văn bản và thay thế *http://freetuts.net/ham-pregreplace-trong-php-69.html

mỗi Regular Expression đều phải có 2 dấu // để bắt đầu.
\[ => [
\] => ]
\* => *
....

tại sao lại có dấu \ trước như trên ? => vì Regular Expression yêu cầu mỗi kí tự đặc biệt thì cần phải có \ trước nó

(.*?) => chuỗi

bây giờ ta thử tạo 1 thẻ [ b ] nhé, đầu tiên ta dùng Regular Expression
function bbcode($noidung) {
// đây sẽ là đoạn chuyển đổi sang bbcode
$pattern = "/\[b\](.*?)\[\/b\]";

// đây là đoạn HTML cần chuyển
$chuoiHTML = "<b>$1</b>";

// bây giờ dùng hàm "preg_replace" để thay thế HTML thành bbcode
return preg_replace($pattern, $chuoiHTML, $text);
}

và bây giờ ta có thể gọi nó ra để sử dụng ví dụ
$noidung = bbcode("KenAn đẹp trai lai láng");
echo $noidung;

kết quả => KenAn đẹp trai lai láng.

Rồi nhưng nếu bạn muốn thêm nhiều BBCODE thì phải làm sao.
Đơn giản là bạn đưa nó vào mảng và xuất ra thôi

function bbcode($noidung) {
// đây sẽ là đoạn chuyển đổi sang bbcode
$pattern = array(
'/\[b\](.*?)\[\/b\]',
'/\[img\](.*?)\[\/img\]',
'/\[url=(.*?)\](.*?)\[\/url\]'
);

// đây là đoạn HTML cần chuyển
$chuoiHTML = array(
'<b>$1</b>',
'<img src="$1" alt="Images" />',
'<a href="$1">$2</a>'
);

// bây giờ dùng hàm "preg_replace" để thay thế HTML thành bbcode
return preg_replace($pattern, $chuoiHTML, $text);
}

nếu ở trên mảng 1 là bbcode thì mảng 2 phải theo thứ tự nhé các bạn !

Trên là kiến thức của mình hơi lủng củng tý nhưng cũng sẽ giúp các bạn có thể viết được bbcode đơn giản, và sau này sẽ tùy biến nó tốt hơn.

Bonus code tự nhận diện link cho vào BBcode URL:
function url_auto($url) {
$OutPut = $url;
$OutPut = preg_replace("#(^|[\n ])([\w]+?://[\w\#$%&~/.\-;:=,?@\[\]+]*)#is", "\1<a href=\"\2\">\2</a>", $OutPut);
$OutPut = preg_replace("#(^|[\n ])((www|ftp)\.[\w\#$%&~/.\-;:=,?@\[\]+]*)#is", "\1<a href=\"http://\2\">\2</a>", $OutPut);
$OutPut = preg_replace("#(^|[\n ])([a-z0-9&\-_.]+?)@([\w\-]+\.([\w\-\.]+\.)*[\w]+)#i", "\1<a href=\"mailto:\2@\3\">\2@\3</a>", $OutPut);
return $OutPut;
}

Sử dụng:

$text = url_auto($text);


Người viết bài: KenAn - MeFun
↑↑ Lượt xem: 472
score
Đánh giá: 4.5/ 5, 472 bình chọn
- Chia sẻ:G  T
BBCode:

Link:
+ Còn “nhiều” Lắm!
+

Share code Diễn đàn trên Xtgem Full chức năng cực chất GetSmile.Mobie.In bởi Cú Đêm Việt Nam

+

Share code PHP hiển thị thông tin khách đang online trên Site

+

Sử dụng HTML và CSS tạo hiệu ứng hiển thị mô tả khi di chuột vào hình ảnh

+

Ajax là gì? Hướng dẫn code cơ bản khi xử lý dữ liệu với jQuery Ajax

+

Share full code PHP bộ tool cài đặt và quản lý Filelist KhoTruyen365 Xtgem

preg_replace(, , )
Trang chủ Cú Đêm Việt Nam Trang Chủ[1-1-472]