Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Проблема в выводе сообщений из-за enter
Покинул форум
Сообщений всего: 44
Дата рег-ции: Июль 2011
Помог: 0 раз(а)
Делаю сообщения на сайте. Если пользователь ставит энтер, то так в БД и сохранится. Сообщения выводятся JS, так что сообщения передаю через json. Но если json будет вида:
то она не отпарситься. Что можно сделать?
Пытаюсь поймать enter и заменить на str_replace() на что-нибудь другое, а потом в js поставить enter, но ничего не получается.
Okula
Отправлено: 16 Февраля, 2012 - 23:36:55
Участник
Покинул форум
Сообщений всего: 1389
Дата рег-ции: Окт. 2010
$text=str_replace(PHP_EOL," ",$text);// заменил Enter на пробел
А можно как нибудь вставить enter, чтобы json отпарсил?
Bio man
Отправлено: 17 Февраля, 2012 - 00:03:09
Постоянный участник
Покинул форум
Сообщений всего: 2751
Дата рег-ции: Июль 2010 Откуда: Даугавпилс, Латвия
Помог: 52 раз(а)
MichaelPak, энтер это перевод строки (\n), в разных ОС может быть другим, и для этого есть константа PHP_EOL, которую можно вставить куда угодно в контексте РНР
MichaelPak
Отправлено: 17 Февраля, 2012 - 00:05:55
Новичок
Покинул форум
Сообщений всего: 44
Дата рег-ции: Июль 2011
Помог: 0 раз(а)
Bio man пишет:
MichaelPak, энтер это перевод строки (\n), в разных ОС может быть другим, и для этого есть константа PHP_EOL, которую можно вставить куда угодно в контексте РНР
Но результат в json все равно будет один и тот же.
Okula
Отправлено: 17 Февраля, 2012 - 04:47:55
Участник
Покинул форум
Сообщений всего: 1389
Дата рег-ции: Окт. 2010
Помог: 42 раз(а)
Когда ты заменишь \n на пробел у тебя уже всё будет в одну строку,какие ещё проблеммы?
Мелкий
Отправлено: 17 Февраля, 2012 - 08:30:17
Активный участник
Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009 Откуда: Россия, Санкт-Петербург
Помог: 618 раз(а)
Возможно, с моей подачи, но на этом форуме в последнее время часто мелькает константа PHP_EOL. Хочу напомнить, что это никакая не магия, а значение, статично вкомпилированное в PHP (main/php.h) и содержащее перевод строки для системы, под которой скрипт исполняется и только для неё. Т.е. Mac'овое (\r) распознавание строк под никсами (\n) не будет распознано вовсе, а от виндового (\r\n) в строке будет оставаться лишний \r.
----- PostgreSQL DBA
illy
Отправлено: 17 Февраля, 2012 - 09:15:48
Участник
Покинул форум
Сообщений всего: 1117
Дата рег-ции: Июль 2011 Откуда: от верблюда)
----- Всё гениальное - просто
И ещё проще, если ты - индиго
Okula
Отправлено: 17 Февраля, 2012 - 12:01:19
Участник
Покинул форум
Сообщений всего: 1389
Дата рег-ции: Окт. 2010
Помог: 42 раз(а)
Мелкий, я и раньше использовал эту константу. Удобнее мне так. А её значение можно изменить в php.ini
Мелкий
Отправлено: 17 Февраля, 2012 - 12:19:02
Активный участник
Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009 Откуда: Россия, Санкт-Петербург
Помог: 618 раз(а)
Okula пишет:
А её значение можно изменить в php.ini
Хде это? Сишник из меня, конечно, никакой, но в сорцах php явно указана константа. И в php.ini никаких ссылок на возможность её изменить не нашёл.
----- PostgreSQL DBA
nkl
Отправлено: 17 Февраля, 2012 - 22:17:05
Посетитель
Покинул форум
Сообщений всего: 305
Дата рег-ции: Янв. 2012
Помог: 1 раз(а)
а не проще в <textarea> добавить атрибут wrap="virtual"? Пускай ставит себе сколько хочет переносов, а в переменную все равно пойдет непереносимая строка.
Okula
Отправлено: 17 Февраля, 2012 - 22:52:01
Участник
Покинул форум
Сообщений всего: 1389
Дата рег-ции: Окт. 2010
Помог: 42 раз(а)
Мелкий, помню вроде где-то можно изменить, когда в конфигах ковырялся что-то такое вроде видел. Хотя может мне привидилось
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.