Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Экранирование BBCode

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
bt_corp
Отправлено: 26 Июня, 2012 - 09:14:11
Post Id



Гость


Покинул форум
Сообщений всего: 71
Дата рег-ции: Май 2010  


Помог: 0 раз(а)




На сайте работают ББ коды, нужно их экранировать чтобы когда определенный текст с bbcode был в теге [shield] [/shield] то все теги которые есть внутри этого должны отображаться как обычный текст при обработке.

Например так как здесь на форуме, но эта возможность реализована в теге code:

Как это сделать?

CODE (text):
скопировать код в буфер обмена
  1. [b]Жанр:[/b] комедія
  2. [b]Країна:[/b] США
  3.  
  4. [img]http://www.imdb.com/title/tt1636826/[/img]
  5.  
  6. [b]Кіностудія / кінокомпанія:[/b] Green Hat Films, Silver Pictures
  7. [b]Режисер:[/b] Ніна Нурізаде
  8. [b]Актори:[/b] Томас Манн, Олівер Купер, Джонатан Деніел Браун, Дакс Флейм, Кірбі Блісс Блантон
  9.  
  10. [b]Сюжет:[/b]
  11. У центрі історії троє однокласників, які вирішили влаштувати круту вечірку і прославитися на всю округу. Звісно, утримати події під контролем у них не вийшло і тусовка розростається настільки, що зупинити її вже нікому не під силу... Буде круто!
  12.  
  13. [b]Тривалість:[/b]
  14. [b]Відео: [/b]
  15.  

(Добавление)
Нашел правило которое делает то что нужно, но не работает если в тексте есть перенос на новую строку, за перенос в редакторе отвечает функция nl2br

Помогите переписать это правило чтобы работало независимо от переносов!

Разделил сущности символов потому что их не отражает форум.

CODE (htmlphp):
скопировать код в буфер обмена
  1. $text = preg_replace('~\[shield\](.+?)\[/shield\]~ie', '\'<div>\' . strtr(\'$1\', array(\'[\' => \'& #91;\', \']\' => \'& #93;\', \':\' => \'& #58;\', \'@\' => \'& #64;\')) . \'</div>\'', $text);

(Отредактировано автором: 26 Июня, 2012 - 10:28:38)



-----
Программист, это - такой человек, который сначала много думает, чтобы потом ничего не делать!
 
 Top
IllusionMH
Отправлено: 26 Июня, 2012 - 10:50:01
Post Id



Активный участник


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


Помог: 242 раз(а)




bt_corp, что такое модификатор e я не знаю, но, возможно, не хватает додификатора m для многострочного поиска
 
 Top
bt_corp
Отправлено: 26 Июня, 2012 - 11:42:48
Post Id



Гость


Покинул форум
Сообщений всего: 71
Дата рег-ции: Май 2010  


Помог: 0 раз(а)




IllusionMH пишет:
bt_corp, что такое модификатор e я не знаю, но, возможно, не хватает додификатора m для многострочного поиска


модификатор e - заставляет PHP интерпритировать второй параметр функции preg_replace как PHP код

хмм, не работает..
(Добавление)
Проблема решена! Улыбка

Разделил сущности символов потому что их не отражает форум. (убрать пробелы и будет работать)

Правило для экранирования бб кодов:
PHP:
скопировать код в буфер обмена
  1. $text = preg_replace('~\[shield\](.+?)\[/shield\]~sie', '\'<div>\' . strtr(\'$1\', array(\'[\' => \'& #91;\', \']\' => \'& #93;\', \':\' => \'& #58;\', \'@\' => \'& #64;\')) . \'</div>\'', $text);

(Отредактировано автором: 26 Июня, 2012 - 15:24:22)



-----
Программист, это - такой человек, который сначала много думает, чтобы потом ничего не делать!
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Хранение данных, их вывод и обработка »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB