Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.10.2009, 17:01   #1
daniel47
Новичок
Джуниор
 
Регистрация: 05.10.2009
Сообщений: 8
Вопрос встроить BBCodes

Здравствуйте.
Люди добрые, прошу у вас помощи...

Имеется движок php гостевой, слегка кривой, но ничего, работает нормально. Но мне очень нужно вставить туда несколько BB кодов, такие как: жирный шрифт, курсив, цвет текста, размер текста, вставка изображений и вывести панельку возле ввода сообщения. В основном, самое важное - изображение.
Читал где-то, что такое возможно делать, даже очень легко, но не понял как Кто-нибудь смог бы мне помочь с этим?

Извините, случайно создал тему в этом разделе, перенесите пожалуйста

Последний раз редактировалось daniel47; 05.10.2009 в 17:07.
daniel47 вне форума Ответить с цитированием
Старый 05.10.2009, 17:27   #2
wall66
Участник клуба
 
Аватар для wall66
 
Регистрация: 04.10.2008
Сообщений: 1,485
По умолчанию

Цитата:
Сообщение от daniel47 Посмотреть сообщение
Читал где-то, что такое возможно делать, даже очень легко, но не понял как
спросите у тех кто эту чушь написал...

простейшее что вы можете сделать - встроить визуальный редактор, если будете в точности следовать приложенным инструкциям, но тут нам нечем помочь
о безопасности при этом и речи быть не может
свободен...
wall66 вне форума Ответить с цитированием
Старый 05.10.2009, 17:44   #3
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,160
По умолчанию

ну самое простое так:

PHP код:
function bb_replace($st) {
    
$st str_replace("\n","<br />",$st);
    
$st str_replace("[b]","<b>",$st);
    
$st str_replace("[/b]","</b>",$st);
    
$st str_replace("[i]","<i>",$st);
    
$st str_replace("[/i]","</i>",$st);
    
$st str_replace("[u]","<u>",$st);
    
$st str_replace("[/u]","</u>",$st);
    return 
$st;

соответственно на самой форме необходим ява-скрипт... который будет вставлять данные символы
ADSoft вне форума Ответить с цитированием
Старый 05.10.2009, 20:29   #4
daniel47
Новичок
Джуниор
 
Регистрация: 05.10.2009
Сообщений: 8
По умолчанию

Цитата:
Сообщение от ADSoft Посмотреть сообщение
ну самое простое так:

PHP код:
function bb_replace($st) {
    
$st str_replace("\n","<br />",$st);
    
$st str_replace("[b]","<b>",$st);
    
$st str_replace("[/b]","</b>",$st);
    
$st str_replace("[i]","<i>",$st);
    
$st str_replace("[/i]","</i>",$st);
    
$st str_replace("[u]","<u>",$st);
    
$st str_replace("[/u]","</u>",$st);
    return 
$st;

соответственно на самой форме необходим ява-скрипт... который будет вставлять данные символы
Тоесть, ребята, о встроении таких тегах, как img, можно не мечтать?\

Последний раз редактировалось daniel47; 05.10.2009 в 20:31.
daniel47 вне форума Ответить с цитированием
Старый 05.10.2009, 20:34   #5
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Если мне не изменяет память:
PHP код:
$st str_replace("[IMG]","<IMG SRC=""",$st);
$st str_replace("[/IMG]",""">",$st); 
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 05.10.2009, 21:54   #6
scray
 
Регистрация: 06.05.2009
Сообщений: 6
По умолчанию

PHP код:
function bb_codes ($text)
{
  
//Определение тэгов как bb_code
 
$bb_codes = array ( "[b]"=> "<b>",
                     
"[/b]" => "</b>",
                     
"[i]" => "<i>",
                     
"[/i]" => "</i>"
                     
"[img]" => "<img src='",
                   );
 
$text strtr($text,$bb_codes);
 return 
$text;


можно и так сделать ,но существенной разницы нет, используйте что нравится больше)
www.vfifa.ru - Онлайн Карьера и турниры по FIFA

Последний раз редактировалось scray; 05.10.2009 в 22:04.
scray вне форума Ответить с цитированием
Старый 05.10.2009, 21:55   #7
scray
 
Регистрация: 06.05.2009
Сообщений: 6
По умолчанию

хм...странно что то...так много пробелов появилось в коде
www.vfifa.ru - Онлайн Карьера и турниры по FIFA

Последний раз редактировалось scray; 05.10.2009 в 21:58.
scray вне форума Ответить с цитированием
Старый 05.10.2009, 23:10   #8
daniel47
Новичок
Джуниор
 
Регистрация: 05.10.2009
Сообщений: 8
По умолчанию

Ребята, извиняюсь за глупые вопросы, не силен в php, но хочу добить уже эти BB codes

В общем, прошу очень ответить на вопросы:

вот это конечный код, правильно ли я все соединил?

Цитата:
function bb_replace($st) {
$st = str_replace("\n","<br />",$st);
$st = str_replace("","<b>",$st);
$st = str_replace("
","</b>",$st);
$st = str_replace("","<i>",$st);
$st = str_replace("
","</i>",$st);
$st = str_replace("","<u>",$st);
$st = str_replace("
","</u>",$st);
$st = str_replace("[IMG]","<IMG SRC=""",$st);
$st = str_replace("[/IMG]",""">",$st);
return $st;
}
вопрос второй: в каком именно документе это прописать? В index.php?
вопрос третий: покажите на примере javascript вставки одного когда, например bold text, как это сделать рабочим. (Ну, кликабельным кнопочку сделать Bold например)

Большое спасибо, еще раз извиняюсь за глупые вопросы)

Последний раз редактировалось daniel47; 05.10.2009 в 23:15.
daniel47 вне форума Ответить с цитированием
Старый 05.10.2009, 23:52   #9
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,551
По умолчанию

Выкиньте вы этот пример, так делать нельзя, не безопасно.
Вот, как пример:
PHP код:
function bb_replace ($str)
{
    
$str nl2br (htmlspecialchars ($strENT_QUOTES));
    
$str preg_replace ('#\\[b](.*?)\\[/b]#i''<b>$1</b>'$str); // [B]...[/B]
    
$str preg_replace ('#\\[i](.*?)\\[/i]#i''<i>$1</i>'$str); // [I]...[/I]
    
$str preg_replace ('#\\[img]http://(.*?)\\[/img]#i''<img src="http://$1" alt="Image" />'$str); // [IMG]...[/IMG]
    
...
    return 
$str;

Однако и это не самый лучший способ, т.к. можно нарушить порядок вложенности тегов, к примеру: "[b ]test1[i ]test2[/b ][/i ]".
Работать будет, но порядок будет не корректным.
Что бы от этого избавиться, проще написать свой парсер входной строки, а не использовать регулярные выражения и, тем более, простую замену.

Последний раз редактировалось Arigato; 05.10.2009 в 23:55.
Arigato вне форума Ответить с цитированием
Старый 06.10.2009, 00:58   #10
daniel47
Новичок
Джуниор
 
Регистрация: 05.10.2009
Сообщений: 8
По умолчанию

Цитата:
Сообщение от Arigato Посмотреть сообщение
Выкиньте вы этот пример, так делать нельзя, не безопасно.
Вот, как пример:
PHP код:
function bb_replace ($str)
{
    
$str nl2br (htmlspecialchars ($strENT_QUOTES));
    
$str preg_replace ('#\\[b](.*?)\\[/b]#i''<b>$1</b>'$str); // [B]...[/B]
    
$str preg_replace ('#\\[i](.*?)\\[/i]#i''<i>$1</i>'$str); // [I]...[/I]
    
$str preg_replace ('#\\[img]http://(.*?)\\[/img]#i''<img src="http://$1" alt="Image" />'$str); // [IMG]...[/IMG]
    
...
    return 
$str;

Однако и это не самый лучший способ, т.к. можно нарушить порядок вложенности тегов, к примеру: "[b ]test1[i ]test2[/b ][/i ]".
Работать будет, но порядок будет не корректным.
Что бы от этого избавиться, проще написать свой парсер входной строки, а не использовать регулярные выражения и, тем более, простую замену.
Хорошо, попробую это. Можно узнать яваскрипт, который будет легко добавлять код, а то вручную как-то не очень
daniel47 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужно встроить в магазин скрипт Fr_DWARF Фриланс 2 05.07.2009 10:48
BBcodes panel spein PHP 1 19.04.2009 15:21
Встроить дизайн в цмс Electro-yozh WordPress и другие CMS 1 09.04.2009 14:31
Как встроить код на С++ в Builder Diman2008 C++ Builder 10 16.01.2008 14:47