PHP 8.4.1 Released!

trim

(PHP 4, PHP 5, PHP 7, PHP 8)

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

Описание

trim(string $string, string $characters = " \n\r\t\v\x00"): string

Функция возвращает строку string, в начале и конце которой удалила пробельные символы, или символы, которые передали во втором аргументе. Без второго параметра функция trim() удалит следующие символы:

  • " ": ASCII-символ SP с кодом 0x20 — стандартный пробел.
  • "\t": ASCII-символ HT с кодом 0x09 — символ табуляции.
  • "\n": ASCII-символ LF с кодом 0x0A — символ перевода строки.
  • "\r": ASCII-символ CR с кодом 0x0D — символ возврата каретки.
  • "\0": ASCII-символ NUL с кодом 0x00 — NUL-байт.
  • "\v": ASCII-символ VT с кодом 0x0B — символ вертикальной табуляции.

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

string
Строка (string), которую обрежет функция.
characters
Параметр characters принимает символы, которые удалит функция. В аргументе перечисляют символы, которые требуется удалить. Возрастающий диапазон символов указывают конструкцией .. — две точки.

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

Функция возвращает обрезанную строку.

Примеры

Пример #1 Пример удаления пробелов и других символов в начале и конце строки функцией trim()

<?php

$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()

<?php

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() - Удаляет пробельные или другие символы в конце строки
  • str_replace() - Заменяет вхождения строки поиска строкой замены
Добавить

Примечания пользователей 2 notes

up
11
pcoates at yukon1000 dot com
1 year ago
note there is a behaviour change in php 8

You used to be able to say:
$p1 = trim($_POST['p1']);
This will now throw deprecated warnings if parameter p1 is not set. It is better to say:
$p1 = trim($_POST['p1']??'');
or
$p1 = isset($_POST['p1']) ? trim($_POST['p1']) : null;
or
$p1 = isset($_POST['p1']) ? trim($_POST['p1']) : '';
up
3
gwyneth dot llewelyn at gwynethllewelyn dot net
1 year ago
Note that trim() is not aware of Unicode points that represent whitespace (e.g., in the General Punctuation block), except, of course, for the ones mentioned in this page.

There is no Unicode-specific trim function in PHP at the time of writing (July 2023), but you can try some examples of trims using multibyte strings posted on the comments for the mbstring extension: https://www.php.net/manual/en/ref.mbstring.php
To Top