Как на форуме работает добавление ссылок и картинок и видео и прочего, но при этом если просто написать <img src=""> то выводиться код, вместо картинки?
В базу пишется не отформатированные данные или в базу пишется данные обработанные htmlspecialchars?
Или тут дело в bbcode
Сначала данные обрабатываются htmlspecialchars, а потом регуляркой обрабатываются bb теги, а потом пишется в базу?
_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
В базу следует писать как ввели текст, вдруг потом бб-коды сменятся, придется перелопачивать всю базу.
Выводить - сначала htmlspecialchars, а потом уже преобразование бб-кодов в html.
Winston
7.11.2014 - 19:35
Цитата (Arh @ 7.11.2014 - 18:02) |
Как на форуме работает добавление ссылок и картинок и видео и прочего, но при этом если просто написать <img src=""> то выводиться код, вместо картинки?
|
Все просто, работает, примерно по такому принципу:
$text = htmlspecialchars($text);
$text = process_BBcode($text);
echo $text;
Цитата (Arh @ 7.11.2014 - 18:02) |
В базу пишется не отформатированные данные или в базу пишется данные обработанные htmlspecialchars? |
В базу пишется необработанный текст
Цитата (Arh @ 7.11.2014 - 18:02) |
Сначала данные обрабатываются htmlspecialchars, а потом регуляркой обрабатываются bb теги, а потом пишется в базу?
|
В базе все должно быть в таком виде, в котором его отправили пользователи, вся остальная обработка должна происходить при выводе. ИМХО.
Вот к примеру ты написал пост, добавил в его какие-то теги, отправил в базу. И при редактировании поста тебе отображается все также как ты и написал, а вот если бы перед добавлением в базу бб-теги были преобразованы в html, то при редактировании их нужно было бы обратно преобразовывать... бред же? бред :) ИМХО.
Спасибо, я так и предполагал =)
По поводу process_BBcode(), писать свой лисапед или уже есть что то взятое за стандарт?
_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
Нашел какуюто php функцию
http://php.net/manual/ru/book.bbcode.phpДома почитаю, тема закрыта)
_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
Winston
7.11.2014 - 21:05
Invis1ble
7.11.2014 - 21:06
Invis1ble
Winston
хм, посмотрел конкурсы, где там победитель и его идеальный парсер?)
Может лучше парсить на клиенте с помощью js, наверняка какие нибудь библиотеки есть, те же визивиги как то обрабатывают свои коды wysibb например. Хотя с другой стороны, лучше один раз распарсить да закешировать.
_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
апр
но в базу то сохранять с bb кодами?
_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
sergeiss
7.11.2014 - 22:47
Цитата (Arh @ 7.11.2014 - 22:43) |
но в базу то сохранять с bb кодами? |
Естественно. Иначе ты потом ничего не восстановишь. Тебе ж сказали уже:
Цитата (Winston @ 7.11.2014 - 19:35) |
В базе все должно быть в таком виде, в котором его отправили пользователи, вся остальная обработка должна происходить при выводе. ИМХО |
ППКС
![smile.gif](http://phpforum.su/html/emoticons/smile.gif)
Цитата (Arh @ 7.11.2014 - 22:38) |
Может лучше парсить на клиенте с помощью js, |
Если ты восстанавливаешь код с ББ-кодами, взятый из БД, то лучше всё сделать на сервере.
_____________
*
Хэлп по PHP*
Описалово по JavaScript *
Хэлп и СУБД для PostgreSQL*
Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги. *
"накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)
sergeiss
Цитата |
Естественно. Иначе ты потом ничего не восстановишь. Тебе ж сказали уже: |
Не, мне сказали что bb коды могут поменяться, типа сохранять в базу в html, а потом от туда вырезать всё кроме нужных html тегов
_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
Winston
7.11.2014 - 23:01
Цитата (Arh @ 7.11.2014 - 20:38) |
хм, посмотрел конкурсы, где там победитель и его идеальный парсер?)
|
По корректности работы победил этот
http://phpforum.su/index.php?showtopic=31503
Спустя
55 секунд Winston написал(а):
Цитата (Arh @ 7.11.2014 - 20:58) |
Не, мне сказали что bb коды могут поменяться, типа сохранять в базу в html, а потом от туда вырезать всё кроме нужных html тегов |
Кто тебе такое сказал?
sergeiss
я использую ckeditor, он по умолчанию всё в html делает, может реально проще вырезать всё кроме нужного? как бы применять выборочный htmspecialchars , вопрос как?
_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
Winston
ваше =)
Цитата |
В базу следует писать как ввели текст, вдруг потом бб-коды сменятся, придется перелопачивать всю базу. |
ну типа было [b][/b] а потом вдруг стало [strong][/strong]
_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
Winston
7.11.2014 - 23:10
Цитата (Arh @ 7.11.2014 - 21:04) |
ваше =)
|
Не, не мое
![smile.gif](http://phpforum.su/html/emoticons/smile.gif)
Цитата (Arh @ 7.11.2014 - 21:04) |
ну типа было [b][/b] а потом вдруг стало [strong][/strong] |
Ну в таком случае нужно будет решать, либо делать обратную совместимость, либо как написали перелопачивать базу.
Ну и я слабо себе представляю ситуацию, что могут смениться теги... ладно новые иногда появляются, но существующие изменяются... если такое и бывает то ооочень редко.
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.