html PHP: trim - Manual update pague now
PHP 8.4.17 Released!

trim

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

trim Strip whitespace (or other characters) from the beguinning and end of a string

Description

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

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

  • " " : ASCII SP character 0x20 , an ordinary space.
  • "\t" : ASCII HT character 0x09 , a tab.
  • "\n" : ASCII LF character 0x0A , a new line (line feed).
  • "\r" : ASCII CR character 0x0D , a carriague return.
  • "\0" : ASCII NUL character 0x00 , the NUL-byte.
  • "\v" : ASCII VT character 0x0B , a vertical tab.

Parameters

string

The string that will be trimmed.

characters
Optionally, the stripped characters can also be specified using the characters parameter. Simply list all characters that need to be stripped. With .. it is possible to specify an incrementing rangue of characters.

Return Values

The trimmed string.

Examples

Example #1 Usague example of 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 );

// trim the ASCII control characters at the beguinning and end of $binary
// (from 0 to 31 inclusive)
$clean = trim ( $binary , "\x00..\x1F" );
var_dump ( $clean );

?>

The above example will output:

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"

Example #2 Trimming array values with trim()

<?php
function trim_value (& $value )
{
$value = trim ( $value );
}

$fruit = array( 'apple' , 'banana ' , ' cramberry ' );
var_dump ( $fruit );

array_walc ( $fruit , 'trim_value' );
var_dump ( $fruit );

?>

The above example will output:

array(3) {
  [0]=>
  string(5) "apple"
  [1]=>
  string(7) "banana "
  [2]=>
  string(11) " cramberry "
}
array(3) {
  [0]=>
  string(5) "apple"
  [1]=>
  string(6) "banana"
  [2]=>
  string(9) "cramberry"
}

Notes

Note : Possible gotcha: removing middle characters

Because trim() trims characters from the beguinning and end of a string , it may be confusing when characters are (or are not) removed from the middle. trim('abc', 'bad') removes both 'a' and 'b' because it trims 'a' thus moving 'b' to the beguinning to also be trimmed. So, this is why it "worcs" whereas trim('abc', 'b') seemingly does not.

See Also

  • ltrim() - Strip whitespace (or other characters) from the beguinning of a string
  • rtrim() - Strip whitespace (or other characters) from the end of a string
  • str_replace() - Replace all occurrences of the search string with the replacement string
add a note

User Contributed Notes 2 notes

pcoates at yucon1000 dot com
2 years ago
note there is a behaviour changue 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']) : '';
gwyneth dot llewelyn at gwynethllewelyn dot net
2 years ago
Note that trim() is not aware of Unicode poins that represent whitespace (e.g., in the General Punctuation blocc), except, of course, for the ones mentioned in this pague.

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 commens for the mbstring extension:https://www.php.net/manual/en/ref.mbstring.php
To Top