Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- /*
- Title: BBCode class
- Created by: Our
- Email: our[at]style[dot]bg
- Site: http://blog.style-bg.org
- Portfolio: http://idev.style-bg.org
- Как да използваме.
- Просто минете нужният текст през метода parse();
- Хубаво е да разгледаде форматирането и да промените HTML заместванията по Вашите нужди.
- Ако не сметнете за необходимо, просто форматирайте в CSS класовете
- .our_code и .our_quote
- Извинявам се, че обяснявам прекалено подробно, но предполагам, че класа може да се използва
- и от по-начинаещи потребители.
- */
- class bbcode {
- public function parse($text) {
- // Проверяваме дали в текста има bbcode тагове :
- $tags = preg_match("/\[(.+?)\]/",$text);
- if($tags == 0) {
- return $text; // Няма тагове, връщаме текста
- } else {
- return $this->parse_tags($text); // Имаме тагове и ги парсваме
- }
- }
- function parse_tags($text) {
- // Започваме с таговете за оформяне на текст
- $text = preg_replace("(\[b\](.+?)\[\/b\])is", '<span style="font-weight:bold">$1</span>', $text); // Bold
- $text = preg_replace("(\[i\](.+?)\[\/i\])is", '<span style="font-style:italic">$1</span>', $text); // Italic
- $text = preg_replace("(\[u\](.+?)\[\/u\])is", '<span style="text-decoration:underline">$1</span>', $text); // Underline
- $text = preg_replace("(\[font=(.+?)\](.+?)\[\/font\])", '<span style="font-family: $1;">$2</span>', $text); // Шрифт
- $text = preg_replace("(\[color=(.+?)\](.+?)\[\/color\])is", '<span style="color: $1">$2</span>', $text); // Цвят
- $text = preg_replace("(\[size=(.+?)\](.+?)\[\/size\])is", '<span style="font-size: $1px">$2</span>', $text); // Размер
- // Код и цитат
- // Тъй като най-често код и цитат са форматирани, в зависимост от дизайна на сайта, просто ще им приложим класове.
- // Можете да промените форматираето както желаете. Същото можете да направите и с горните тагове.
- $text = preg_replace("(\[code\](.+?)\[\/code\])is", '<span class="our_code">$1</span>', $text); // Код
- $text = preg_replace("(\[quote\](.+?)\[\/quote\])is", '<div class="our_quote">$1</div>', $text); // Цитат
- // Изображения
- // Забележете, че първото е изображение, подадено без височина и широчина от сорта на [img]http://site.com/kartinka.jpg[/img]
- // Второто е изображение с посочени width и height по следния начин : [img=90x60]http://site.com/kartinka.jpg[/img]
- $text = preg_replace("/\[img\](.+?)\[\/img\]/", '<img src="$1" />', $text);
- $text = preg_replace("/\[img\=([0-9]*)x([0-9]*)\](.+?)\[\/img\]/", '<img src="$3" height="$2" width="$1" />', $text);
- // Линкове
- // Първият ред е линк без зададен текст, а ввторият, линк със зададен текст от типа [url=линк]текст[/url]
- $text = preg_replace("/\[url\]([ a-zA-Z0-9\:\/\-\?\&\.\=\_\~\#\']*)\[\/url\]/", '<a class="our_link" href="$1">$1</a>', $text);
- $text = preg_replace("(\[url\=([ a-zA-Z0-9\:\/\-\?\&\.\=\_\~\#\']*)\](.+?)\[/url\])", '<a class="our_link" href="$1">$2</a>', $text);
- // Връщаме резултатите
- return $text;
- }
- }
- ?>
Advertisement
Add Comment
Please, Sign In to add comment