Парсер
Парсер - это такая хитрая программа, которая помогает пользователям создавать посты и комментарии. Он удаляет ненужные теги и обрабатывает нужные, а также производит ряд специальных замен.
Содержание
Чудо-замены
Ссылки
- URL-ы, встречающиеся в тексте, заменяются на конструкцию <a href="url">описание</a>, где "описание" - это либо URL целиком, либо его часть, в случае длинного url-a.
- Все ссылки на ricn.ru меняются на goatse.cx. Когда-то это всем казалось очень остроумным, теперь же актуальность этой замены утратилась, уступив место исторической ценности. Также не следовало на эти сайты ходить на работе, в публичных местах и дома при детях. Теперь можно — ходите, нам не жалко.
Символы
- Конструкции (c), (tm), (r) заменяются на ©, ™ и ® соответственно.
- Три и более символа ".", идущих подряд, заменяются на символ "многоточие".
- Смайлы вида =), =(, %), %( с любым количеством скобок заменяются на :) и :( соответственно. Авторам таких смайлов вычитается 5-7 очков кармы (в абстрактном смысле, а не в том, что вы подумали). По этой же причине следует отделять знак процента от закрывающей скобки, если вы хотите написать что-то типа «Курс евро стал 1,33$ (увеличился на 1%)», иначе получится «(увеличился на 1:)», а не то, что вы хотели. А за корейские смайлы, на наш взгляд, следует убивать на месте, и очень жаль, что мы не можем себе этого позволить. KEKEKEKEKE ^__^
- Слово длиннее N символов (число N определяется Папой Римским, но без его ведома мы его сменили на 40) разрывается одним или несколькими пробелами для сохранения форматирования страницы.
- И, наконец, символ "-" заменяется на тире или дефис по следующим правилам:
- "-" в начале строки с последующими за ним пробельными символами заменяется на тире с одним пробелом;
- один или два символа "-", обрамленных слева и справа одним или более пробелами, заменяются на тире, обрамленное пробелами;
- В остальных случаях знак "-" заменяется на знак дефиса.
!!!!!!!!!!!!!!!
15 (пятнадцать) восклицательных знаков подряд заменяются на "! я идиот! убейте меня, кто-нибудь!". Если поискать по БД или Лепрозорию, то можно примерно оценить масштабы популярности просьбы пользователей сайта (круто, четыре родительных падежа подряд!) себя убить. Впрочем, все пока живы. Насколько мы знаем.
LOL
Комментарий, целиком состоящий из "lol", "LOL", "лол" или "ЛОЛ" заменяется на "Пару дней назад я познакомился с мальчиком и с тех пор постоянно думаю о нем. У него невероятно красивые голубые глаза, темные волосы, и огромный, толстый член, которые еле помещается в мою за… Черт, по-моему не туда пишу…". Вариант замены для пользователей женского пола до сих пор не разработан.
Кстати, использовать две последние замены не рекомендуется на БД, кроме некоторых редких случаев, о которых мы лучше умолчим.
Обход ограничений
Когда-то давно мудрые люди придумали обходить вышеупомянутые ограничения, используя парсер против самого себя: надо между восклицательными знаками или буквами Л и О вставить какой-то тег, даже пустой, например <b></b>. Однако ещё раз напомнем, что ограничения введены не только для того, чтобы их обходить (хотя это показывает ваше любопытство и находчивость), но и для соблюдения законности и порядка — да-да, даже тут.