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)),空字节符。
  • "\v" (ASCII 11 (0x0B)),垂直制表符。

参数

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

// 清除 $binary 首位的 ASCII 控制字符
// (包括 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(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() 从字符串的开始和末尾修剪字符。所以中间是否删除字符可能会造成混淆。trim('abc', 'bad') 移除了“a”和“b”,是因为修剪了“a”之后,“b”移动到了开头,所以也被修剪了。所以这就是为什么能正常工作而 trim('abc', 'b') 看起来没有的原因。

参见

  • ltrim() - 删除字符串开头的空白字符(或其他字符)
  • rtrim() - 删除字符串末端的空白字符(或者其他字符)
  • str_replace() - 子字符串替换