簡體   English   中英

PHP rtrim函數修剪多余的字符? 為什么?

[英]PHP rtrim function trim extra character? Why?

rtrim如何工作? 我有一個字符串“ 4dbb3dca&”。 我不確定我的弦是如何固定的。 我想打電話給rtrim('4dbb3dca&', '&')

--edit: &可能是$amp; 特殊字符問題

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

我希望它是4dbb3dca

有什么解決方法嗎? 我嘗試使用& ,但是rtrim不執行任何操作,並且返回了初始字符串。 在我的情況下可以使用rtrim嗎? 是否取決於php版本?

-編輯-

經過研究后,我意識到我想要:我想要刪除&使用& rtrim()函數中。 這可能嗎?

Q1 在我的情況下可以使用rtrim嗎? 是的 ,您可以根據情況使用rtrim()

Q2 是否取決於php版本? 沒有

您只需要使用echo rtrim('4dbb3dca&', '&'); 不是& 因為rtrim的第二個參數的工作方式如下-

你也可以指定你想要去除,由character_mask參數的手段的人物 只需列出您要刪除的所有字符

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

如果使用下面的示例,則會得到相同的結果,因為它將嘗試從給定字符串的右側刪除所有給定字符。 對於前

echo rtrim('4dbb3dca&;pm', '&');` // will also return 4dbb3dc

您在rtim()中指定的第二個字符串包含要修剪的所有其他字符。 因此,要修剪的字符為"&""a" (這兩個確實包含在您的rtrim()函數調用的第二個參數"&amp" )。

為了獲得想要的結果,您應該通過以下方式調用rtrim()

rtrim('4dbb3dca&', '&')

看起來您正在嘗試從字符串末尾刪除“&”號(可能采用編碼形式)。 如您所見, rtrim沒有給您足夠的控制權來執行此操作,但是您可以使用preg_replace

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

該模式將在字符串的末尾匹配與號,並可選地在其后加上amp;。

rtrim工作方式是刪除第二個參數的最后一個字符。

PHP已將字符串拆分為字符,並檢查字符串的最后是否包含字符。

如果您從字符列表中選擇了兩個字符,則rtrim會刪除這兩個字符

例如 :

;&apm將與&相同的結果

如果要刪除字符串末尾唯一的&符號,請使用以下代碼: rtrim('4dbb3dca&','&');

要了解更多信息,可以在php.net http://php.net/manual/en/function.rtrim.php上閱讀有關內容

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM