Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Реализация BB-code 
:(
    Опции темы
scray
Дата 16.9.2009, 21:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 3.9.2009

Репутация: нет
Всего: нет



Не очень дружу с регулярками, поэтому реализовал BBcode вот так
Код

$trans = array ("" => "<b>",""=>"</b>","[center]"=>"<center>","[/center]"=>"</center>");
echo strtr("[center]Текст[/center]",$trans);

Пример 2:
Код

 $txt = "[i][В] Курсив и Жирный[/В][/i]<br>";

  $bb_code['bb'] = array ("[В]","[i]","[/В]","[/i]");
  $bb_code['tags'] = array ("<В>","<i>","</В>","</i>");

  $replace = str_replace($bb_code['bb'],$bb_code['tags'],$txt);

  echo $replace;


Рациональны ли данные способы? В чем их недостатки и чем способ с применением регулярных выражений лучше?

Признателен за ваши ответы

Это сообщение отредактировал(а) scray - 16.9.2009, 21:13
PM MAIL   Вверх
brother79
Дата 17.9.2009, 05:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 471
Регистрация: 18.8.2009

Репутация: 2
Всего: 6



$replace = preg_replace('/\[\/(?[bi])\]/i', '<$1>', $txt);

как-то так было бы на регулярка, только я постоянно путаюсь во втором пар-ре как правильно 

$1 или %1 или \1, попробуй разные вар-ты если что.


--------------------
PM MAIL WWW   Вверх
Ипатьев
Дата 17.9.2009, 09:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

Репутация: 28
Всего: 37



Цитата(scray @  16.9.2009,  21:00 Найти цитируемый пост)
В чем их недостатки и чем способ с применением регулярных выражений лучше?

Не принципиально.
В этом мире есть много вещей, которые не лучше и не хуже других. А просто примерно равноценны.
С параметризованными тегами, типа url, уже без регулярок просто не обойтись. И вопрос "что лучше" уже не встанет.
А сейчас "работает? ничего не трогай".

Если говорить о личных предпочтениях, то я бы всегда использовал по возможности строковые функции. За наглядность и однозначность.


PM MAIL   Вверх
nerezus
Дата 17.9.2009, 21:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: 12
Всего: 43



Цитата

В этом мире есть много вещей, которые не лучше и не хуже других. А просто примерно равноценны.
 Согласен. Но к регуляркам для парсинга BB-тегов это не относится, если нужна безопасность ;) Но это не предмет данной темы


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
HatcHeeS
Дата 29.12.2012, 19:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 29.12.2012

Репутация: нет
Всего: нет



Все отлично, но вот подскажите. Как быть с конструкцией такого типа:
Код

[url= ссылка] текст [/url]


тут перед мной стала не легкая задача, посколку функция preg_replace не совсем легкая для изучения. Подскажите как реализовать... Заранее благодарен
PM MAIL WWW Skype   Вверх
ksnk
Дата 29.12.2012, 21:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 96
Всего: 386



Такие ещё конструкции бывают
Код

[url]rambler.ru[/url]
[url=rambler.ru] Рамблер[/url]
[url=rambler.ru target="_blank"] Рамблер[/url]
[url url="rambler.ru" title="Сцылко на рамблер"] Рамблер[/url]

Всех их так по простому на регулярки не разложить. Нужно парсить.

Можно посмотреть как у меня сделано. Класс рабочий, но практического использования не получилось. Но вдруг пригодится ;) 




--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0532 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.