[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как удалить все двойные пробелы и перевод строки?
major28
Здравствуйте!
Хотел удалить двойные пробелы с помощью
preg_replace('  ', ' ', $string);

не уполучилось) Объясните плиз почему? И как удалить перевод строки? Спасибо!



Спустя 2 минуты, 26 секунд (3.07.2011 - 17:50) inpost написал(а):
major28
регуляркой с модификатором s.

Спустя 4 минуты, 18 секунд (3.07.2011 - 17:55) Invis1ble написал(а):
major28
$str = preg_replace('#\pZ{2,}#su', ' ', $str);

Спустя 33 секунды (3.07.2011 - 17:55) pak написал(а):
мож замена.

Спустя 11 минут, 1 секунда (3.07.2011 - 18:06) DySprozin написал(а):
о, да... вы знаете толк в извращениях :lol:

<?php
$string = str_replace(' ', ' ', str_replace("\r", '', str_replace("\n", '', $string)));

Спустя 2 минуты, 24 секунды (3.07.2011 - 18:09) Invis1ble написал(а):
DySprozin
По-моему извращение в данном случае - три вызова функции smile.gif
Хотя производительность нужно тестировать, но читабельность точно хуже, имхо

ПС. Кстати, есть еще \t wink.gif

Спустя 1 минута, 28 секунд (3.07.2011 - 18:10) DySprozin написал(а):
Invis1ble
каждый извращается как умеет (;

Спустя 32 секунды (3.07.2011 - 18:11) DySprozin написал(а):
;;ПС. Кстати, есть еще \t
это не перевод строки (;

Спустя 19 секунд (3.07.2011 - 18:11) Invis1ble написал(а):
Если уж на то пошло, то str_replace() может принимать array() в качестве первого параметра wink.gif

Спустя 33 секунды (3.07.2011 - 18:11) DySprozin написал(а):
Invis1ble
верно laugh.gif все время забываю rolleyes.gif

Спустя 34 секунды (3.07.2011 - 18:12) Invis1ble написал(а):
Цитата
это не перевод строки (;

имхо, ТС подразумевает все пробельные символы

Спустя 2 минуты, 21 секунда (3.07.2011 - 18:14) major28 написал(а):
нифига не понял))) какой из вариантов самый рациональный?)))

Спустя 29 секунд (3.07.2011 - 18:15) Invis1ble написал(а):
мой smile.gif

Спустя 5 минут, 27 секунд (3.07.2011 - 18:20) major28 написал(а):
$string = "я   пытаюсь   удалить   все    двойные   пробелы";
$string = preg_replace('#\pZ{2,}#su', ' ', $string);
echo $string;


вообще ничего не выводит

Спустя 1 минута, 29 секунд (3.07.2011 - 18:22) major28 написал(а):
а вот
$string = preg_replace('/\s+/', ' ', $string);
помог

Спустя 2 минуты, 42 секунды (3.07.2011 - 18:24) DySprozin написал(а):
;;мой
использование регулярок там, где легко можно обойтись без них... ну это вечный холивар laugh.gif

Спустя 3 минуты, 13 секунд (3.07.2011 - 18:28) Invis1ble написал(а):
Цитата
вообще ничего не выводит

кодировка строки значит не в юникоде
Цитата
$string = preg_replace('/\s+/', ' ', $string);

лучше
$string = preg_replace('/\s{2,}/', ' ', $string);

Спустя 1 минута, 36 секунд (3.07.2011 - 18:29) Invis1ble написал(а):
DySprozin
я не уверен насчет очевидности оптимального варианта между твоим и моим
еще раз - нужно тестировать, причем желательно на большом участке текста для большей дельты

Спустя 6 минут, 46 секунд (3.07.2011 - 18:36) major28 написал(а):
а как мне удалить перенос строки например вот в этом тексте

<script>

if
((BrowserDetect.browser!="Explorer")){
213123

123231

321231

}
</script>

Спустя 6 минут, 28 секунд (3.07.2011 - 18:42) Invis1ble написал(а):
$string = preg_replace('/\s{2,}/s', ' ', $string);

Спустя 12 минут, 42 секунды (3.07.2011 - 18:55) DySprozin написал(а):
Invis1ble
а уже проверять ничего не надо: и так понятно, что в данном случае метод с функой str_replace - фуфло (; вот почему:
<?php
$str = ' '; //4 пробела
$str = str_replace(' ', ' ', $str); //заменяем 2 пробела на 1, в результате получим два раза по пробелу
echo $str; //выведет 2 пробела :-(

Спустя 2 минуты, 12 секунд (3.07.2011 - 18:57) Invis1ble написал(а):
DySprozin
laugh.gif
так а я о чем? это просто дополнительный аргумент smile.gif

ПС. На самом деле я сам противник фанатичного использования регэкспов там, где можно без них обойтись, если что wink.gif

Спустя 6 минут, 18 секунд (3.07.2011 - 19:04) DySprozin написал(а):
;;это просто дополнительный аргумент
скорее, неоспоримый аргумент tongue.gif

;;На самом деле я сам противник
так и запишем в личном теле laugh.gif
Быстрый ответ:

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