Вернуться   Форум SAPE.RU > Другое > Курилка

-->
Ответ
 
Опции темы
Старый 28.03.2011, 17:48   #1
Специалист
 
Регистрация: 22.09.2010
Адрес: Ростов-на-Дону
Сообщений: 273
Вес репутации: 189
Allexx - за этого человека можно гордитсяAllexx - за этого человека можно гордитсяAllexx - за этого человека можно гордитсяAllexx - за этого человека можно гордитсяAllexx - за этого человека можно гордитсяAllexx - за этого человека можно гордитсяAllexx - за этого человека можно гордитсяAllexx - за этого человека можно гордитсяAllexx - за этого человека можно гордитсяAllexx - за этого человека можно гордится
Question PHP: Обрезка лишних переводов строк

Нужна помощь, помазгуйте кому не лень, помогите
В общем столкнулся я с головняком, мозг вскипел, никогда такой горячки не было.
Есть как бы форма POST, народ пишет в неё сообщения, нужно с сообщения вырезать лишние переводы строк вместе с пробелами в 3 этапа.
Этап 1. Вырезаем лишние переводы строк вместе с пробелами до основного текста ^, т.е. не просто вырезать переводы строк, но учесть что может быть три и более ситуаций:
[пробелы][переводЫ строк][опять пробелы] текст
[пробелы][переводЫ строк] текст
[переводЫ строк][пробелы] текст
Либо вобще один за одним [пробелы][переводы строк][пробелы][опять переводы][опять пробелы] и так далее до текста хрен знает сколько раз.
===========
Этап 2. Тоже самое, что этап 1, только в конце $.
===========
Этап 3. В оставшемся тексте ведь могут быть двойные, тройные переводы строк от которых так же нужно избавиться, т.е. все переводы строк, повторяющиеся более одного раза заменить одинарным переводом строки.

---------------------------------
Как видно я столкнулся с проблемой, когда юзер хочет преукрасить текст переводами строк и может это сделать так, что его текст растянет страницу с его постом на не меренное количество строк, а между них будет маленький текст и крути потом страницу в его поисках . С preg_replace() я в принципе знаком, но что-то тут я конкретно в ступор стал, уже голова трещит.

Помогите, кому не чем заняться
















.Вот он вам простой пример от чего нужно избавиться
десяток строк выше, двойные и более чем 2 перевода строк смешанные с пробелами, а вот в начале и в конце форума, тут режет лишнее.
Allexx вне форума   Ответить с цитированием
Старый 28.03.2011, 17:50   #2
Мне повезёт!
 
Аватар для Alexey
 
Регистрация: 05.05.2007
Сообщений: 1,076
Вес репутации: 281
Alexey - прекрасное будущееAlexey - прекрасное будущееAlexey - прекрасное будущееAlexey - прекрасное будущееAlexey - прекрасное будущееAlexey - прекрасное будущееAlexey - прекрасное будущееAlexey - прекрасное будущееAlexey - прекрасное будущееAlexey - прекрасное будущееAlexey - прекрасное будущее
По умолчанию

заменить \s+\n\s+ на \n с помощью preg_replace
__________________
Everything will be great in the end.
If it's not great, it's not the end.
Alexey вне форума   Ответить с цитированием
Старый 28.03.2011, 17:52   #3
Специалист
 
Регистрация: 22.09.2010
Адрес: Ростов-на-Дону
Сообщений: 273
Вес репутации: 189
Allexx - за этого человека можно гордитсяAllexx - за этого человека можно гордитсяAllexx - за этого человека можно гордитсяAllexx - за этого человека можно гордитсяAllexx - за этого человека можно гордитсяAllexx - за этого человека можно гордитсяAllexx - за этого человека можно гордитсяAllexx - за этого человека можно гордитсяAllexx - за этого человека можно гордитсяAllexx - за этого человека можно гордится
По умолчанию

Пробовал, не получается почему-то.
Мож сам preg_replace() не правильно прописываю, если есть время, пропишите пожалуйста
Allexx вне форума   Ответить с цитированием
Старый 28.03.2011, 17:52   #4
Эксперт
 
Аватар для vitaliy s
 
Регистрация: 20.03.2010
Адрес: Симферополь
Сообщений: 1,547
Вес репутации: 239
vitaliy s - прекрасное будущееvitaliy s - прекрасное будущееvitaliy s - прекрасное будущееvitaliy s - прекрасное будущееvitaliy s - прекрасное будущееvitaliy s - прекрасное будущееvitaliy s - прекрасное будущееvitaliy s - прекрасное будущееvitaliy s - прекрасное будущееvitaliy s - прекрасное будущееvitaliy s - прекрасное будущее
По умолчанию

Я не спец, но походу проблема с шаблоном, может легче шаб сменить?
vitaliy s вне форума   Ответить с цитированием
Старый 28.03.2011, 17:58   #5
Специалист
 
Регистрация: 22.09.2010
Адрес: Ростов-на-Дону
Сообщений: 273
Вес репутации: 189
Allexx - за этого человека можно гордитсяAllexx - за этого человека можно гордитсяAllexx - за этого человека можно гордитсяAllexx - за этого человека можно гордитсяAllexx - за этого человека можно гордитсяAllexx - за этого человека можно гордитсяAllexx - за этого человека можно гордитсяAllexx - за этого человека можно гордитсяAllexx - за этого человека можно гордитсяAllexx - за этого человека можно гордится
По умолчанию

да нет, не всё так просто
Allexx вне форума   Ответить с цитированием
Старый 28.03.2011, 17:59   #6
Починяю примуса
 
Аватар для Atomic
 
Регистрация: 26.09.2008
Сообщений: 1,505
Вес репутации: 290
Atomic - прекрасное будущееAtomic - прекрасное будущееAtomic - прекрасное будущееAtomic - прекрасное будущееAtomic - прекрасное будущееAtomic - прекрасное будущееAtomic - прекрасное будущееAtomic - прекрасное будущееAtomic - прекрасное будущееAtomic - прекрасное будущееAtomic - прекрасное будущее
По умолчанию

"/\n{2,}/","\n",$str
после можно пустить trim($str);
__________________
Починяю разнокалиберные примуса здесь.
Atomic вне форума   Ответить с цитированием
Старый 28.03.2011, 18:04   #7
Специалист
 
Регистрация: 22.09.2010
Адрес: Ростов-на-Дону
Сообщений: 273
Вес репутации: 189
Allexx - за этого человека можно гордитсяAllexx - за этого человека можно гордитсяAllexx - за этого человека можно гордитсяAllexx - за этого человека можно гордитсяAllexx - за этого человека можно гордитсяAllexx - за этого человека можно гордитсяAllexx - за этого человека можно гордитсяAllexx - за этого человека можно гордитсяAllexx - за этого человека можно гордитсяAllexx - за этого человека можно гордится
По умолчанию

В принципе я ступил, с этапом 3 проблем нет, там всё просто, но а вот 1 и 2 и пипец, что только не пробовал, только если код расписать на всякий случай в 300 preg_replace() - вырезать пробел, перенос, пробел, перенос, пробел, перенос, пробел, перенос, пробел, перенос, пробел, перенос - тогда работает , а если 301 раз понадобиться.
В общем этап 1 и 2 не удаётся

Добавлено через 3 минуты
Цитата:
Сообщение от Atomic Посмотреть сообщение
"/\n{2,}/","\n",$str
после можно пустить trim($str);
С "/\n{2,}/","\n",$str я в принципе изначально так и поступил, это решило проблему в середине текста и все двойные переводы строк превратились в одинарные, а вот с trim($str) пожалуйста поподробнее , я до него ещё не дошёл

Последний раз редактировалось Allexx; 28.03.2011 в 18:04. Причина: Добавлено сообщение
Allexx вне форума   Ответить с цитированием
Старый 28.03.2011, 18:07   #8
Починяю примуса
 
Аватар для Atomic
 
Регистрация: 26.09.2008
Сообщений: 1,505
Вес репутации: 290
Atomic - прекрасное будущееAtomic - прекрасное будущееAtomic - прекрасное будущееAtomic - прекрасное будущееAtomic - прекрасное будущееAtomic - прекрасное будущееAtomic - прекрасное будущееAtomic - прекрасное будущееAtomic - прекрасное будущееAtomic - прекрасное будущееAtomic - прекрасное будущее
По умолчанию

да сдались вам эти проблемы. этож хтмл, а не ворд

Добавлено через 2 минуты
trim режет начальные и концевые проблеы, табуляцию и переводы

Добавлено через 31 секунду
http://php.su/functions/?cat=strings
__________________
Починяю разнокалиберные примуса здесь.

Последний раз редактировалось Atomic; 28.03.2011 в 18:07. Причина: Добавлено сообщение
Atomic вне форума   Ответить с цитированием
Старый 28.03.2011, 19:25   #9
Специалист
 
Регистрация: 22.09.2010
Адрес: Ростов-на-Дону
Сообщений: 273
Вес репутации: 189
Allexx - за этого человека можно гордитсяAllexx - за этого человека можно гордитсяAllexx - за этого человека можно гордитсяAllexx - за этого человека можно гордитсяAllexx - за этого человека можно гордитсяAllexx - за этого человека можно гордитсяAllexx - за этого человека можно гордитсяAllexx - за этого человека можно гордитсяAllexx - за этого человека можно гордитсяAllexx - за этого человека можно гордится
По умолчанию

Добавлено через 1 час 16 минут
Блин, внутри текста двойные переводы строк в одинарные перестали изменяться, что-то походу намудрил.

С обрезкой по краям помогли уже.

Последний раз редактировалось Allexx; 28.03.2011 в 19:26. Причина: Добавлено сообщение
Allexx вне форума   Ответить с цитированием
Старый 29.03.2011, 02:07   #10
Специалист
 
Аватар для Михаил)
 
Регистрация: 17.05.2008
Сообщений: 215
Вес репутации: 207
Михаил) - как роза среди колючекМихаил) - как роза среди колючекМихаил) - как роза среди колючекМихаил) - как роза среди колючек
По умолчанию

Цитата:
Сообщение от Allexx Посмотреть сообщение
преукрасить текст переводами строк и может это сделать так, что его текст растянет страницу с его постом на не меренное количество строк
Юзер может растянуть страницу до неприемлемых размеров и буквами.
Может пойти в сторону общего ограничения строки? А то как-то неуниверсально всё и некрасиво..
__________________
Автоматическая регистрация в каталогах - бывают интересные акции и скидки.
Promotion in Google - Submit Article or Post to SEO blog for Free.
Михаил) вне форума   Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обрезка постов в wordpress 4ip Общие вопросы оптимизации 9 24.08.2010 15:59
О свободных местах и лишних заявках viewer-ik Вопросы от новичков 6 10.07.2009 11:01
Чистка лишних страниц - стабильный 504 justworker Ошибки при работе с системой 2 30.06.2009 17:56
обрезка страниц stag1969 Вопросы от новичков 5 28.05.2009 21:40
Списки денежных переводов web-solutions Пожелания пользователей системы 0 22.01.2008 18:28


Часовой пояс GMT +3, время: 12:00.