-1

如何rtrim工作?我有一个字符串“4dbb3dca&”。我不确定我的字符串是如何形成的。我想打电话rtrim('4dbb3dca&', '&')

--edit:&可能是 $amp;特殊字符问题

但是在我的字符串之后是4dbb3dc.

我希望它是4dbb3dca

有什么解决方法吗?我尝试使用&,但随后 rtrim 什么也不做,并返回初始字符串。可以rtrim在我的情况下使用吗?它取决于php版本吗?

- - 编辑 - -

经过一些研究,我意识到我想要:我想删除&使用函数&rtrim()这可能吗?

4

4 回答 4

5

Q1。在我的情况下可以使用 rtrim 吗? 的,可以rtrim()在您的情况下使用。

Q2。它取决于php版本吗?

您只需要不使用echo rtrim('4dbb3dca&', '&');,因为rtrim&的第二个参数的工作方式如下-

您还可以通过 character_mask 参数指定要去除的字符只需列出您要剥离的所有字符

演示: https ://3v4l.org/anFIR

如果您使用下面的示例,那么您将得到相同的结果,因为它会尝试从给定字符串的右侧删除所有给定字符。对于 Ex-

echo rtrim('4dbb3dca&;pm', '&');` // will also return 4dbb3dc
于 2019-01-09T15:59:13.427 回答
1

看起来您正试图从字符串末尾删除一个&符号,可能是编码形式。rtrim正如您所见,没有给您足够的控制权来做到这一点,但您可以使用preg_replace.

echo preg_replace('/&(amp;)?$/', '', $string);

该模式将匹配字符串末尾的 & 符号,可选地后跟 amp;。

于 2019-01-09T16:18:35.933 回答
1

您指定的第二个字符串rtim()包含您要修剪的所有额外字符。所以被修剪的字符是"&""a"(两者都确实包含在rtrim()函数调用的第二个参数中"&amp")。

为了得到你想要的结果,你应该rtrim()这样调用:

rtrim('4dbb3dca&', '&')
于 2019-01-09T15:58:18.690 回答
0

rtrim作品删除第二个参数的最后一个字符的方式。

PHP 已将字符串拆分为字符,并检查字符串最后是否包含字符。

如果您从字符列表中有两个字符,rtrim则将删除这两个字符

例如 :

;&apm这将是相同的结果&

如果要删除字符串末尾的唯一 & 符号,请使用以下代码:rtrim('4dbb3dca&','&');

要了解更多信息,您可以在 php.net http://php.net/manual/en/function.rtrim.php阅读它

于 2019-01-09T16:33:36.877 回答