обработка textarea

MXM

Guest
обработка textarea

Привет!
Ситуация: есть форма, одно из полей это textarea, скрипт принимает введенные значения обрабатывает их и записывает в файл.
Далее, работает другой скрипт, который читает файл и выводит значения на экран.
Вопрос: как обработать с помощью php введеный текст в поле textarea?
К примеру, введеный текст имеет вид:
"_пробел_ _пробел_ _пробел_У попа была
собака, он ее любил! _пробел_ _пробел_ _пробел_

Она съела _пробел_ _пробел_ _пробел_ кусок мяса

- он ее убил!_пробел_ _пробел_ _пробел_ "
Нужно обработать текст так и записать его в файл, чтоб пустые символы в начале строки были удалены, повторяющееся пробелы были заменены одним пробелом, перевод строки был заменен на хтмл-тэг, в итоге в файл записалось:
"У попа была<BR>собака, он ее любил!<BR><BR>Она съела кусок мяса<BR>- он ее убил!"
Подскажите, так правильно:
PHP:
$textarea=trim(preg_replace("'([\r\n])[\n]+'",'<BR>',$textarea));
$textarea=preg_replace("/ +/",' ',$textarea);
Или как будет правильнее?
 

Vital_N

Новичок
Re: обработка textarea

Вместо
preg_replace("'([\r\n])[\n]+'",'<BR>',$textarea));
есть nl2br();

-~{}~ 10.09.04 22:52:

а множественные пробелы в хтмл сами преобразуются в один, если принудительно не первести в &nbsp;
 

cray

Guest
PHP:
$textarea=preg_replace("/ +/",' ',$textarea);
- в принципе верно, если уж хочицца избавится от повторяющихся пробелов
 

Фанат

oncle terrible
Команда форума
про nl2br(); тебе глупость написали.
а вот рег твой немного кривоват, по-моему
бычно, паттерн вот так пишут: \r?\n
и, тем более, если ты хочешь <BR><BR>, то плюсик-то убери
 

fixxxer

К.О.
Партнер клуба
а не пофиг на тз? =) зачем пробелы-то убирать, они в html не мешают...

нужное отображение на экране получается именно в рез-те nl2br.

-~{}~ 11.09.04 11:18:

а если уж так прямо надо регом и именно убрать пробелы и переносы строк, то оптимальнее -
preg_replace(array("!\r?\n!","!\s+!", "!(^\s|\s$)!"),array("<br>"," ",""),..)
 

Фанат

oncle terrible
Команда форума
ребят, вы все напрочь позабыли, как писать программы, которые
записывает в файл
:)
nl2br длятаких файлов не подходит.

А рег у тебя, Фикс, красивый. Даже трим делает сам :)
 

SiMM

Новичок
fixxxer, одна запись - один fgets (ну или file сразу), при таком раскладе переводы строк внутри записей приходится заменять на что-нибудь другое - почему бы не сразу на <br>?
 

Samy

Guest
$pole=ltrim($pole); - если хочешь удалить все пробелы с начала...
$pole=ereg_replace(" +"," ",$pole);- если хочешь сократить до одного...
или я тебя не понял?
 

vovanium

Новичок
fixxxer
preg_replace(array("!\r?\n!","!\s+!", "!(^\s|\s$)!"),array("<br>"," ",""),..)
Имхо, не очень правильно. Т.к. если в начале или в конце текста вставить несколько символов перевода строки, то будут лишние <BR> и пробелы

например, попробуйте обработать текст типа
Код:
\s\s\r\n
текст\s\sтекст\r\n
\s\s\r\n
\r\n
где \s - пробел, \r\n - перевод строки

лучше юзать, что-то типа этого
preg_replace(array("/\r?\n/", "/\s+/"), array("<br>", " "), trim($str));
 
Сверху