За последние 24 часа нас посетил 59831 программист и 1769 роботов. Сейчас ищут 835 программистов ...

Проверка на ввод Enter'a

Тема в разделе "PHP для новичков", создана пользователем ssh, 25 июл 2009.

  1. ssh

    ssh Активный пользователь

    С нами с:
    15 апр 2009
    Сообщения:
    164
    Симпатии:
    0
    Если набирать текст в текстовом поле, как сделать чтобы при нажатии enter добавлялся перевод строки.
     
  2. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
  3. ssh

    ssh Активный пользователь

    С нами с:
    15 апр 2009
    Сообщения:
    164
    Симпатии:
    0
    440Hz

    Спасибо,

    Сделал так $text = nl2br($text);

    Когда вытаскиваю из базы для редактирования, то в поле текст выводится так:
    text - <br />description

    Как сделать чтобы выводилось так:
    text -
    description
     
  4. neverlose

    neverlose Активный пользователь

    С нами с:
    27 авг 2008
    Сообщения:
    1.112
    Симпатии:
    20
    $TextFromDb = str_replace( '<br />', '', $TextFromDb);
    При сохранении тогда опять надо будет вызывать nl2br().
    Следовательно нынешняя реализация неэффективна.

    Верное решение:
    Вызывать nl2br() только при выводе информации, в необходимых местах.
     
  5. Apple

    Apple Активный пользователь

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Неверное решение.

    Тоже неверно.

    При сохранении:
    nl2br()

    При редактировании:
    $text = str_replace("<br />", "\r\n", $text);
     
  6. Koc

    Koc Активный пользователь

    С нами с:
    3 мар 2008
    Сообщения:
    2.253
    Симпатии:
    0
    Адрес:
    \Ukraine\Dnepropetrovsk
    хранить данные, пришедшие от пользователя нужно в том виде, в котором они пришли. (с)

    сохраняем с EOL, при выводе пропускаем через nl2br
     
  7. ssh

    ssh Активный пользователь

    С нами с:
    15 апр 2009
    Сообщения:
    164
    Симпатии:
    0
    Koc
    С EOL это как?
     
  8. Apple

    Apple Активный пользователь

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    EOL = End Of Line

    Обозначение символов конца строки, например, в Mac это \r (подсказал AlexeyGousev), в Windows — \n, в Linux же \r\n
     
  9. TheShock

    TheShock Активный пользователь

    С нами с:
    30 май 2009
    Сообщения:
    1.255
    Симпатии:
    0
    Адрес:
    Київ
    кажется, наоборот. в Linux — \n, в Windows — \r\n

    согласен.
     
  10. Apple

    Apple Активный пользователь

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    TheShock
    Разве оправданно при каждом выводе обрабатывать кучу текста этой функцией? =)
     
  11. TheShock

    TheShock Активный пользователь

    С нами с:
    30 май 2009
    Сообщения:
    1.255
    Симпатии:
    0
    Адрес:
    Київ
    кроме этой функции еще будет обрабатыватся на запрещенные теги, наличие бб-кода и т.п. некоторые сохраняют в базе две версии - оригинал и обработанную.

    А если я захочу взять этот текст и использовать его не в html? Или заменить переводы строки не на "<br />" а на "</p><p>"?
     
  12. Apple

    Apple Активный пользователь

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Я сторонник хранения обработанной версии.
    Лучше я переведу при редактировании HTML назад в BB, чем буду постоянно при выводе парсить.
    Хранить два варианта довольно накладно, когда в базе и без этого хватает контента.
     
  13. neverlose

    neverlose Активный пользователь

    С нами с:
    27 авг 2008
    Сообщения:
    1.112
    Симпатии:
    20
    Извольте читать мануал
    Символы новой строки будут всегда при изменении сохранений удваиваться.
    Понимаю, что воскресенье, похмель...
     
  14. Apple

    Apple Активный пользователь

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Окей, я был не прав.

    Иногда следовало бы и промолчать относительно вопросов личностного характера.
     
  15. neverlose

    neverlose Активный пользователь

    С нами с:
    27 авг 2008
    Сообщения:
    1.112
    Симпатии:
    20
    Не вижу ничего личного в моём сглаживании Вашей ошибочки. Но могу больше подобного и не писать, если Вас это так затрагивает...
     
  16. Koc

    Koc Активный пользователь

    С нами с:
    3 мар 2008
    Сообщения:
    2.253
    Симпатии:
    0
    Адрес:
    \Ukraine\Dnepropetrovsk
    тью, меня даже улыбнуло высказывание neverlose, не вижу ничего плохого или обидного в нем.
     
  17. Mr.M.I.T.

    Mr.M.I.T. Старожил

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    на самом деле правильно что-то обрабытвать до, а что-то после =)
    ну а в особо хайлоадных случиях, либо хранить 2 варинта(это накладно если объём БД 10 Гигов) либо обрабатывать всё до
     
  18. neverlose

    neverlose Активный пользователь

    С нами с:
    27 авг 2008
    Сообщения:
    1.112
    Симпатии:
    20
    Но есть ещё и вариант кеширования :).
    Пожалуй - самый верный вариант на мой взгляд, так как:
    1) данные не занимают лишней памяти в базе( хранятся в единственном экземпляре).
    2) Текст(данные) всегда чист, и готов к работе. Его не надо обрабатывать никакими функциями.