Chuyển đổi chuỗi tiếng Việt có dấu thành không dấu theo chuẩn SEO trong PHP


Trong lập trình PHP việc chuyển đổi chuỗi có dấu thành không dấu giữ vai trò đặc biệt quan trọng trong việc bảo mật Website cũng như xây dựng Website theo chuẩn SEO. Thông thường, khi các bạn vào một website nào đó sẽ thấy các dòng Title của bài viết trở thành đường dẫn URL trên trang Website.

Ví dụ như Website của tôi, với Tiêu đề là "Giải pháp sử dụng icon cho thiết kế trình chiếu với PowerPoint và thiết kế đồ họa", bạn sẽ thấy đường dẫn trên trình duyệt sẽ là: "http://dothanhspyb.com/news/5939-giai-phap-su-dung-icon-cho-thiet-ke-trinh-chieu-voi-powerpoint-va-thiet-ke-do-hoa.html". Để thực hiện công việc này, các bạn xây dựng một hàm như sau:

public function changeTitle($str){
  if(!$str) return false;
  $unicode = array(
        'a'=>'á|à|ả|ã|ạ|ă|ắ|ằ|ẳ|ẵ|ặ|â|ấ|ầ|ẩ|ẫ|ậ',
        'A'=>'Á|À|Ả|Ã|Ạ|Ă|Ắ|Ằ|Ẳ|Ẵ|Ặ|Â|Ấ|Ầ|Ẩ|Ẫ|Ậ',
        'd'=>'đ',
        'D'=>'Đ',
        'e'=>'é|è|ẻ|ẽ|ẹ|ê|ế|ề|ể|ễ|ệ',
        'E'=>'É|È|Ẻ|Ẽ|Ẹ|Ê|Ế|Ề|Ể|Ễ|Ệ',
        'i'=>'í|ì|ỉ|ĩ|ị',
        'I'=>'Í|Ì|Ỉ|Ĩ|Ị',
        'o'=>'ó|ò|ỏ|õ|ọ|ô|ố|ồ|ổ|ỗ|ộ|ơ|ớ|ờ|ở|ỡ|ợ',
        'O'=>'Ó|Ò|Ỏ|Õ|Ọ|Ô|Ố|Ồ|Ổ|Ỗ|Ộ|Ơ|Ớ|Ờ|Ở|Ỡ|Ợ',
        'u'=>'ú|ù|ủ|ũ|ụ|ư|ứ|ừ|ử|ữ|ự',
        'U'=>'Ú|Ù|Ủ|Ũ|Ụ|Ư|Ứ|Ừ|Ử|Ữ|Ự',
        'y'=>'ý|ỳ|ỷ|ỹ|ỵ',
        'Y'=>'Ý|Ỳ|Ỷ|Ỹ|Ỵ',
        '' =>'?|(|)|[|]|{|}|#|%|-|–|<|>|,|:|;|.|&|"|“|”|/',
        '-'=>' '
  );
  foreach($unicode as $khongdau=>$codau) {
     $arr=explode("|",$codau);
     $str = str_replace($arr,$khongdau,$str);
  }
  return $str;
}

Khi cần chuyển đổi các bạn chỉ cần sử dụng một biến để lấy dữ liệu không dấu của tiêu đề:

$tieude = changeTitle("Tiêu đề tiếng Việt có dấu");

 Kết quả nhận được sẽ là: "Tieu-de-tieng-Viet-co-dau".

Chúc các bạn thành công!


Bình luận

Đăng ký là thành viên để tham gia bình luận

Thành Đỗ
Thành Đỗ 2 tháng trước

Chuyển đổi chuỗi tiếng Việt có dấu thành không dấu theo chuẩn SEO trong PHP