PHP5:意料之外的结果“rtrim()”

时间:2015-01-23 17:26:54

标签: php

我不知道这是PHP错误还是什么,

我跑的时候:

    $query = "test text";
    $query = rtrim($query,'union all select ');

“$ query”返回(每次)

$query = 'test tex';

应该是:

$query = 'test text';

有什么建议吗?

4 个答案:

答案 0 :(得分:3)

rtrim()的第二个参数是应该修剪的所有字符的列表。因此,rtrim("text", "union all select ")将移除union,...,{{ 1}},或c

因此,如果文字为t,则上述代码会删除最后一个test text,因为它是您要删除的字符列表的一部分。

要从输入字符串的末尾删除文本t,您可以使用以下内容:

union all select

答案 1 :(得分:3)

这不是PHP中的错误。查看rtrim的文档:

  

character_mask 您还可以指定要删除的字符,   通过character_mask参数。只需列出所有字符   你想被剥夺。使用..你可以指定一个范围   字符。

第二个参数是要删除的个别字符

答案 2 :(得分:1)

看起来像correct result to me

第二个参数'union all select'是一个字符掩码,这意味着它不被视为字符串,但字符串中的任何字符都将从第一个参数中修剪,从右端开始。

答案 3 :(得分:0)

之所以脱掉这个'是因为角色面具的作用。 rTrim有2个参数,字符串和字符掩码。第二个参数中的任何字符都将从指定字符串的右侧剥离。如果你在没有字符掩码的情况下调用rTrim,你应该会看到预期的结果。