create_slug: Hàm tạo slug(chuỗi không dấu) làm link thân thiện trong Php

Hàm create_slug() giúp bạn tạo ra một chuỗi không dấu (slug) phục vụ cho quá trình xây dựng link thân thiện website cho bài viết, sản phẩm…

Slug là gì?

Slug là chuỗi không dấu và các từ nội với nhau bởi “-“, chuỗi phục vụ cho việc xây dựng link thân thiện (friendly Url) của các phần như bài viết, sản phẩm…

Ví dụ:

unitop-hoc-lap-trinh-web-di-lam

Cấu trúc của hàm create_slug()

<?php
/**
 * Chuyển đổi chuỗi kí tự thành dạng slug dùng cho việc tạo friendly url.
 * @access    public
 * @param string
 * @return    string
 */
if (!function_exists('create_slug')) {
    function create_slug($string)
    {
        $search = array(
            '#(à|á|ạ|ả|ã|â|ầ|ấ|ậ|ẩ|ẫ|ă|ằ|ắ|ặ|ẳ|ẵ)#',
            '#(è|é|ẹ|ẻ|ẽ|ê|ề|ế|ệ|ể|ễ)#',
            '#(ì|í|ị|ỉ|ĩ)#',
            '#(ò|ó|ọ|ỏ|õ|ô|ồ|ố|ộ|ổ|ỗ|ơ|ờ|ớ|ợ|ở|ỡ)#',
            '#(ù|ú|ụ|ủ|ũ|ư|ừ|ứ|ự|ử|ữ)#',
            '#(ỳ|ý|ỵ|ỷ|ỹ)#',
            '#(đ)#',
            '#(À|Á|Ạ|Ả|Ã|Â|Ầ|Ấ|Ậ|Ẩ|Ẫ|Ă|Ằ|Ắ|Ặ|Ẳ|Ẵ)#',
            '#(È|É|Ẹ|Ẻ|Ẽ|Ê|Ề|Ế|Ệ|Ể|Ễ)#',
            '#(Ì|Í|Ị|Ỉ|Ĩ)#',
            '#(Ò|Ó|Ọ|Ỏ|Õ|Ô|Ồ|Ố|Ộ|Ổ|Ỗ|Ơ|Ờ|Ớ|Ợ|Ở|Ỡ)#',
            '#(Ù|Ú|Ụ|Ủ|Ũ|Ư|Ừ|Ứ|Ự|Ử|Ữ)#',
            '#(Ỳ|Ý|Ỵ|Ỷ|Ỹ)#',
            '#(Đ)#',
            "/[^a-zA-Z0-9\-\_]/",
        );
        $replace = array(
            'a',
            'e',
            'i',
            'o',
            'u',
            'y',
            'd',
            'A',
            'E',
            'I',
            'O',
            'U',
            'Y',
            'D',
            '-',
        );
        $string = preg_replace($search, $replace, $string);
        $string = preg_replace('/(-)+/', '-', $string);
        $string = strtolower($string);
        return $string;
    }
}
?>

Thuật toán: Để tạo ra chữ không dấu thì cần tìm tất cả các biến thể có dấu của ký tự đó chuyển về ký tự gốc, như â => a, ô => o

Để thực hiện nó tôi lựa chọn sử dụng hàm preg_replace() để tìm kiếm và thay thế.

Để sử dụng hàm trên bạn cần copy mã nguồn của hàm bên trên và chạy nó trước khi sử dụng.

<?php
$title_1 = "Cách học Php hiệu quả";
echo create_slug($title_1),"<br>";

$title_2 = "Ngành công nghệ thông tin thiếu nhân lực trầm trọng";
echo create_slug($title_2),"<br>";
?>

Kết quả sau khi chạy chương trình

cach-hoc-php-hieu-qua
nganh-cong-nghe-thong-tin-thieu-nhan-luc-tram-trong

Tổng kết

Qua bài viết này tôi chia sẻ đến bạn hàm create_slug(). Một hàm tôi rất hay sử dụng trong các dự án lớn nhỏ và cũng chia sẻ trong chương trình PHP MASTER ở Unitop.vn.

Bây giờ bạn nên copy mã code của hàm, chạy test và áp dụng nó vào công việc đang cần.

Đề xuất cho bạn

Subscribe
Notify of
guest

0 Comments
Newest
Oldest Most Voted
Inline Feedbacks
View all comments

Tặng Ebook chia sẻ kinh nghiệm học lập trình web đi làm cho người mới bắt đầu!

Đây là tấm bản đồ chia sẻ lại cách học lập trình web đi làm đã giúp nhiều học trò của unitop kiếm được thu nhập từ 8-30tr mỗi tháng.

Ebook Bí quyết học lập trình web đi làm - Phan Văn Cương - Unitop.vn
0
Bạn đang nghĩ gì? Hãy để lại bình luận tại đâyx
()
x