PHP rtrim和ltrim正在修剪超过预期

时间:2014-04-15 16:12:29

标签: php

我想从我网站上的页面中删除Search -。以下是我的代码示例:

输入:

$search = "Search - echelon";
$trim = "Search - ";

$result = ltrim($search,$trim);


echo $result;

输出:

lon

欲望输出:

echelon

我怎么能这样做,为什么ltrim会在上面的例子中修剪掉更多?谢谢!

6 个答案:

答案 0 :(得分:6)

RTM。第二个参数被视为要修剪的一组字符。

在这种情况下:

S - in the list, trim it
e - in the list, trim it
a - in the list, trim it
r - in the list, trim it
c - in the list, trim it
h - in the list, trim it
_ - (space) in the list, trim it
- - in the list, trim it
_ - (space) in the list, trim it
e - in the list, trim it
c - in the list, trim it
h - in the list, trim it
e - in the list, trim it
l - NOT in the list, stop!

lon is left

你的意思是?

$result = substr($search,strlen($trim));

答案 1 :(得分:3)

ltrim ( string $str [, string $character_mask ] ) - 从字符串的开头删除空格(或其他字符)。 character_mask - 要删除的字符

str_replace

怎么样?
$result = str_replace($trim,"",$search);

答案 2 :(得分:1)

from PHP.net:ltrim - 从字符串的开头删除空格(或其他字符)

因此它不会修剪字符串,它会修剪您输入的任何字符......

我会选择@ krishR的回答

答案 3 :(得分:1)

trim修剪您提供的任何字符。它单独查看每个字符并将其修剪掉,它不会搜索整个字符串。如果你正在寻找从开头删除一个字符串,当且仅当它存在时,请执行以下操作:

$trimmed = preg_replace('/^Search - /', '', $search);

答案 4 :(得分:0)

// trim — Strip whitespace (or other characters) from the beginning and end of a string
// Example 
$ageTypes = ' Adult, Child, Kids, ';
// Output, removes empty string from both ends 
// Adult, Child, Kids,

// Rtrim  - Remove characters from the right side of a string: 
// Example 
$ageTypes = 'Adult, Child, Kids';
echo rtrim($ageTypes, ',');
// Output 

// Ltrim - Remove characters from the left side of a string: 
// Example 
$ageTypes = ',Adult, Child, Kids, ';
echo ltrim($ageTypes, ',');
// Adult, Child, Kids,

答案 5 :(得分:0)

这有点晚了。但是,除了所有借口。 我发现PHP trim经常删除过多。我觉得使用起来不可靠。这只是一个PHP漏洞,无人看管。

因此,我正在使用:

function phptrim($str, $strip = ' '){
    while($str != '' && substr($str, 0, 1) == $strip)  $str = substr_replace($str, '', 0, 1);
    while($str != '' && substr($str, -1) == $strip)    $str = substr_replace($str, '', -1);

    return $str;
}

请注意,如果您在循环中使用它,这会占用一些CPU资源。因此,请尽量避免使用它。但是,如果您需要它。在这里。