PHP 8.4.0 RC2 available for testing

trim

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

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

Описание

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

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

  • " " (ASCII 32 (0x20)), обычный пробел.
  • "\t" (ASCII 9 (0x09)), символ табуляции.
  • "\n" (ASCII 10 (0x0A)), символ перевода строки.
  • "\r" (ASCII 13 (0x0D)), символ возврата каретки.
  • "\0" (ASCII 0 (0x00)), NUL-байт.
  • "\v" (ASCII 11 (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
13
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
2
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