![]() |
|
Модераторы: Aliance, skyboy, MoLeX, ksnk |
![]()
|
|
| Wolf1994 |
|
||||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1701 Регистрация: 5.10.2004 Репутация: 1 Всего: 29 |
Допустим, есть текст:
Можно ли средствами регулярок заменить все пробелы после "\n" на " "? Это нужно, чтобы соблюсти "красные строки", но сохранить автоперенос обычных строк браузером (по обычным пробелам). Всё что у меня получилось:
- то есть все пробелы, в начале строк, заменяются на ОДИН " ". Как сделать, чтобы количество " " совпадало с количеством пробелов? Ведь обычные функции нельзя встраивать в регулярное выражение, а без них сделать не получается... |
||||
|
|||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: нет Всего: 454 |
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 16 Всего: 261 |
Лучше, все-таки красную строку делать через css и <p>
|
|||
|
||||
| Wolf1994 |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1701 Регистрация: 5.10.2004 Репутация: 1 Всего: 29 |
2Akina: насколько я понял, этот пример обрабатывает СТРОКУ, а как быть с текстом, в котором множество строк - как выполнить обработку для каждой строки?
2Mal Hack: А это возможно? Единственный вариант, который я нашёл: <p style="white-space: nowrap"> - но, тогда строки перестанут переносится, мне же, надо выделить только начала строк |
|||
|
||||
| smartov |
|
|||
![]() свой собственный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4225 Регистрация: 2.2.2006 Где: NJ Репутация: 4 Всего: 259 |
Wolf1994
1) Не совсем уловлю. В тексте переносы <br>-ами а пробелы - просто символом пробела. Как так оказалось? 2) Может быть тег <pre> с описанным для него стилем (размер, цвет шрифта) поможет в этой ситуации? 3) На крайняк
Это сообщение отредактировал(а) smartov - 8.2.2006, 01:04 |
|||
|
||||
| Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 16 Всего: 261 |
||||
|
||||
| Wolf1994 |
|
||||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1701 Регистрация: 5.10.2004 Репутация: 1 Всего: 29 |
Не подходит. Оно устанавливает фиксированный отступ. Того же самого эффекта можно достичь с .
Текст частично обработан на этой стадии - все символы "\n"/"\r\n" уже заменены на "<br />". Можно в примере взять "\n" - это сути вопроса не меняет.
Пробовал: <p style="white-space: pre"> <p style="white-space: normal"> <p style="white-space: nowrap"> ... Попробовал <pre> - не подходит. Он не только выделяет отступы, но также запрещает перенос строк, что сводит на "нет" всё автоформатирование ( Без результата ( Единственный вариант, который меня не устраивает - это разбить текст на строки (по метке конца строки) эксплодом и применить к каждой отдельно взятой строке метод предложенный Akina. Но если сделать так, то насколько это снизит скорость обработки текста большого размера (200 Кб)? То есть такое решение разумно - для средней мощности хостинга? Хотелось бы как-нибудь пооптимальней... ) |
||||
|
|||||
| AlexW |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 66 Регистрация: 22.1.2006 Репутация: нет Всего: 1 |
У меня фаил с более 100000 строк preg_replace очень долго обрабатывает, а str_replace справляеться за несколько секунд
|
|||
|
||||
| Akina |
|
||||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: нет Всего: 454 |
split, foreach, join Добавлено @ 10:08
test... -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
||||
|
|||||
| smartov |
|
||||
![]() свой собственный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4225 Регистрация: 2.2.2006 Где: NJ Репутация: 4 Всего: 259 |
Wolf1994
Не запрещает он перенос строк. Просто переносы должны быть \n а не <br> чтобы <pre> их верно обрабатывал. Пардон. Забыл что тебе надо заменить на .
|
||||
|
|||||
| Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 16 Всего: 261 |
||||
|
||||
| Wolf1994 |
|
||||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1701 Регистрация: 5.10.2004 Репутация: 1 Всего: 29 |
Дело в том, что текст не форматированный (это дело доверено браузеру - в зависимости от размера). Нужно, чтобы текст переносился не только по \n но и по пробелу - если длина строки превышает лимит таблицы.
Именно так я это и представлял. Спасибо (+). Приступаю... |
||||
|
|||||
| Wolf1994 |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1701 Регистрация: 5.10.2004 Репутация: 1 Всего: 29 |
||||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Тексты | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |