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

Форум PHP

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

 

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

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

тема: Преобразовать нажатие Enter в новый абзац
 
 автор: Boris   (27.07.2006 в 13:22)   письмо автору
 
 

Здравствуйте!
Никак догнать не могу как сделать чтобв при заполнении формы текстом, в нем образовывались абзацы в том месте, где человек нажимал Enter?
Вот тут уже новый абзац! А в HTML коде наверное поставилось <br />

   
 
 автор: Axxil   (27.07.2006 в 14:02)   письмо автору
 
   для: Boris   (27.07.2006 в 13:22)
 

Можно при обработке данных формы заменить все <br /> на </p><p>
И соответственно весь текст заключить в <p></p>
Ну и отслеживать двойные (и более) <br /> и заменять их на одинарные, которые в свою очередь см. выше.

   
 
 автор: Boris   (27.07.2006 в 14:10)   письмо автору
 
   для: Axxil   (27.07.2006 в 14:02)
 

Спасибо за ответ, с этим проблем нет!
Как заменить в тексте Enter на <br />?
Вот я пишу сейчас в форме и, внимание, нажимаю Enter!
Эта уже пошла новая строка. Теперь я открываю мой пост в блокноте ввиде html и вижу:

Спасибо за ответ, с этим проблем нет!<br />
Как заменить в тексте Enter на <br />?!<br />
Вот я пишу сейчас в форме и, внимание, нажимаю Enter!!<br />
Эта уже пошла новая строка. Теперь я открываю мой пост в блокноте ввиде html и вижу:!<br />

   
 
 автор: Thrasher   (27.07.2006 в 14:14)   письмо автору
 
   для: Axxil   (27.07.2006 в 14:02)
 

А можно текст из формы сохранять как есть, без всяких преобразований, а вот при выводе в браузер использовать функцию nl2br().
Пример: echo nl2br($text);
Тогда при апдейте текста в форме <br> не будут плодиться.

   
 
 автор: Snorri   (27.07.2006 в 14:34)   письмо автору
 
   для: Boris   (27.07.2006 в 13:22)
 

Параметр wrap говорит браузеру о том, как осуществлять перенос текста в поле TEXTAREA и в каком виде отправлять данные на сервер. Если этот параметр отсутсвует, текст в поле набирается одной строкой , а когда число введенных символов превышает ширину области, появляется горизонтальная полоса прокрутки. Нажатие клавиши Enter переносит текст на новую строку, и курсор устанавливается у левого края поля.
Так что это не из пхп

   
 
 автор: Nbuth   (28.07.2006 в 09:33)   письмо автору
 
   для: Boris   (27.07.2006 в 13:22)
 

Если я правильно понял проблему, то решается она следующим образом:

$str = str_replace("\n","<br>", $str);

в переменной $str хранится текст, полученный из textarea.

Обратное преобразование (если, допустим, надо изменить текст, тогда перед отправкой в textarea убираем <br>'ки) аналогично:

$str = str_replace('<br>',"\n",$str);

после чего выводим $str в textarea

   
 
 автор: Lelik   (28.07.2006 в 09:51)   письмо автору
 
   для: Boris   (27.07.2006 в 13:22)
 

>Здравствуйте!
>Никак догнать не могу как сделать чтобв при заполнении формы
>текстом, в нем образовывались абзацы в том месте, где
>человек нажимал Enter?
>Вот тут уже новый абзац! А в HTML коде наверное поставилось
>&lt;br />

для этого используется функция nl2br(); Обработчик формы имеет примерно следующий вид

<?php
$_POST
['text'] = nl2br($_POST['text']); 
// где $_POST['text'] - это текст, в которм должны, после нажатия Enter образовываться абзацы
?>

   
 
 автор: Axxil   (28.07.2006 в 10:31)   письмо автору
 
   для: Lelik   (28.07.2006 в 09:51)
 

Ребята. Вы друг друга читайте хоть немного...

   
Rambler's Top100
вверх

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