Replace multiple keywords trong một chuỗi trong Laravel Chuyên mục PHP và Laravel 2024-01-05 51 Lượt xem 9 Lượt thích 0 Bình luận

Bắt đầu từ phiên bản v8.83.0 và Laravel 9, bạn hiện có thể sử dụng nó theo các cách sau:
use Illuminate\Support\Str;
echo Str::swap([
'PHP' => 'PHP 8',
'awesome' => 'fantastic'
], 'PHP is awesome');
// PHP 8 is fantastic
$string = Str::of('Tacos are great!')
->swap([
'Tacos' => 'Burritos',
'great' => 'fantastic',
]);
// Burritos are fantastic!
Kiểm tra tài liệu — Str::swap
Nếu bạn vẫn đang sử dụng phiên bản trước 8.83.0, hãy tiếp tục đọc bài viết này.
Đôi khi, bạn có thể gặp tình huống trong đó có một số từ khóa và bạn muốn thay thế chúng bằng một số từ khóa khác trong chuỗi.
Tôi đã khám phá ra chỉ đơn giản như một sleek Laravel macro của Aaron Francis có thể giúp bạn thực hiện điều này một cách thuận tiện.
Ví dụ, giả sử chúng ta có một chuỗi gọi là "PHP is awesome" và chúng ta muốn thay thế "PHP" bằng "PHP 8" và "awesome" bằng "fantastic" trong chuỗi này.
Dưới đây là cách chúng ta có thể thực hiện điều này bằng cách sử dụng macro này.
use Illuminate\Support\Str;
Str::macro('swap', function($map, $string) {
return str_replace(array_keys($map), array_values($map), $string);
});
$string = 'PHP is awesome';
echo Str::swap([
'PHP' => 'PHP 8',
'awesome' => 'fantastic'
], $string);
// PHP 8 is fantastic
Bạn có thể hoán đổi nhiều từ khóa trong một chuỗi cùng một lúc như vậy.
Thực sự rất tiện dụng!
Bình luận (0)