Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: переводы строк
 
 автор: moonfox   (17.07.2014 в 21:47)   письмо автору
 
 

есть текстареа, через нее добавляю текст в БД
все \n перевожу в <br>
при выводе инфы на клиенте, нужно чтобы все <br> оставались тегами, а все остальное было html сущностями.... как это сделать?

  Ответить  
 
 автор: confirm   (17.07.2014 в 21:54)   письмо автору
 
   для: moonfox   (17.07.2014 в 21:47)
 

Вроде бы как вам уже говорили, что htmlspecialchars перед внесением в базу, это плохо. Вы упорно продолжаете наступать на те же грабли - "все \n перевожу в <br>".

И все остальное это что?

  Ответить  
 
 автор: moonfox   (17.07.2014 в 22:02)   письмо автору
 
   для: confirm   (17.07.2014 в 21:54)
 

вы что-то не так поняли...

текстареа записывает весь текст как есть
включая и скобки <>
естесвенно переводы строк в ней идут \n
сохраняю все это используя nl2br()
в результате имею <br> в переводах строк
но при выводе на сайте мне совершенно ненужно чтобы левые теги отличные от <br> выводились
если применить htmlspecialchars то все скобки пойдут боком и <br> уже не отработает

  Ответить  
 
 автор: confirm   (17.07.2014 в 22:07)   письмо автору
 
   для: moonfox   (17.07.2014 в 22:02)
 

Это вы до сих пор не поняли.

Хотите мороки, переводите сразу \r\n в html, а не хотите, значит думайте - htmlspecialchars затрагивает \r\n ?

  Ответить  
 
 автор: moonfox   (17.07.2014 в 22:12)   письмо автору
 
   для: confirm   (17.07.2014 в 22:07)
 

да у меня в БД <br> стоит
\r\n браузер не видит как перевод строки
оно уменя строкой выдает

ну для прримера - всякие wiziwigi записывают в БД именно теги.
ну вот считайте записало все <>
но. мне ненадо выводить все теги а только <br>
остальное сущности

  Ответить  
 
 автор: confirm   (17.07.2014 в 22:17)   письмо автору
 
   для: moonfox   (17.07.2014 в 22:12)
 

Я вас про браузер не спрашиваю, я спрашивал - обрабатывает ли htmlspecialchars \r\n.
Если он их не обрабатывает, значит что нужно делать при выводе из базы? И какого черта вы третируете текст перед внесением в базу?

Речь шла не о визуальных редакторах, а о "ваших ручках шаловливых", а нормальный редактор оставит теги, но преобразует <> вложенные в тег, то есть текст.

  Ответить  
 
 автор: moonfox   (17.07.2014 в 23:35)   письмо автору
 
   для: confirm   (17.07.2014 в 22:17)
 

все в БД пишу \r\n
на сайте вывожу nl2br(htmlspecialchars());

  Ответить  
 
 автор: Deed   (18.07.2014 в 10:06)   письмо автору
 
   для: moonfox   (17.07.2014 в 23:35)
 

По моему скромному мнению, обрабатывать текст, все же, лучше перед внесением в базу. Это делается только один раз. Ибо вывод текста - гораздо более частая операция, чем его занесение в базу. Так зачем же лишний раз напрягать ресурсы сервера, обрабатывая строки при каждом их выводе?

  Ответить  
 
 автор: confirm   (18.07.2014 в 10:11)   письмо автору
 
   для: Deed   (18.07.2014 в 10:06)
 

Это не всегда удобно хранить так в базе.

  Ответить  
 
 автор: Deed   (18.07.2014 в 10:12)   письмо автору
 
   для: confirm   (18.07.2014 в 10:11)
 

Да, я про общий случай.

  Ответить  
 
 автор: Valick   (18.07.2014 в 10:14)   письмо автору
 
   для: Deed   (18.07.2014 в 10:06)
 

перед занесением эскейпировать, и не более того

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования