- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Что делать, если ваша email-рассылка попала в спам
10 распространенных причин и решений
Екатерина Ткаченко
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
День добрый!
Есть поле <textarea>
В него вставляю описание:
------------------------------------------------
Lorem ipsum dolor sit amet,
consectetur adipisicing elit,
sed do eiusmod tempor incididunt ut
labore et dolore magna aliqua.
Ut enim ad minim veniam, quis nostru
exercitation ullamco laboris
nisi ut aliquip ex ea commodo consequat.
------------------------------------------------
Как правильно вставлять текст в БД с сохранением переноса (клавиша ENTER) строк? И как правильно выводить отформатированный текст?
Важный момент: перед отправкой в бд, я кодирую массив функцией json_encode;
Когда вывожу текст , использую ключ $data['description'] в котором содержится этот текст. Но он не выводится. Однако, если в бд удалить перенесенные строки и оставить одну сплошную, то тест выводится. То есть я подозреваю, что нужно кодировать в одну строку. Как это сделать??
тег <br> поможет или попробуйте \r\n
Тут смотрите в чём дело-то, перенос строк в тексте не будет работать, если вы этот текст выведете внутри html. Для того, чтобы пеерносы строк получились на нужных местах - используйте функцию nl2br()
Насчёт кодирования в json_encode - не очень понял, дайте код.
Leonid H, чтобы разрыв сохранялся при выводе на страницу, обычно используют <br> или </p><p> (\r\n подойдет только с тегом pre). Можно использовать редактор вроде TinyMCE – большую часть работы он сделает за вас.
Тут смотрите в чём дело-то, перенос строк в тексте не будет работать, если вы этот текст выведете внутри html. Для того, чтобы пеерносы строк получились на нужных местах - используйте функцию nl2br()
Насчёт кодирования в json_encode - не очень понял, дайте код.
Я использовал эту функцию:
В итоге в уже в самой БД получилось:
---------------------------
Lorem ipsum dolor sit amet,<br>
consectetur adipisicing elit,<br>
sed do eiusmod tempor incididunt ut<br>
...
---------------------------
То есть в конец добавились бр. но это идет не одной строкой, как например:
---------------------
Lorem ipsum dolor sit amet,<br>consectetur adipisicing elit,<br>sed do eiusmod tempor incididunt ut<br>
----------------------
Визуально переносы строк сохраняются и в БД, как с nl2br так и без нее) только с ней добавляются в конец теги.
Сам код:
так вот description это <textarea> в форме;
---------------------------
$data = [ 'title' => $title, // string
'category' => $category, // int
'description' => $description, // string
'image' => $image, // string
'length' => $length, // int
'weight' => $weight, // int
'price' => $price, // array
'note' => $note, // string
];
$data = json_encode($data, JSON_UNESCAPED_UNICODE);
-----------------------------------------------------------------------------
Выводится одна строка. Как только в БД в ручную делаю перенос(клавиша интер) и всталвяю вторую строку, то описание не выводится. Если вручную ставлю \n то работает.
У вас MySQL просто строки \r\n портит, наверное. Используйте prepared statements когда пихаете данные в базу. Какое, кстати, у вас значение параметра magic_quotes_gpc в настройках php.ini?
Нету такой переменной.
Стоит Open Server
Смотрел тут ..modules\php\PHP-7\php.ini
и тут ..modules\php\PHP-7\PHP-7_php.ini
p.s в других версиях пхп: magic_quotes_gpc = Off
Визуально переносы строк сохраняются и в БД, как с nl2br так и без нее) только с ней добавляются в конец теги.
а зачем вам в одну строку? какая разница?
вместо nl2br можно заменять переносы на br
что-то не то.
давайте весь код вывода из базы