我不知道这是PHP错误还是什么,
我跑的时候:
$query = "test text";
$query = rtrim($query,'union all select ');
“$ query”返回(每次)
$query = 'test tex';
应该是:
$query = 'test text';
有什么建议吗?
答案 0 :(得分:3)
rtrim()
的第二个参数是应该修剪的所有字符的列表。因此,rtrim("text", "union all select ")
将移除u
,n
,i
,o
,n
,...,{{ 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,你应该会看到预期的结果。