Hướng dẫn slog php

Việc viết lại đường dẫn nhìn thân thiện cũng là một bước khá là quan trọng trong SEO đấy, nếu đường dẫn nhìn đẹp, thân thiện thì các công cụ tìm kiếm sẽ index tốt hơn, còn nếu bạn chỉ để các dạng URL như [demo.php?id=12] thì nó không thật sự tốt lắm. Nhưng thông thường ta xây dựng chức năng các slug đó tự động tạo ra sẽ giúp người dùng chỉnh sửa lại nhanh hơn. Ví dụ bạn chỉ cần nhập tiêu đề là "học lập trình online tại freetuts" thì hệ thống tự động chuyển thành "hoc-lap-trinh-online-tai-freetuts".  Nhưng để được như vậy ta phải làm gì? Có hai cách là dùng Javascript và dùng code PHP, trong bài này tôi sẽ hướng dẫn cả hai cách cho bạn.Tuy nhiên lưu ý với bạn rằng để làm được các ví dụ trong bài này thì bạn phải thật sự rành Regular Expression đã nhé.

Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

1. Tạo slug tự động bằng javascript

Để các bạn rõ hơn tôi sẽ lấy một ví dụ thế này, giả sử tôi có một bài viết có tiêu đề là "Các hàm kiểm tra dữ liệu trong PHP" và id của nó là 24. Như vậy cách thông thường tôi sẽ tạo một trang detail.php và truyền id vào như sau: detail.php?id=24. Như vậy không tốt lắm, ta phải dùng htaccess để rewrite lại đường dẫn. Nhưng trong bài này tôi không đề cập đến vấn đề cách viết lại đường dẫn mà tôi chỉ đề cập đến cách chuyển tự một chuỗi có dấu sáng không dấu bằng javascript.

Ta tạo một file index.html có nội dung như sau


    
        
        Freetut.net – Chang title to slug
    
    
        
            Title : 

Slug :

Chạy file này ta có được kết quả như sau

Bài viết này được đăng tại [free tuts .net]

Trong đó ở thẻ input có id là “title” mình có thêm sự kiện là onkeyup, sự kiện này sẽ gọi đến hàm javascript là ChangeToSlug[] để lấy text từ thẻ input có id “title” và chuyển text này thành slug sau đó hiển thị nó vào thẻ có id là “slug”.

Tiếp theo ta tạo một hàm javascript có tên là ChangeToSlug[] để xử lý

function ChangeToSlug[]
{
    var title, slug;

    //Lấy text từ thẻ input title 
    title = document.getElementById["title"].value;

    //Đổi chữ hoa thành chữ thường
    slug = title.toLowerCase[];

    //Đổi ký tự có dấu thành không dấu
    slug = slug.replace[/á|à|ả|ạ|ã|ă|ắ|ằ|ẳ|ẵ|ặ|â|ấ|ầ|ẩ|ẫ|ậ/gi, 'a'];
    slug = slug.replace[/é|è|ẻ|ẽ|ẹ|ê|ế|ề|ể|ễ|ệ/gi, 'e'];
    slug = slug.replace[/i|í|ì|ỉ|ĩ|ị/gi, 'i'];
    slug = slug.replace[/ó|ò|ỏ|õ|ọ|ô|ố|ồ|ổ|ỗ|ộ|ơ|ớ|ờ|ở|ỡ|ợ/gi, 'o'];
    slug = slug.replace[/ú|ù|ủ|ũ|ụ|ư|ứ|ừ|ử|ữ|ự/gi, 'u'];
    slug = slug.replace[/ý|ỳ|ỷ|ỹ|ỵ/gi, 'y'];
    slug = slug.replace[/đ/gi, 'd'];
    //Xóa các ký tự đặt biệt
    slug = slug.replace[/\`|\~|\!|\@|\#|\||\$|\%|\^|\&|\*|\[|\]|\+|\=|\,|\.|\/|\?|\>|\

Chủ Đề