![]() |
|
Модераторы: ginnie |
![]()
|
|
| dmipro |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 29 Регистрация: 5.1.2011 Репутация: нет Всего: нет |
Здравствуйте,
С формы обратной связи моего сайта я сохраняю все поля в базу данный MySQl: имя, страна, город, телефон, тема сообщения, текст сообщения и т.п. Затем я записываю текстовый файл с разделителями табуляций из этой базы с расширением .xls и получаю документ, который могу открыть в программе Excel. Все корректно записывается в файл, пока не попадается символ конца абзаца. Люди пишут текст сообщения в несколько строк (каждая строка заканчивается символом абзаца). Подскажите, пожалуйста, регулярное выражение, которое при внесении строки текста в базу или при выборки из базы будет находить символ абзаца и заменять его, например, на символ пробела. Мне надо склеить все строки в одну цепочку, чтобы мой записываемый .xls файл при открытии корректно отображал каждое поле записи в отдельной ячейки Excel. Спасибо всем кто откликнется! |
|||
|
||||
| Jimy |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 177 Регистрация: 4.7.2010 Репутация: нет Всего: 3 |
$str =~ s/\n|\r/ /g;
|
|||
|
||||
| alezzz |
|
|||
![]() сплю... ![]() ![]() Профиль Группа: Участник Сообщений: 499 Регистрация: 17.8.2009 Репутация: 11 Всего: 14 |
Другой вариант:
Если "символ абзаца" это перевод строки. |
|||
|
||||
| srl |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 16.1.2011 Репутация: нет Всего: нет |
Брр, написал фигню, но потом понял, что написал фигню и потёр.
Это сообщение отредактировал(а) srl - 20.1.2011, 23:43 |
|||
|
||||
| dmipro |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 29 Регистрация: 5.1.2011 Репутация: нет Всего: нет |
Спасибо! Простите чайника, как мне правильно применить этот код, чтой-то не получаеца. Как правильно присвоения сделать, вот у меня есть элемент массива с переводом строк $row[10] (исходный неправильный вариант), как мне применить код регулярного выражения чтобы в $str занести текст с уже удаленными символами абзацев (перевода строки).
Спасибо еще раз. |
|||
|
||||
| alezzz |
|
|||
![]() сплю... ![]() ![]() Профиль Группа: Участник Сообщений: 499 Регистрация: 17.8.2009 Репутация: 11 Всего: 14 |
если в одном элементе массива несколько строк для которых нужно применить выражение то добавьте в конце регулярного выражения модификатор g; |
|||
|
||||
| dmipro |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 29 Регистрация: 5.1.2011 Репутация: нет Всего: нет |
Что-то не то....
записывает в $str цифру 1 для любой строки.
записывает в $str разные цифры, например 8 для одной строки, 10 - для другой. А должен быть текст! а не цифры, соединенный символом "пробел", вместо знаков абзаца. Я могу написать свою процедуру, которая в цикле прогонит все символы и там где есть символ абзаца, его уберет и поставит символ пробела. Только я не знаю какой символ обозначает абзац (перевод строки)? Например в $s я прочитаю очередной символ, с чем мне его корректно сравнить чтобы узнать что это абзац? if ($s eq "символ абзаца") { отрезаем абзац, ставим пробел } Подскажите "символ абзаца", пжл. Спасибо! Это сообщение отредактировал(а) dmipro - 21.1.2011, 17:12 |
||||
|
|||||
| alezzz |
|
|||
![]() сплю... ![]() ![]() Профиль Группа: Участник Сообщений: 499 Регистрация: 17.8.2009 Репутация: 11 Всего: 14 |
перевод строки зависит от системы, в unix-подобных это \n, в windows это два символа \r\n, в Mac OS классике говорят что \r, но такое уже наверно не встретися.
попробуйте еще
если не хотите метять прямо в @row |
|||
|
||||
| awkward |
|
||||||
|
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 21.1.2011 Репутация: нет Всего: нет |
или
или
|
||||||
|
|||||||
| alezzz |
|
|||
![]() сплю... ![]() ![]() Профиль Группа: Участник Сообщений: 499 Регистрация: 17.8.2009 Репутация: 11 Всего: 14 |
да, awkward прав, я не там скобку поставил
|
|||
|
||||
| dmipro |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 29 Регистрация: 5.1.2011 Репутация: нет Всего: нет |
Теперь все хорошо!
Спасибо alezzz, awkward и Jimy |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Perl: Регулярные выражения | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |