(PHP 4, PHP 5)

trimУдаляет пробелы (или другие символы) из начала и конца строки


string trim ( string $str [, string $charlist ] )

Эта функция возвращает строку 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)), вертикальная табуляция.

Список параметров


Обрезаемая строка (string).


Можно также задать список символов для удаления с помощью необязательного аргумента charlist. Просто перечислите все символы, которые вы хотите удалить. Можно указать конструкцию .. для обозначения диапазона символов.

Возвращаемые значения

Обрезаемая строка.

Список изменений

Версия Описание
4.1.0 Добавлен необязательный параметр charlist.


Пример #1 Пример использования trim()


"\t\tThese are a few words :) ...  ";
$binary "\x09Example string\x0A";
$hello  "Hello World";


$trimmed trim($text);

$trimmed trim($text" \t.");

$trimmed trim($hello"Hdle");

$trimmed trim($hello'HdWr');

// удаляем управляющие ASCII-символы с начала и конца $binary
// (от 0 до 31 включительно)
$clean trim($binary"\x00..\x1F");


Результат выполнения данного примера:

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 ');



Результат выполнения данного примера:

array(3) {
  string(5) "apple"
  string(7) "banana "
  string(11) " cranberry "
array(3) {
  string(5) "apple"
  string(6) "banana"
  string(9) "cranberry"


Замечание: Возможные трюки: удаление символов из середины строки

Так как trim() удаляет символы с начала и конца строки string, то удаление (или неудаление) символов из середины строки может ввести в недоумение. trim('abc', 'bad') удалит как 'a', так и 'b', потому что удаление 'a' сдвинет 'b' к началу строки, что также позволит ее удалить. Вот почему это "работает", тогда как trim('abc', 'b') очевидно нет.

Смотрите также

  • ltrim() - Удаляет пробелы (или другие символы) из начала строки
  • rtrim() - Удаляет пробелы (или другие символы) из конца строки
  • str_replace() - Заменяет все вхождения строки поиска на строку замены


You can combine character ranges and individual characters in trim()'s second argument (ditto for ltrim and rtrim). All of the specified characters and ranges will be used concurrently (i.e., if a character on either end of the string matches any of the specified charaters or character ranges, it will be trimmed). The characters and character ranges can be in any order (except of course that the character ranges need to be specified in increasing order) and may overlap.
E.g., trim any nongraphical non-ASCII character:
2003-06-05 21:32:56
To remove multiple occurences of whitespace characters in a string an convert them all into single spaces, use this:


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


2004-04-20 09:48:22
Another way to trim all the elements of an array
2005-02-07 18:46:46
If you want to check whether something ONLY has whitespaces, use the following:


if (trim($foobar)=='') {
'The string $foobar only contains whitespace!';

2005-05-17 15:47:45
It may be useful to know that trim() returns an empty string when the argument is an unset/null variable.
2007-01-12 08:06:01
Non-breaking spaces can be troublesome with trim:

// turn some HTML with non-breaking spaces into a "normal" string
$myHTML "&nbsp;abc";
$converted strtr($myHTMLarray_flip(get_html_translation_table(HTML_ENTITIESENT_QUOTES)));

// this WILL NOT work as expected
// $converted will still appear as " abc" in view source
// (but not in od -x)
$converted trim($converted);

// &nbsp; are translated to 0xA0, so use:
$converted trim($converted"\xA0"); // <- THIS DOES NOT WORK

// UTF encodes it as chr(0xC2).chr(0xA0)
$converted trim($converted,chr(0xC2).chr(0xA0)); // should work

// PS: Thanks to John for saving my sanity!
2010-07-09 05:28:06
Trim full width space will return mess character,  when target string starts with '《'

echo trim("《", " "); 


php version 5.4.27

[EDIT by cmb AT php DOT net: it is not necessarily safe to use trim with multibyte character encodings. The given example is equivalent to echo trim("\xe3\80\8a", "\xe3\x80\x80").]
2015-05-13 11:09:04

    Поддержать сайт на родительском проекте КГБ