Tạo hàm xử lý BBcode đơn giản

BBCode là bộ mã đơn giản được sử dụng để tạo phong cách hoặc định dạng văn bản. Khi văn bản chứa BBCode hiển thị ra trình duyệt, thông qua đoạn mã xử lý, các thẻ BB sẽ được thay thế bằng thẻ HTML tương ứng.

Ví dụ

[b]Chữ in đậm[/b]

Chuyển thành

<b>Chữ in đậm</b>

Sau đây là hàm xử lý BBCode đơn giản

function bbcode($text) {

// Mã BB

$search = array(

'~\[b\](.+?)\[/b\]~s',

'~\[i\](.+?)\[/i\]~s',

'~\[u\](.+?)\[/u\]~s',

'~\[quote\](.+?)\[/quote\]~s',

'~\[color=(.+)\](.+?)\[/color\]~s',

'~\[url\](.+)\[/url\]~s',

'~\[url=(.+)\](.+)\[/url\]~s',

'~\[img\](.+)\[/img\]~s'

);

// Mã HTML tương ứng

$replace = array(

'<b>$1</b>',

'<i>$1</i>',

'<span style="text-decoration:underline;">$1</span>',

'<blockquote>$1</blockquote>',

'<span style="color:$1;">$2</span>',

'<a href="$1">$1</a>',

'<a href="$1">$2</a>',

'<img src="$1" alt="" />'

);

// Thay thế các mã BB bằng các mã HTML tương ứng

return preg_replace($search, $replace, $text);

}

Cách sử dụng

$bbtext = 'Đây là [b]chữ in đậm[/b], đây là [u]chữ gạch dưới[/u] và đây là [i]chữ nghiêng[/i] với [color=red]màu đỏ[/color].';

$htmltext = bbcode($bbtext);

echo $htmltext;

Kết quả

Đây là chữ in đậm, đây là chữ gạch dưới và đây là chữ nghiêng với màu đỏ.


Nguồn: Mr Ken - Phonho.net