If you need to remove string duplication in Laravel and PHP applications, Laravel v11.20 adds a new method named deduplicate
to the String helpers, which allows you to quickly and easily remove duplicate characters.
use Illuminate\Support\{Str,Stringable};
$string = '/usr/local////path/to///desktop';
Str::deduplicate($string, '/');
// "/usr/local/path/to/desktop"
(new Stringable($string))->deduplicate('/')->toString();
// "/usr/local/path/to/desktop"
The default replacement character in the deduplicate()
method is a space character, which could also be a use for the squish()
helper introduced in Laravel v9.7.0. Let me illustrate when squish()
might be a better choice to remove extra spaces:
Str::deduplicate(' John Smith Jr. '); // " John Smith Jr. "
Str::squish(' John Smith Jr. '); // "John Smith Jr."
Note the extra space ' '
characters at the beginning and end using deduplicate()
, which is by design. Deduplicate is used to replace consecutive instances of a given character with a single character in the given string. Squish also removes other space characters, such as newlines and tabs:
// Each example returns `laravel php framework`:
Str::squish(' laravel php framework '));
Str::squish("laravel\t\tphp\n\nframework");
Str::squish('
laravel
php
framework
');
The post Remove Duplicate Characters in Strings With Laravel appeared first on Laravel News.
Join the Laravel Newsletter to get Laravel articles like this directly in your inbox.