IMHO.WS

IMHO.WS (http://www.imho.ws/index.php)
-   Веб-программирование (http://www.imho.ws/forumdisplay.php?f=29)
-   -   убрать лишние пробелы (http://www.imho.ws/showthread.php?t=106774)

Kvarx 08.08.2006 17:10

убрать лишние пробелы
 
Добрый день,
Нужна функция на пхп, которая из строки будет удалять все лишние пробелы, табуляции и т.д. Вроде написал, но не очень работает. У кого-нибудь есть свои варианты.

RaZEr 08.08.2006 17:11

preg_replace('/(\s)\s+/','\\1',$str);

Hubbitus 09.08.2006 10:10

preg_replace('/\s+/',' ',$text);

RaZEr 09.08.2006 10:17

Вот и заменишь табуляцию и переносы на пробелы :)

Kvarx 09.08.2006 10:59

А можно заменить табуляции (в том числе подряд) на один пробел, а переносы строк подряд на один перенос?

Hubbitus 09.08.2006 11:28

Цитата:

RaZEr:
Вот и заменишь табуляцию и переносы на пробелы :)
Именно. Именно это и просили "убрать все лишнее", насколько я понял. А у тебя вообще \\1 без модификатора e не имеет смысла :)

Цитата:

Kvarx:
заменить табуляции (в том числе подряд) на один пробел
Моя рега так и заменяет их.

Цитата:

Kvarx:
а переносы строк подряд на один перенос
С переносами можно тоже конечно, я разрешаю :p

Неужели так сложно почитать документацию по регам, и написать по аналогии дальше самому??

PHP код:

$text preg_replace(
      array(
'/[\t\v ]+/''/([\r\n])+/e'),
      array(
' ''"\\1"'),
      
$text); 


RaZEr 09.08.2006 17:08

Цитата:

А у тебя вообще \\1 без модификатора e не имеет смысла
Какого модификатора-то? Ты о чём...

Hubbitus 10.08.2006 10:32

Цитата:

RaZEr:
Какого модификатора-то? Ты о чём...
Модификатора /e в регулярном выражении, без которого захваченные значения масок шаблонов не подставляются (http://ru.php.net/preg_replace , пример 4), полагаю ты его просто забыл написать.

RaZEr 10.08.2006 10:47

Учи мат.часть. Этот модификатор для другого.

Hubbitus 10.08.2006 11:12

Цитата:

RaZEr:
Учи мат.часть. Этот модификатор для другого.
Ладно, ладно. Прошу прощения.
Должны и так подставляться захваченные паттерны, но что-то там вроде с реализацией раньше было, не помню точно почему я отказался, и стал использовать через ПХП. :beer:

RaZEr 10.08.2006 11:15

можно ещё так (более грамотный вариант):

preg_replace('/(\s)\1+/','\\1',$str);


Часовой пояс GMT +4, время: 14:58.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.