trim (функция обрезки пробелов в конце и начале переменной [и не только]) в php
string trim (string $str[,string $character_mask=" \t\n\r\0\x0B"])
Эта функция возвращает строку str с удаленными из начала и конца строки пробелами. Если второй параметр не передан, trim() удаляет следующие символы:
" " (ASCII 32 (0x20)) - обычный пробел;
"\t" (ASCII 9 (0x09)) - символ табуляции;
"\n" (ASCII 10 (0x0A)) - символ перевода строки;
"\r" (ASCII 13 (0x0D)) - символ возврата каретки;
"\0" (ASCII 0 (0x00)) - NUL-байт;
"\x0B" (ASCII 11 (0x0B)) - вертикальная табуляция.
Список параметров
str
Обрезаемая строка (string).
character_mask
Можно также задать список символов для удаления с помощью необязательного аргумента character_mask. Просто перечислите все символы, которые вы хотите удалить. Можно указать конструкцию для обозначения диапазона символов.
Возвращаемые значения
Обрезаемая строка.
Пример использования trim()
<?
$text="\t\tThese are a few words. ";
$binary="\x09Example string\x0A";
$hello="Hello World";
var_dump($text,$binary,$hello);
print "\n";
$trimmed=trim($text);
var_dump($trimmed);
$trimmed=trim($text," \t.");
var_dump($trimmed);
$trimmed=trim($hello,"Hdle");
var_dump($trimmed);
$trimmed=trim($hello,'HdWr');
var_dump($trimmed);
//удаляем управляющие ASCII-символы с начала и конца $binary
//(от 0 до 31 включительно)
$clean=trim($binary,"\x00..\x1F");
var_dump($clean);
?>
Результат выполнения данного примера:
string(32) " These are a few words :) ... "
string(16) " Example string
"
string(11) "Hello World"
string(28) "These are a few words :) ..."
string(24) "These are a few words :)"
string(5) "o Wor"
string(9) "ello Worl"
string(14) "Example string"
Пример 2. Обрезание значений массива с помощью trim()
<?
function trim_value(&$value)
{
$value=trim($value);
}
$fruit=array('apple','banana ',' cranberry ');
var_dump($fruit);
array_walk($fruit,'trim_value');
var_dump($fruit)?>
Результат выполнения данного примера:
array(3){
[0]=>
string(5)"apple"
[1]=>
string(7)"banana "
[2]=>
string(11)" cranberry "
}
array(3){
[0]=>
string(5)"apple"
[1]=>
string(6)"banana"
[2]=>
string(9)"cranberry"
}
Возможные трюки: удаление символов из середины строки:
Т.к. trim() удаляет символы с начала и конца строки string, то удаление (или неудаление) символов из середины строки может ввести в недоумение. trim('abc','bad') удалит как 'a', так и 'b', потому что удаление 'a' сдвинет 'b' к началу строки, что также позволит ее удалить. Вот почему это работает, тогда как trim('abc','b') очевидно нет.
Смотрите также:
ltrim() удаляет пробелы (или другие символы) из начала строки.
rtrim() удаляет пробелы (или другие символы) из конца строки.