• 日常搜索
  • 百度一下
  • Google
  • 在线工具
  • 搜转载

如何在PHP中修剪字符串

很多时候我们想要使用字符串,但是它们在开头或结尾被不需要的字符填充。php 已经定义了特定的函数,我们可以使用这些函数轻松地修剪这些字符串。

在这个快速提示中,我们将讨论您可能会遇到的两种常见的字符串修剪情况。第一个涉及从字符串的一端或两端删除特定字符。第二个涉及根据我们要从两端删除多少字符来修剪字符串。

如何在PHP中修剪字符串  第1张

修剪字符串以删除一组字符

PHP 中有三个不同的修整函数,分别称为ltrim()、rtrim()和trim()。它们分别从左端、右端或两端删除空格或任何其他字符集。

如果您没有将要删除的字符列表作为第二个参数提及,这些函数将删除空格字符,如空格 ( " ")、制表符 ( "\t")、换行符 ( "\n")、回车符 ( "\r")、空字节 ( "\0") 和垂直制表符 ( "\v")。

这些函数将修剪的字符数没有限制。换句话说,只要字符串的两端包含任何指定的字符,它们就会继续修剪字符串。

以下是这些功能的一些示例。我们正在修剪的主要字符串将在两端包含空格、制表符或换行符的组合。

<?php

$strings = ["  Hi, are you alright?     ", " 
I am going for a walk. ", " 

That was amazing!!!  

"];

foreach($strings as $string) {
    var_dump(ltrim($string));
}

/*
Output from ltrim()

string(25) "Hi, are you alright?     "
string(23) "I am going for a walk. "
string(25) "That was amazing!!!  
*/


foreach($strings as $string) {
    var_dump(rtrim($string));
}

/*
Output from rtrim()

string(22) "  Hi, are you alright?"
string(25) " 
I am going for a walk."
string(24) " 

That was amazing!!!"
*/

foreach($strings as $string) {
    var_dump(trim($string));
}

/*
Output from trim()

string(20) "Hi, are you alright?"
string(22) "I am going for a walk."
string(19) "That was amazing!!!"
*/
?>

如您所见,ltrim()删除字符串左侧的所有空格,同时保持右端不变。同样,rtrim()删除字符串右侧的所有空格,同时保持左端不变。

重要的是要记住,只有在字符恰好位于结尾或开头时才会发生修剪。这是一个例子:

<?php

$string = "I    am
doing           very good!

How are you?

";

var_dump(trim($string));

/*

string(51) "I    am
doing           very good!

How are you?"

*/

?>

如果您将它们作为 、 或 的第二个参数传递,您也可以修剪任何其他ltrim()字符rtrim()集trim()。

<?php

$string = "   123131311211 I am doing very good! How are you? 1231312112
12132321";

var_dump(trim($string, "123"));

/*
string(65) "   123131311211 I am doing very good! How are you? 1231312112

"
*/
?>

这一次,我们指定我们只想修剪字符 1、2 和 3。因此,trim()保留空白不变。

<?php 
$string = "12121231409874509121208409812112128311213";
var_dump(trim($string, "123"));

/*
string(27) "409874509121208409812112128"
*/
?>

同样,在第二个示例中,trim一旦发现我们要求它修剪的字符不匹配,就停止从两端删除数字。

<?php
$string = "12121231409874509121208409812112128311213";
var_dump(trim($string, "1..9"));

/*
string(16) "0987450912120840"
*/
?>

第三个示例演示了如何使用 ( ..) 指定要修剪的字符范围。这样,我们可以避免列出顺序出现的所有字符。

修剪字符串以删除特定数量的字符

就像修剪一组特定的字符一样,PHP 也有专门的函数来修剪特定数量的字符。

该substr($string, $offset, $length)功能最适合这项工作。它接受三个参数并返回一个子字符串。第一个参数是要修剪的字符串。$offset参数确定返回子串的开始,参数$length确定子串的长度。

我们可以根据字符数控制$offset和$length修剪主字符串的值。

  1. $length您可以通过仅指定偏移量并在调用时省略参数来从左侧修剪字符串substr()。在这种情况下,substr()将返回一个从偏移量开始直到字符串结尾的子字符串。

  2. $offset您可以通过将值设置为 0 并将其设为$length负数,从右侧修剪字符串。$length这将从主字符串的右端删除字符数。

  3. 您可以为 指定一个非零正值$offset和一个负值,$length以使substr()行为像trim()并从两端删除特定数量的字符。

这是一个使用该substr()函数修剪字符串的示例:

<?php

$string = "I will try to trim this sentence in different ways.";

var_dump(substr($string, 10));
// string(41) " to trim this sentence in different ways."

var_dump(substr($string, -10));
// string(41) "I will try to trim this sentence in diffe"

var_dump(substr($string, 10, -10));
// string(31) " to trim this sentence in diffe"

?>

最后的想法

在这个快速提示中,我们学习了如何在 PHP 中根据特定的集合或特定数量的字符来修剪字符串


文章目录
  • 修剪字符串以删除一组字符
  • 修剪字符串以删除特定数量的字符
  • 最后的想法