[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Экранирование некоторых HTML тегов
Страницы: 1, 2, 3, 4
Arh
Как на форуме работает добавление ссылок и картинок и видео и прочего, но при этом если просто написать <img src=""> то выводиться код, вместо картинки?

В базу пишется не отформатированные данные или в базу пишется данные обработанные htmlspecialchars?

Или тут дело в bbcode
Сначала данные обрабатываются htmlspecialchars, а потом регуляркой обрабатываются bb теги, а потом пишется в базу?


_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
апр
В базу следует писать как ввели текст, вдруг потом бб-коды сменятся, придется перелопачивать всю базу.
Выводить - сначала htmlspecialchars, а потом уже преобразование бб-кодов в html.
Winston
Цитата (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, то при редактировании их нужно было бы обратно преобразовывать... бред же? бред :) ИМХО.
Arh
Спасибо, я так и предполагал =)

По поводу process_BBcode(), писать свой лисапед или уже есть что то взятое за стандарт?

_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
Arh
Нашел какуюто php функцию
http://php.net/manual/ru/book.bbcode.php
Дома почитаю, тема закрыта)

_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
Winston
Когда-то был конкурс по написанию bb-cycle biggrin.gif http://phpforum.su/index.php?act=Search&CO...%EA%EE%E4%E5%F0
Invis1ble
это не функции ядра, а PECL-расширение

_____________

Профессиональная разработка на заказ

Я на GitHub | второй профиль

Arh
Invis1ble
Winston

хм, посмотрел конкурсы, где там победитель и его идеальный парсер?)

Может лучше парсить на клиенте с помощью js, наверняка какие нибудь библиотеки есть, те же визивиги как то обрабатывают свои коды wysibb например. Хотя с другой стороны, лучше один раз распарсить да закешировать.

_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
Arh
апр
но в базу то сохранять с bb кодами?

_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
sergeiss
Цитата (Arh @ 7.11.2014 - 22:43)
но в базу то сохранять с bb кодами?

Естественно. Иначе ты потом ничего не восстановишь. Тебе ж сказали уже:
Цитата (Winston @ 7.11.2014 - 19:35)
В базе все должно быть в таком виде, в котором его отправили пользователи, вся остальная обработка должна происходить при выводе. ИМХО

ППКС smile.gif

Цитата (Arh @ 7.11.2014 - 22:38)
Может лучше парсить на клиенте с помощью js,

Если ты восстанавливаешь код с ББ-кодами, взятый из БД, то лучше всё сделать на сервере.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
Arh
sergeiss
Цитата
Естественно. Иначе ты потом ничего не восстановишь. Тебе ж сказали уже:


Не, мне сказали что bb коды могут поменяться, типа сохранять в базу в html, а потом от туда вырезать всё кроме нужных html тегов

_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
Winston
Цитата (Arh @ 7.11.2014 - 20:38)
хм, посмотрел конкурсы, где там победитель и его идеальный парсер?)

По корректности работы победил этот http://phpforum.su/index.php?showtopic=31503



Спустя 55 секунд Winston написал(а):
Цитата (Arh @ 7.11.2014 - 20:58)
Не, мне сказали что bb коды могут поменяться, типа сохранять в базу в html, а потом от туда вырезать всё кроме нужных html тегов

Кто тебе такое сказал? blink.gif
Arh
sergeiss
я использую ckeditor, он по умолчанию всё в html делает, может реально проще вырезать всё кроме нужного? как бы применять выборочный htmspecialchars , вопрос как?

_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
Arh
Winston

ваше =)
Цитата
В базу следует писать как ввели текст, вдруг потом бб-коды сменятся, придется перелопачивать всю базу.


ну типа было [b][/b] а потом вдруг стало [strong][/strong]

_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
Winston
Цитата (Arh @ 7.11.2014 - 21:04)
ваше =)

Не, не мое smile.gif
Цитата (Arh @ 7.11.2014 - 21:04)
ну типа было [b][/b] а потом вдруг стало [strong][/strong]

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

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.