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

Remove the last character using strrchr and substr in PHP

用户可能会输入 abc.com/ 而不是 abc.com,所以我想使用 strchr 进行验证。

这有效但看起来很奇怪

    if(strrchr($url, "/") == "/"){
        $url = substr($url, 0,-1);
        echo $url;
    }

有更好的方法吗?

是 - 使用 trim() or rtrim() 的可选第二个参数,您可以将字符列表指定为 trim 字符串末尾。:

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

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

// 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

如果您还想去除空格,请使用 '/' 在字符串中添加其他字符,如 rtrim($url, ' /')

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

if (substr($url, -1) === '/') {
  // true
}