[php] Trim не тримает

banshee(oleg)
На сайте с 12.08.2007
Offline
140
2645

Столкнулся с фигней, уже всю голову изломал. Trim() не работает: не удаляет ни пробелы, ни переводы строк ... В поиске ничего толком не нашел. Такое и на денвере и на серве. пхп5+, русская локаль, файл в анси кодировке.

	

$test = "test1\n\n\n\t\ttest2\r\ntest3";
$test1 = trim($test);
if ($test==$test1) {die("Trim() doesn't works!:<br/>\n".$test1);}

На выходе:

Trim() doesn't works!:<br>

test1


test2
test3

Есть идеи?

T
На сайте с 20.03.2007
Offline
67
Toy
#1

Вы вкурсе что делает функция trim?

php.net:
trim — Strip whitespace (or other characters) from the beginning and end of a string
banshee(oleg)
На сайте с 12.08.2007
Offline
140
#2

Если второго параметра нет, то он должен убирать и табы и переводы.

This function returns a string with whitespace stripped from the beginning and end of str. Without the second parameter, trim() will strip these characters:

* " " (ASCII 32 (0x20)), an ordinary space.
* "\t" (ASCII 9 (0x09)), a tab.
* "\n" (ASCII 10 (0x0A)), a new line (line feed).
* "\r" (ASCII 13 (0x0D)), a carriage return.
* "\0" (ASCII 0 (0x00)), the NUL-byte.
* "\x0B" (ASCII 11 (0x0B)), a vertical tab.

ААА. Все, разобрался.. он убирает, да. Но только в конце или в начале строки. Я думал вообще по всей строке.

[Удален]
#3

$string2 = str_replace(" ", "", trim($string1));

а так ?

banshee(oleg)
На сайте с 12.08.2007
Offline
140
#4
awilum:
а так ?

Это уже неважно :) Ну в моем-то примере там пробелов нет, как и перечисленных символов в начале или конце. Поэтому он и не тримал.

[Удален]
#5
Toy:
beginning and end

это вроде как ключевые слова во всей странице документации.

bearman добавил 30.07.2010 в 16:36

вам поможет чтото аля


<?
preg_replace("#[\r\n]+\s+#ism", "\n", $text);

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий