[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Убрать лишние переносы
Страницы: 1, 2
segazav
Подскажите, как убрать любые лишние переносы строк?
Чтобы оставалось не более 2-х переносов.
Arh
Так?
preg_replace('!\n\n!', '', $text);


_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
Миша
\r\n


_____________
Принимаю заказы, писать в ЛС
Игорь_Vasinsky
Медведь
\n *nix
\r\n windows

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Arh
preg_replace('!\s\s!', '', $text);

Так должно и на винде и на никсах работать. Попробуй.

Кстати \n на винде тоже работает.

_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
killer8080
Цитата (Arh @ 18.05.2015 - 22:50)
preg_replace('!\s\s!', '', $text);

Так должно и на винде и на никсах работать. Попробуй.

Кстати \n на винде тоже работает.

\s это любой пробельный символ, а не только перевод строки.
Arh
killer8080
Тогда не то)

_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
volter9
segazav
$text = preg_replace('/\n{2,}/', "\n\n", $text);


_____________
Мой блог
killer8080
как вариант
preg_replace("#(\r\n|\r|\n){3,}#", "\r\n\r\n", $text);
segazav
Цитата (killer8080 @ 18.05.2015 - 20:11)
как вариант
preg_replace("#(\r\n|\r|\n){3,}#", "\r\n\r\n", $text);

Результат вашего кода:
Если один перенос строки - оставляет один.
Если больше одного - убирает вообще все переносы, заменяя их на rnrn
Даже stripslashes() не помогает.
Миша
Чтобы переносы были 'ровными':

- удалить все переносы, просто заменить ("\r\n" на "") str_replace
- затем поставить нужные 2 переноса:

- - Считаем количество символов в строке strlen
- - Делим на 3, сразу округляем в большую сторону ceil
- - Ставим в нужное место переносы, два раза wordwrap

После strlen -
if($kol_simbolov>=3)


_____________
Принимаю заказы, писать в ЛС
segazav
Цитата (volter9 @ 18.05.2015 - 20:09)
segazav
$text = preg_replace('/\n{2,}/', "\n\n", $text);

Этот пример вообще не работает!
segazav
Цитата (killer8080 @ 18.05.2015 - 20:11)
как вариант
preg_replace("#(\r\n|\r|\n){3,}#", "\r\n\r\n", $text);

Поменял двойные кавычки на одинарные и все нормально заработало!?
preg_replace('#(\r\n|\r|\n){3,}#', "\r\n\r\n", $text);


Почему так???
segazav
Цитата (Медведь @ 18.05.2015 - 20:59)
Мой вариант тоже интересный, если интересует равномерность переносов.

Все ссылки на мануал имеются.

Ваш вариант интересный, просто этот как то короче и проще)
Спасибо всем за помощь wink.gif
Миша
Проще некуда ))


$text = "строка";
$text_2 = str_replace("\r\n", "", $text);
$kol_simbolov = strlen($text_2);

if($kol_simbolov>=3)
{
$perenos_stroki = ceil($kol_simbolov/3);
$result = wordwrap($text_2, $perenos_stroki, "\r\n");
}
else // Символов в строке меньше 3
{
$result = wordwrap($text_2, 1, "\r\n");
}


_____________
Принимаю заказы, писать в ЛС
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.