<MyRusakov.ru />

Создание крупного проекта на Java с нуля

Создание крупного проекта на Java с нуля

Данный курс научит Вас создавать крупные проекты на Java грамотно и быстро. В курсе Вы увидите создание большой и сложной программы на Java абсолютно с нуля.

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

В рамках упражнений курса Вы параллельно со мной будете создавать свою большую программу на Java, что даст Вам необходимую практику, после которой для Вас уже не будет разницы, какого размера создавать программы.

Подробнее
Подписка

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Каким движком Вы предпочитаете пользоваться?

Форум сайта MyRusakov.ru

BBCODE парсер
29.06.2012 09:15:37 BBCODE парсер Сообщение #1
brussens

brussens

Мега-мастер

Мега-мастер

Дата регистрации:
11.10.2011 22:50:07

Сообщений: 438

Михаил, вот сегодня продолжил делать уже php парсер для своего сайта. Собственно пока что задумка легла вот на такой класс
<?php
class BBcodeParser {
public function parserString($string) {
$patterns = array();
$patterns[0] = '/\[b]/';
$patterns[1] = '/\[\/b]/';
$patterns[2] = '/\[i]/';
$patterns[3] = '/\[\/i]/';
$patterns[4] = '/\[u]/';
$patterns[5] = '/\[\/u]/';
$patterns[6] = '/\[s]/';
$patterns[7] = '/\[\/s]/';
$patterns[8] = '/\[smile]/';
$patterns[9] = '/\[\/smile]/';
$patterns[10] = '/\[a]/';
$patterns[11] = '/\[\/a]/';
$patterns[12] = '/\[sup]/';
$patterns[13] = '/\[\/sup]/';
$patterns[14] = '/\[sub]/';
$patterns[15] = '/\[\/sub]/';
$patterns[16] = '/\[h1]/';
$patterns[17] = '/\[\/h1]/';
$patterns[18] = '/\[h2]/';
$patterns[19] = '/\[\/h2]/';
$patterns[20] = '/\[h3]/';
$patterns[21] = '/\[\/h3]/';
$patterns[22] = '/\[h4]/';
$patterns[23] = '/\[\/h4]/';
$patterns[24] = '/\[h5]/';
$patterns[25] = '/\[\/h5]/';
$patterns[26] = '/\[h6]/';
$patterns[27] = '/\[\/h6]/';
$patterns[28] = '/\[img]/';
$patterns[29] = '/\[\/img]/';


$replacements = array();
$replacements[0] = "<b>";
$replacements[1] = "</b>";
$replacements[2] = "<em>";
$replacements[3] = "</em>";
$replacements[4] = "<u>";
$replacements[5] = "</u>";
$replacements[6] = "<s>";
$replacements[7] = "</s>";
$replacements[8] = "<img src='/images/smiles/";
$replacements[9] = ".gif' />";
$replacements[10] = "<a href='";
$replacements[11] = "'>ссылка</a>";
$replacements[12] = "<sup>";
$replacements[13] = "</sup>";
$replacements[14] = "<sub>";
$replacements[15] = "</sub>";
$replacements[16] = "<h1>";
$replacements[17] = "</h1>";
$replacements[18] = "<h2>";
$replacements[19] = "</h2>";
$replacements[20] = "<h3>";
$replacements[21] = "</h3>";
$replacements[22] = "<h4>";
$replacements[23] = "</h4>";
$replacements[24] = "<h5>";
$replacements[25] = "</h5>";
$replacements[26] = "<h6>";
$replacements[27] = "</h6>";
$replacements[28] = "<img src='";
$replacements[29] = "' />";


$result = preg_replace($patterns, $replacements, $string);
return $result;
}
}
?>

Подскажите, в верном направлении движусь?
И как возможно сделать парсинг для ссылок, где идёт более сложный процесс парсинга?
Заранее спасибо)
Профиль Ответить
29.06.2012 09:42:50 BBCODE парсер Сообщение #2
Admin

Admin

Администратор

Администратор

Дата регистрации:
27.05.2010 21:23:42

Сообщений: 3063

Движетесь в абсолютно верном направлении, другое дело, что для ссылок (и, например, изображений) нужно будет, возможно, подставлять атрибуты из BB-кодов. Для этого надо использовать, например, $1 (то есть подстановку из группирующей скобки). То есть выделили элемент через скобки (например, href в BB-коде) и в preg_replace() подставили. А так всё верно.
Профиль Ответить
29.06.2012 09:47:52 BBCODE парсер Сообщение #3
brussens

brussens

Мега-мастер

Мега-мастер

Дата регистрации:
11.10.2011 22:50:07

Сообщений: 438

Спасибо))) Просто после ваших уроков к использованию чужих скриптов стал полностью негативно относиться))) Мусора действительно много)))
Профиль Ответить
30.06.2012 18:08:07 BBCODE парсер Сообщение #4
brussens

brussens

Мега-мастер

Мега-мастер

Дата регистрации:
11.10.2011 22:50:07

Сообщений: 438

Михаил, сделал вот такую дополнительную защиту для BBcode парсера
public function parserQuotes($string) {
$patterns = array();
$patterns[0] = '/\"/';
$patterns[1] = '/\'/';

$replacements = array();
$replacements[0] = "&quot;";
$replacements[1] = "&apos;";


$result = preg_replace($patterns, $replacements, $string);
return $result;
}

и соответственно htmlspecialchars при получении входящих данных, как думаете, хватит такой защиты от sql иньекций?
Профиль Ответить
30.06.2012 18:21:20 BBCODE парсер Сообщение #5
Admin

Admin

Администратор

Администратор

Дата регистрации:
27.05.2010 21:23:42

Сообщений: 3063

И одного htmlspecialchars() достаточно, плюс addslashes().
Профиль Ответить
01.07.2012 02:45:08 BBCODE парсер Сообщение #6
brussens

brussens

Мега-мастер

Мега-мастер

Дата регистрации:
11.10.2011 22:50:07

Сообщений: 438

Так вот в том то и дело, что я не хочу экранировать кавычки, а просто их заменять спец выражениями для html))) По сути впринципе те же кавычки при отображении, но в исходном коде набор 4 других символов)
Профиль Ответить
13.09.2012 23:41:41 BBCODE парсер Сообщение #7
malina95

malina95

Мастер

Мастер

Дата регистрации:
15.07.2012 07:13:44

Сообщений: 208

Объясните пожалуйста как делать ббкоды и куда их вставлять и как проверять...

Очень прошу объясните!!!
Профиль Ответить
16.09.2012 02:25:10 BBCODE парсер Сообщение #8
brussens

brussens

Мега-мастер

Мега-мастер

Дата регистрации:
11.10.2011 22:50:07

Сообщений: 438

ббкод по факту является неким изменённым видом html тэгов. Например [b] это ббкод <b>. Суть работы я выкладывал в этой теме, разобраться не сложно, всё довольно понятно. Остаётся вам лищь сделать вставку самого bbcode в редакторе, который вы можете написать или посмотреть в сторону того же tinyMCE. А вообще есть одно местечко, где можно решить любую проблему - http://google.com
Профиль Ответить
16.09.2012 11:05:59 BBCODE парсер Сообщение #9
malina95

malina95

Мастер

Мастер

Дата регистрации:
15.07.2012 07:13:44

Сообщений: 208

Я знаю как они делаются...

Мне бы узнать например:

У меня есть комментарии на сайте и я хочу вставить туда кнопку КОД , кнопку Б , и кнопку И...

В какое место вставлять и шде обрабатывать ...

Короче нихрена не понимаю...Объясните пожалуйста...

А в гугле про это очень мало инфы (Есть только готовые скрипты - а куда их вставлять и где обрабатывать?)
Профиль Ответить
17.09.2012 23:22:04 BBCODE парсер Сообщение #10
brussens

brussens

Мега-мастер

Мега-мастер

Дата регистрации:
11.10.2011 22:50:07

Сообщений: 438

jquery, читайте про эту библиотеку и практикуйтесь, и поймёте, написать подходящий вам скрипт можете только вы
Профиль Ответить