在PHP中使用strrchr和substr删除最后一个字符

ivy*_*ong 1 php

用户可以输入abc.com/而不是abc.com,所以我想使用strchr.

这有效,但看起来很奇怪

    if(strrchr($url, "/") == "/"){
        $url = substr($url, 0,-1);
        echo $url;
    }
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法呢?

Mic*_*ski 7

是 - 使用可选的第二个参数,trim()或者rtrim()您可以指定一个字符列表来修剪字符串的结尾:

$url = rtrim($url, '/');
Run Code Online (Sandbox Code Playgroud)

如果尾随/存在,它将被剥离并且没有它返回字符串.如果不存在,则字符串将以其原始形式返回.

// URL with trailing /
$url1 = 'example.com/';
echo rtrim($url1, '/');
// example.com

// URL without trailing 
$url2 = 'example.com';
echo rtrim($url2, '/');
// example.com

// URL with many trailing /
$url3 = 'example.com/////';
echo rtrim($url3, '/');
// example.com
Run Code Online (Sandbox Code Playgroud)

'/'如果要删除空格,请在字符串中添加其他字符,如rtrim($url, ' /')

如果您只想测试URL的最后一个字符/是否可以,则可以使用substr()

if (substr($url, -1) === '/') {
  // true
}
Run Code Online (Sandbox Code Playgroud)