You might want to remove a character from the end of a string when it shows up as a mistake in PHP.
Table of Content
That may be a comma, period, or slash that could mess up your final result. Sometimes the data comes from a loop or a user. Or even an API, and it adds one extra mark that you do not want.
This fix keeps your output clean and avoids problems in parsing, layout, or file paths.
Here are the common cases:
- Remove a trailing comma after the loop through a list
- Fix slashes in folder paths
- Trim a character before sending text to a database
- Clean up user input before display
These are small changes that can fix bigger issues in logic.
Use substr()
to Remove the Last Character from a String in PHP
You can use substr()
to return part of a string. It lets you set where to start and how long to keep.
Here is the syntax:
substr($string, 0, -1);
For example:
$name = "David#";
$clean = substr($name, 0, -1);
echo $clean;
This removes the last character (#
) and returns David
. It takes all characters from the start to the second-to-last one.
Let’s move on to the following section to see how to achieve the same result with another built-in function in PHP.
Use rtrim()
to Remove Specific Trailing Characters in PHP
You can also use rtrim()
when you want to remove a certain character, not just any last one. It removes a set of characters from the end.
Here is the syntax
rtrim($string, "characters_to_remove");
For example:
$url = "example.com/";
$cleanUrl = rtrim($url, "/");
echo $cleanUrl;
This removes the slash only if it is at the end. It keeps the rest of the string safe.
You just saw how to clean up targeted characters. In the following part, you will learn how to handle special characters using mb_substr()
.
Use mb_substr()
for Multibyte-Safe Character Removal in PHP
The mb_substr()
works like substr()
but supports multibyte characters like emojis and non-English letters. It doesn’t cut a character in half.
It helps you when you work with UTF-8 strings or input from different languages.
Here is an example:
$text = "ありがとう😊";
$short = mb_substr($text, 0, mb_strlen($text) - 1);
echo $short;
This cuts the emoji and keeps the full Japanese word. Without mb_substr()
, PHP might break the character.
Let’s take a look at how regular expressions can help in advanced cases.
Use preg_replace()
with Regex to Remove the Last Character
Regex lets you match patterns and remove the last character only when it matches. It gives you more control.
For example:
$code = "ABC-";
$fixed = preg_replace('/-$/', '', $code);
echo $fixed;
This removes the dash only if it is at the end. If the dash appears elsewhere, it stays untouched.
Examples
Remove trailing period only if it is alone:
$sentence = "Done.";
if (substr($sentence, -1) === ".") {
$sentence = substr($sentence, 0, -1);
}
echo $sentence;
This checks for a dot at the end and removes it. It does not change if the dot is inside a word.
Clean a tag list like “php,html,css,”:
$tags = "php,html,css,";
$tags = rtrim($tags, ",");
echo $tags;
This trims the last comma but keeps the list readable.
Remove the last character of a path unless it ends with a file:
$path = "/user/data/";
if (is_dir($path)) {
$path = rtrim($path, "/");
}
echo $path;
It checks if the string is a directory and then removes the slash. It avoids breaking file paths.
Wrapping Up
In this article, you learned how to remove the last character from a string in PHP with different methods. You saw how substr()
, rtrim()
, mb_substr()
, and preg_replace()
solve this in different ways.
Here is a quick recap:
- Use
substr()
for simple cuts - Use
rtrim()
for specific character trimming - Use
mb_substr()
for UTF-8 safe trimming - Use
preg_replace()
for pattern-based cleanup
Each method works best in certain cases. Choose based on your input and goal.