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

// 从 $binary 的开头和结尾去除 ASCII 控制字符(从 0 到 31 包含)
//(从 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 个注释

13
pcoates at yukon1000 dot com
1 年前
注意,在 PHP 8 中存在行为改变

以前你可以这样写
$p1 = trim($_POST['p1']);
现在,如果参数 p1 未设置,这将抛出弃用警告。最好这样写
$p1 = trim($_POST['p1']??'');
或者
$p1 = isset($_POST['p1']) ? trim($_POST['p1']) : null;
或者
$p1 = isset($_POST['p1']) ? trim($_POST['p1']) : '';
2
gwyneth dot llewelyn at gwynethllewelyn dot net
1 年前
请注意,trim() 不知道表示空白的 Unicode 点(例如,在通用标点符号块中),当然,除了本页提到的那些。

在撰写本文时(2023 年 7 月),PHP 中没有专门针对 Unicode 的 trim 函数,但您可以尝试一些针对 mbstring 扩展的评论中发布的多字节字符串的 trim 示例:https://php.net/manual/en/ref.mbstring.php
To Top