【问题标题】:Remove Trailing Slash From String PHP从字符串 PHP 中删除尾部斜杠
【发布时间】:2010-11-30 21:59:10
【问题描述】:

是否可以使用 PHP 从字符串中删除尾部斜杠 /

【问题讨论】:

    标签: php string


    【解决方案1】:

    当然可以,只需检查最后一个字符是否为斜线,然后用 nuke 删除那个字符。

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

    另一个(可能更好)选项是使用rtrim() - 这个选项会删除 all 尾部斜杠:

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

    【讨论】:

    • 如果使用文件路径,我还建议使用DIRECTORY_SEPARATOR 而不是'/',以便它适用于所有平台。
    【解决方案2】:

    这会删除尾部斜杠:

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

    【讨论】:

    • 请注意,这会删除 所有 个尾随斜杠。
    【解决方案3】:

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

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

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

    【讨论】:

    • 有趣!但是在我这边,我偶然发现了 routes,而不是路径
    • @FélixGagnon-Grenier 嗯,关于路径的答案有点冒昧; OP可能有完全不同的原因。由于“路线”通常作用于“路径”(某种),所以最终都是一样的 :-)
    • 如果 Op 确实想从路径中删除尾随目录分隔符,请使用常量 DIRECTORY_SEPARATOR 而不是 '/\\'
    • @Jens 我同意,但是由于 PHP 支持 *nix 和 Windows 路径,极端情况可能不会被修剪。
    • @NorthbornDesign:你有例子吗?您的意思是在 Windows 上修剪 *nix 路径,反之亦然,而不仅仅是本机路径?
    【解决方案4】:

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

    【讨论】:

    • 除了它并没有真正删除尾部斜杠,而是取消引用一个字符串。
    • 好吧,我错过了问题的结尾部分......我犯了一个错误,我特别写了它会删除所有斜杠
    【解决方案5】:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-10-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-19
      • 1970-01-01
      相关资源
      最近更新 更多