36 / 37 / 23
Регистрация: 31.05.2014
Сообщений: 131
1

BB коды

13.10.2014, 13:18. Показов 951. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте!
Имеется bb код к примеру
[q]Текст[/q]
При добавлении комментария соответственно добавляется на страницу вывода <q>Текст</q>, если пользователь введет [q][/q], то он ничем не заменится и выведется в таком же виде. При ответе на этот коммент у меня происходит цитирование, т.е. получается [q][q][/q][/q] Получается я цитирую bb код и все ломается.
Подскажите пожалуйста как избавиться от этой проблемы, буду очень благодарен за помощь.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.10.2014, 13:18
Ответы с готовыми решениями:

Сервисные коды S5230 все коды работают сам проверял
все коды работают сам проверял *#197328640# - Debug Screen Version Information RF Test Base...

Дан массив S(50).Вывести те символы (и их коды), коды которых кратны 5 и определить их количество.
Дан массив S(50).Вывести те символы (и их коды), коды которых кратны 5 и определить их количество.

Ввести коды ASCII N символов. Выбрать из них и вывести только коды цифр
Нужна помощь с заданием: Ввести коды ASCII N символов. Выбрать из них и вывести только коды цифр. ...

Даны два двоичных числа 10010000 и 00001001. Числа 16-е ASCII–коды и перевести их в 2-е коды
Добрый день, помогите с задачкой: Даны два двоичных числа 10010000 и 00001001. Числа 16-е...

5
101 / 100 / 51
Регистрация: 19.04.2011
Сообщений: 958
13.10.2014, 13:32 2
Если я Вас правильно понял, то Вам нужно править репарсинг BBcode.
0
36 / 37 / 23
Регистрация: 31.05.2014
Сообщений: 131
13.10.2014, 13:40  [ТС] 3
Как я понимаю, нужно как то удалять пустые bb коды и одинаковые bb коды внутри других или непарные ( или [b]),
Например жирный шрифт
"#\[b\](.+?)\[\/b\]#is"
Что делать, писать регулярку?
0
Software Engineer
287 / 250 / 52
Регистрация: 23.09.2014
Сообщений: 839
13.10.2014, 14:29 4
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
<?php /* Base namespace: Application\Libs */
namespace Application\Libs;
 
use \MvcBox;
 
class Bbparser
{
    public function bb2html($markup = '')
    {
        $markup = str_replace('&', '&', $markup);
        $markup = str_replace('<', '<', $markup);
        $markup = str_replace('>', '>', $markup);
        $preg = array(    
              // Text arrtibutes
              '~\[s\](.*?)\[\/s\]~si'                 => '<del>$1</del>',
              '~\[b\](.*?)\[\/b\]~si'                 => '<strong>$1</strong>',
              '~\[i\](.*?)\[\/i\]~si'                 => '<em>$1</em>',
              '~\[u\](.*?)\[\/u\]~si'                 => '<u>$1</u>',
              '~\[color=(.*?)\](.*?)\[\/color\]~si'   => '<span style="color:$1">$2</span>',
              
              //align
              '~\[leftfloat\](.*?)\[\/leftfloat\]~si' => '<div style="float: left">$1</div>',
              '~\[rightfloat\](.*?)\[\/rightfloat\]~si' => '<div style="float: right">$1</div>',
              '~\[center\](.*?)\[\/center\]~si'       => '<div style="text-align: center">$1</div>',
              '~\[left\](.*?)\[\/left\]~si'           => '<div style="text-align: left">$1</div>',
              '~\[right\](.*?)\[\/right\]~si'         => '<div style="text-align: right">$1</div>',
              //headers
              '~\[h1\](.*?)\[\/h1\]~si'               => '<h3>$1</h3>',
              '~\[h2\](.*?)\[\/h2\]~si'               => '<h4>$1</h4>',
              '~\[h3\](.*?)\[\/h3\]~si'               => '<h5>$1</h5>',
              '~\[h4\](.*?)\[\/h1\]~si'               => '<h6>$1</h6>',
              '~\[h5\](.*?)\[\/h2\]~si'               => '<h6>$1</h6>',
              '~\[h6\](.*?)\[\/h3\]~si'               => '<h6>$1</h6>',
        
              // [code=language][/code]
              '~\[code\](.*?)\[\/code\]~si'              => '<pre><code class="no-highlight">$1</code></pre>',         
              '~\[code=(.*?)\](.*?)\[\/code\]~si'     => '<pre><code class="$1">$2</code></pre>',               
        
              // email with indexing prevention & @ replacement
              '~\[email\](.*?)\[\/email\]~sei'         => "'<a rel=\"noindex\" href=\"mailto:'.str_replace('@', '.at.','$1').'\">'.str_replace('@', '.at.','$1').'</a>'",
              '~\[email=(.*?)\](.*?)\[\/email\]~sei'   => "'<a rel=\"noindex\" href=\"mailto:'.str_replace('@', '.at.','$1').'\">$2</a>'",
              
              // links
              '~\[url\]www\.(.*?)\[\/url\]~si'        => '<a href="http://www.$1">$1</a>',
              '~\[url\](.*?)\[\/url\]~si'             => '<a href="$1">$1</a>',
              '~\[url=(.*?)?\](.*?)\[\/url\]~si'      => '<a href="$1">$2</a>',
              // images
              '~\[img\](.*?)\[\/img\]~si'             => '<img src="$1" alt="$1"/>',
              '~\[img=(.*?)x(.*?)\](.*?)\[\/img\]~si' => '<img src="$3" alt="$3" style="width: $1px; height: $2px"/>',
              // quoting
              '~\[quote\](.*?)\[\/quote\]~si'         => '<span class="quote">$1</span>',
              '~\[quote=(?:"|"|\')?(.*?)["\']?(?:"|"|\')?\](.*?)\[\/quote\]~si'   => '<span class="quote"><strong class="src">$1:</strong>$2</span>',
        
              //new line to <br>
              '~\n~' => '<br/>',
        );
        
        return preg_replace(array_keys($preg), array_values($preg), $markup);
    }
}
Подправите/переделаете под себя и все
1
36 / 37 / 23
Регистрация: 31.05.2014
Сообщений: 131
13.10.2014, 15:05  [ТС] 5
Спасибо, но что то не вижу решения, да и еще ваш код ошибку выдает

Добавлено через 10 минут
Скачал готовый парсер
0
Software Engineer
287 / 250 / 52
Регистрация: 23.09.2014
Сообщений: 839
13.10.2014, 15:26 6
Цитата Сообщение от thedude Посмотреть сообщение
да и еще ваш код ошибку выдает
Я как бы по русски написал, что его надо править под вашу задачу)
1
13.10.2014, 15:26
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.10.2014, 15:26
Помогаю со студенческими работами здесь

Коды ошибок аэрогриль POLARIS pag 1205d, У кого есть коды ошибок на аэрогриль POLARIS
аэрогриль POLARIS pag 1205d ошибка e1 че значит?

Коды ошибок, Коды ошибок для пользователей (не для мастеров)
ОшибкаПричинаE10проблемы подачи воды. Проверьте не закрыт ли кран, не забита ли сеточка, достаточно...

BB коды!!!
Потскажите литературу или сайт где можно научится создавать ББ коды, что то типа все функции и т.д.

бб коды
имеется ссылка &lt;a href=&quot;#&quot; onclick=&quot;name=prompt('Введите адрес изображения');img(); return...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru