<MyRusakov.ru />

Профессия Web-разработчик

Профессия Web-разработчик

Этот комплект за 8 месяцев превратит Вас в Web-разработчика с нуля. Учиться достаточно 1 час в день.

Начнёте Вы с HTML, CSS и вёрстки сайтов. Потом перейдёте к программированию и JavaScript. Затем изучите PHP, MySQL, SQL, Python. Изучите Web-фреймворки Laravel и Django. Создадите 5 своих сайтов для портфолио.

Комплект содержит:

- 540 видеоуроков

- 110 часов видео

- 1205 заданий для закрепления материала из уроков

- 5 финальных тестов

- 7 сертификатов

- 12 Бонусных курсов

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

Подпишитесь на мой канал на YouTube, где я регулярно публикую новые видео.

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

Подписавшись по 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, читайте про эту библиотеку и практикуйтесь, и поймёте, написать подходящий вам скрипт можете только вы
Профиль