Cách tạo slug tự động bằng PHP

Đường dẫn thân thiện trong website khá là quan trọng trong SEO, sẽ giúp các công cụ tìm kiếm index tốt hơn, còn nếu bạn chỉ để các dạng URL như (acb.com?id=100) thì nó không thật sự tốt lắm. Bài này mình sẽ gợi ý cho các bạn 1 hàm làm việc tự động cho yêu cầu này. Bạn chỉ cần đưa vào 1 chuỗi tiêu đề bài viết nó sẽ sinh ra cho bạn slug tương ứng.

Để hiểu hơn về ví dụ thì bạn cần có 1 chút kiến thức cơ bản về Regular Expression nhé. Kiến thức này có trên trang tài liệu của PHP rồi nên mình nghĩ không cần nói nhiều 😀

 

function slugify($str) {
    $str = trim(mb_strtolower($str));
    $str = preg_replace('/(à|á|ạ|ả|ã|â|ầ|ấ|ậ|ẩ|ẫ|ă|ằ|ắ|ặ|ẳ|ẵ)/', 'a', $str);
    $str = preg_replace('/(è|é|ẹ|ẻ|ẽ|ê|ề|ế|ệ|ể|ễ)/', 'e', $str);
    $str = preg_replace('/(ì|í|ị|ỉ|ĩ)/', 'i', $str);
    $str = preg_replace('/(ò|ó|ọ|ỏ|õ|ô|ồ|ố|ộ|ổ|ỗ|ơ|ờ|ớ|ợ|ở|ỡ)/', 'o', $str);
    $str = preg_replace('/(ù|ú|ụ|ủ|ũ|ư|ừ|ứ|ự|ử|ữ)/', 'u', $str);
    $str = preg_replace('/(ỳ|ý|ỵ|ỷ|ỹ)/', 'y', $str);
    $str = preg_replace('/(đ)/', 'd', $str);
    $str = preg_replace('/[^a-z0-9-\s]/', '', $str);
    $str = preg_replace('/([\s]+)/', '-', $str);
    return $str;
}

Bên trên là function làm việc đó. Bây giờ bạn chỉ cần đặt vào code của mình trước khi sử dụng là được. Cách dùng thì khá là đơn giản

 

$str = "Đây là tiêu đề bài viết";
$slug = slugify($str);

echo $slug;

Như vậy là mình đã gợi ý cho các bạn cách tạo 1 slug cho bài viết rồi. Bạn nên lưu nó vào database để thuận tiện cho việc truy xuất dữ liệu về sau.

Có thắc mắc gì các bạn cứ để lại ở phần Bình luận nhé!

5 1 đánh giá
Đánh giá bài viết
Theo dõi
Thông báo của
guest

0 Góp ý
Cũ nhất
Mới nhất Được bỏ phiếu nhiều nhất
Phản hồi nội tuyến
Xem tất cả bình luận

More Post

MySQL Procedure là gì?

Procedure trong MySQL là một tập các khai báo sql được lưu trữ trong cơ sở dữ liệu(database) thực...

Dependency Injection và Service Container trong Laravel

Service Container trong Laravel như là trung tâm của một ứng dụng, có mặt mọi nơi trong dự án,...

Laravel Swagger là gì? Hướng dẫn tạo Swagger trong Laravel

Swagger là một framework giúp bạn định nghĩa, mô tả các API trong dự án một cách trực quan, rõ...

2
0
Rất thích suy nghĩ của bạn, hãy bình luận.x