Giới thiệu
Trong phần 3 của loạt bài về Fluent Strings, chúng ta sẽ tiếp tục khám phá các hàm nâng cao trong Laravel. Tính năng Fluent Strings cho phép bạn thao tác với chuỗi một cách linh hoạt và dễ đọc. Ngoài ra, chúng ta cũng sẽ tìm hiểu các hàm liên quan đến điều kiện (when, whenEmpty, whenStartsWith,...) giúp bạn xử lý chuỗi dựa trên các điều kiện cụ thể.
1. squish($string)
Loại bỏ các khoảng trắng dư thừa, chỉ giữ lại một khoảng trắng giữa các từ.
Cách sử dụng:
use Illuminate\Support\Str;
$result = Str::of(' Laravel Framework is great ')->squish();
// Kết quả: "Laravel Framework is great"2. start($string, $prefix)
Thêm chuỗi con vào đầu chuỗi nếu nó chưa tồn tại.
Cách sử dụng:
$result = Str::of('codetuthub.com')->start('www.');
// Kết quả: "www.codetuthub.com"3. startsWith($haystack, $needles)
Kiểm tra xem chuỗi có bắt đầu bằng một chuỗi con không.
Cách sử dụng:
$result = Str::of('Laravel Framework')->startsWith('Laravel');
// Kết quả: true4. stripTags($string, $allowableTags = null)
Loại bỏ các thẻ HTML khỏi chuỗi, ngoại trừ các thẻ được chỉ định.
Cách sử dụng:
$result = Str::of('<p>Hello <b>World</b></p>')->stripTags();
// Kết quả: "Hello World"5. studly($string)
Chuyển chuỗi thành kiểu StudlyCase (chữ cái đầu của mỗi từ viết hoa).
Cách sử dụng:
$result = Str::of('hello_world')->studly();
// Kết quả: "HelloWorld"6. substr($string, $start, $length = null)
Trả về một phần của chuỗi, bắt đầu từ vị trí start với độ dài length.
Cách sử dụng:
$result = Str::of('Laravel')->substr(0, 4);
// Kết quả: "Lara"7. substrReplace($string, $replacement, $offset, $length = null)
Thay thế một phần của chuỗi bằng một chuỗi khác từ vị trí chỉ định.
Cách sử dụng:
$result = Str::of('Laravel Framework')->substrReplace('PHP', 8);
// Kết quả: "Laravel PHP"8. swap(array $map)
Thay thế các giá trị trong chuỗi bằng cách sử dụng một mảng chứa các cặp key => value.
Cách sử dụng:
$result = Str::of('Tuthub.com')->swap(['Tuthub' => 'CodeTutHub']);
// Kết quả: "CodeTutHub.com"9. take($limit)
Lấy một phần của chuỗi dựa trên độ dài giới hạn.
Cách sử dụng:
$result = Str::of('Laravel is great')->take(7);
// Kết quả: "Laravel"10. tap($callback)
Thực hiện callback trên chuỗi mà không làm thay đổi chuỗi.
Cách sử dụng:
$result = Str::of('Laravel')->tap(function ($string) {
echo "This is: " . $string;
});
// Kết quả: In ra "This is: Laravel", trả về "Laravel"11. test($pattern)
Kiểm tra xem chuỗi có khớp với biểu thức chính quy hay không.
Cách sử dụng:
$result = Str::of('Laravel 8')->test('/Laravel/');
// Kết quả: true12. title($string)
Chuyển chuỗi thành dạng Title Case (chữ cái đầu mỗi từ viết hoa).
Cách sử dụng:
$result = Str::of('laravel framework')->title();
// Kết quả: "Laravel Framework"13. toBase64($string)
Chuyển chuỗi thành định dạng Base64.
Cách sử dụng:
$result = Str::of('Laravel')->toBase64();
// Kết quả: "TGFyYXZlbA=="14. transliterate($string)
Chuyển đổi các ký tự không phải ASCII thành ký tự gần nhất.
Cách sử dụng:
$result = Str::of('café')->transliterate();
// Kết quả: "cafe"15. trim($string)
Loại bỏ các khoảng trắng ở đầu và cuối chuỗi.
Cách sử dụng:
$result = Str::of(' Laravel ')->trim();
// Kết quả: "Laravel"16. ltrim($string)
Loại bỏ các khoảng trắng ở đầu chuỗi.
Cách sử dụng:
$result = Str::of(' Laravel')->ltrim();
// Kết quả: "Laravel"17. rtrim($string)
Loại bỏ các khoảng trắng ở cuối chuỗi.
Cách sử dụng:
$result = Str::of('Laravel ')->rtrim();
// Kết quả: "Laravel"18. ucfirst($string)
Viết hoa chữ cái đầu tiên của chuỗi.
Cách sử dụng:
$result = Str::of('laravel')->ucfirst();
// Kết quả: "Laravel"19. ucsplit($string)
Chia chuỗi thành các từ dựa trên chữ hoa đầu của mỗi từ.
Cách sử dụng:
$result = Str::of('HelloWorld')->ucsplit();
// Kết quả: Collection chứa "Hello", "World"20. unwrap($string, $wrapper)
Loại bỏ chuỗi bọc (wrapper) xung quanh chuỗi nếu tồn tại.
Cách sử dụng:
$result = Str::of('(Laravel)')->unwrap('()');
// Kết quả: "Laravel"21. upper($string)
Chuyển chuỗi thành chữ hoa.
Cách sử dụng:
$result = Str::of('laravel')->upper();
// Kết quả: "LARAVEL"22. when($condition, $callback)
Thực hiện callback nếu điều kiện $condition là đúng.
Cách sử dụng:
$result = Str::of('Laravel')->when(true, function ($string) {
return $string->append(' Framework');
});
// Kết quả: "Laravel Framework"23. whenContains($needles, $callback)
Thực hiện callback nếu chuỗi chứa chuỗi con $needles.
Cách sử dụng:
$result = Str::of('Laravel Framework')->whenContains('Laravel', function ($string) {
return $string->upper();
});
// Kết quả: "LARAVEL FRAMEWORK"24. whenContainsAll($needles, $callback)
Thực hiện callback nếu chuỗi chứa tất cả các chuỗi con trong $needles.
Cách sử dụng:
$result = Str::of('Laravel is great')->whenContainsAll(['Laravel', 'great'], function ($string) {
return $string->upper();
});
// Kết quả: "LARAVEL IS GREAT"25. whenEmpty($callback)
Thực hiện callback nếu chuỗi rỗng.
Cách sử dụng:
$result = Str::of('')->whenEmpty(function ($string) {
return 'Chuỗi rỗng';
});
// Kết quả: "Chuỗi rỗng"26. whenNotEmpty($callback)
Thực hiện callback nếu chuỗi không rỗng.
Cách sử dụng:
$result = Str::of('Laravel')->whenNotEmpty(function ($string) {
return $string->append(' Framework');
});
// Kết quả: "Laravel Framework"27. whenStartsWith($needles, $callback)
Thực hiện callback nếu chuỗi bắt đầu bằng $needles.
Cách sử dụng:
$result = Str::of('Laravel')->whenStartsWith('Lara', function ($string) {
return $string->append(' Framework');
});
// Kết quả: "Laravel Framework"28. whenEndsWith($needles, $callback)
Thực hiện callback nếu chuỗi kết thúc bằng $needles.
Cách sử dụng:
$result = Str::of('Laravel Framework')->whenEndsWith('Framework', function ($string) {
return $string->upper();
});
// Kết quả: "LARAVEL FRAMEWORK"29. whenExactly($value, $callback)
Thực hiện callback nếu chuỗi khớp chính xác với $value.
Cách sử dụng:
$result = Str::of('Laravel')->whenExactly('Laravel', function ($string) {
return 'Exact match!';
});
// Kết quả: "Exact match!"30. whenNotExactly($value, $callback)
Thực hiện callback nếu chuỗi không khớp chính xác với $value.
Cách sử dụng:
$result = Str::of('Laravel')->whenNotExactly('Symfony', function ($string) {
return 'Not an exact match!';
});
// Kết quả: "Not an exact match!"31. whenIs($pattern, $callback)
Thực hiện callback nếu chuỗi khớp với mẫu $pattern.
Cách sử dụng:
$result = Str::of('foo.bar')->whenIs('foo.*', function ($string) {
return 'Pattern match!';
});
// Kết quả: "Pattern match!"32. whenIsAscii($callback)
Thực hiện callback nếu chuỗi chỉ chứa các ký tự ASCII.
Cách sử dụng:
$result = Str::of('Laravel123')->whenIsAscii(function ($string) {
return 'ASCII only!';
});
// Kết quả: "ASCII only!"33. whenIsUlid($callback)
Thực hiện callback nếu chuỗi là một ULID hợp lệ.
Cách sử dụng:
$result = Str::of('01F3TXD6SC7TK5KN5VXDRBQYJN')->whenIsUlid(function ($string) {
return 'Valid ULID!';
});
// Kết quả: "Valid ULID!"34. whenIsUuid($callback)
Thực hiện callback nếu chuỗi là một UUID hợp lệ.
Cách sử dụng:
$result = Str::of('123e4567-e89b-12d3-a456-426614174000')->whenIsUuid(function ($string) {
return 'Valid UUID!';
});
// Kết quả: "Valid UUID!"35. whenTest($pattern, $callback)
Thực hiện callback nếu chuỗi khớp với biểu thức chính quy $pattern.
Cách sử dụng:
$result = Str::of('foo')->whenTest('/foo/', function ($string) {
return 'Regex match!';
});
// Kết quả: "Regex match!"36. wordCount($string)
Đếm số lượng từ trong chuỗi.
Cách sử dụng:
$result = Str::of('Laravel is great')->wordCount();
// Kết quả: 337. words($string, $words, $end = '...')
Giới hạn số lượng từ trong chuỗi và thêm dấu ... nếu vượt quá số lượng từ cho phép.
Cách sử dụng:
$result = Str::of('Laravel is a great framework')->words(3);
// Kết quả: "Laravel is a..."Kết luận
Phần 3 này đã hoàn thiện chuỗi các bài viết về Fluent Strings trong Laravel. Các hàm trong Fluent Strings không chỉ giúp bạn thao tác với chuỗi dễ dàng hơn mà còn giúp cải thiện tính linh hoạt và hiệu quả trong việc xử lý chuỗi. Qua ba phần của loạt bài này, bạn đã học được cách sử dụng từ cơ bản đến nâng cao của Fluent Strings.
Nếu bạn đang phát triển ứng dụng với Laravel, hãy áp dụng những kiến thức này để tối ưu hóa quy trình xử lý chuỗi trong mã nguồn của bạn.
Mời bạn xem lại các phần trước:
Fluent Strings trong Laravel – Phần 1
Fluent Strings trong Laravel – Phần 2
Chúc bạn học tập hiệu quả trên CodeTutHub!









