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

create_slug-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.

Làm thế nào để học lập trình web đi làm hiệu quả thu nhập từ 8-30tr/tháng?

Tôi thường xuyên gửi những thông tin như thế này cho bạn qua email. Hơn 5000+ người đang nhận thông tin! (Không SPAM)

Mọi người thường xem

Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments

Bạn muốn kiếm tiền từ kỹ năng lập trình web?

Lộ trình 10 bước có nhóm kín kèm cặp và trên 2.500 người học và đã đi làm với thu nhập 8-30tr/tháng

0
Bạn đang nghĩ gì? Hãy để lại bình luận tại đâyx
()
x