从字符串PHP删除尾部斜杠


Answers:


235

当然可以,只需检查最后一个字符是否为斜杠,然后核对该字符即可。

if(substr($string, -1) == '/') {
    $string = substr($string, 0, -1);
}

可能会使用另一个(可能更好)的选项rtrim()-这个选项会删除所有尾随的斜杠:

$string = rtrim($string, '/');

我也建议使用DIRECTORY_SEPARATOR而不是'/' 如果使用文件路径,这样它就可以在所有平台上使用。
布拉德

61

这样可以删除斜杠:

$str = rtrim($str, '/');

13
请注意,这会删除所有尾随的斜杠。
浓汤

24

长期以来人们一直接受,但是在我的相关搜索中,我偶然发现了这里,并添加了“完整性”;rtrim()很棒,但是可以这样实现:

$string = rtrim($string, '/\\'); //strip both forward and back slashes

它确保了从* nixWindows的可移植性,因为我认为这个问题与处理路径有关。


1
有趣!然而,在我结束我偶然发现这里有关路线,不路径
费利克斯·加侬-格尼尔

1
@FélixGagnon-Grenier嗯,关于路径的问题答案有些冒昧。OP可能有完全不同的原因。由于“路线”通常作用于“路径”(某种形式),因此最终都是一样的:-)
Dan Lugg 2015年

万一Op确实想从路径中删除尾随目录分隔符,请使用常量DIRECTORY_SEPARATOR代替'/\\'
詹斯

@Jens我同意,但是由于PHP支持* nix和Windows路径,因此极端情况可能不会被修饰。
丹·拉格

@NorthbornDesign:你有例子吗?您的意思是在Windows上修剪* nix路径,反之亦然,不仅仅是本地路径吗?
詹斯

4

rtrim 使用rtrim,因为它尊重字符串不以斜杠结尾


2
除了不能真正删除尾部的斜杠,而是取消对字符串的引用。
user502515 2010年

好吧,我错过了问题的结尾部分……我犯了一个错误,我特别写道,它消除了所有斜杠
Breezer 2010年

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.