In PHP, you can remove a trailing slash from a string in the following ways:
Using rtrim()
You can specify the "/" character as the second the argument to the rtrim() function to remove one or more trailing slashes, for example, like so:
$url = 'https://www.designcise.com/'; echo rtrim($url, '/'); // 'https://www.designcise.com'
The rtrim() function matches and removes multiple occurrences of the "/" character:
$url = 'https://www.designcise.com///'; echo rtrim($url, '/'); // 'https://www.designcise.com'
Using a Regular Expression
You can use a regular expression with the preg_replace() function to remove a trailing slash without the need to first explicitly check if a trailing slash exists and then remove it. For example:
$url = 'https://www.designcise.com/';
echo preg_replace('/\/$/', '', $url); // 'https://www.designcise.com'
The above pattern would only only match and replace a single occurrence of "/" at the end of the string. However, you can update the pattern to remove multiple occurrences as well, for example, like so:
$url = 'https://www.designcise.com///';
echo preg_replace('/\/*$/', '', $url); // 'https://www.designcise.com'
Checking the End Character and Removing Accordingly
You can use the following function to remove a single occurrence of the "/" character:
function rtrimOnce(string $str): string
{
$substrLen = strlen($str) - 1;
return substr($str, 0, $substrLen);
}
// ...
Prior to calling this function though, you need to check if the end character is indeed a forward slash (/). To do so, you can do any of the following:
// ... $url = 'https://www.designcise.com/'; echo ($url !== '' && $url[-1] === '/') ? rtrimOnce($url) : $url; // output: 'https://www.designcise.com'
// PHP 8+ // ... $url = 'https://www.designcise.com/'; echo (str_ends_with($url, '/')) ? rtrimOnce($url) : $url; // output: 'https://www.designcise.com'
// ... $url = 'https://www.designcise.com/'; echo (substr($url, -1) === '/') ? rtrimOnce($url) : $url; // output: 'https://www.designcise.com'
This post was published by Daniyal Hamid. Daniyal currently works as the Head of Engineering in Germany and has 20+ years of experience in software engineering, design and marketing. Please show your love and support by sharing this post.