PHP-Mysql

Cách loại bỏ dấu tiếng Việt với PHP

Khi bạn cần tìm kiếm không dấu hoặc tạo các URL thân thiện cho website thì việc loại bỏ dấu cho Tiếng Việt khá quan trọng. Bài viết sẽ hướng dẫn các bạn cách thực hiện việc này với ngôn ngữ PHP.

1.

Xây dựng hàm vn_str_filter($str) để loại bỏ dấu tiếng Việt khỏi 1 chuỗi. Khi gọi hàm: vn_str_filter(“Hoàng Sa, Trường Sa là của Việt Nam”) sẽ được kết quả là “Hoang Sa, Truong Sa la cua Viet Nam”.

2.

Ta sử dụng 2 hàm sau:

foreach() //duyệt mảng
preg_replace // tìm và thay thế các âm tiếng Việt từ có dấu thành không dấu.

3.

Ta viết hàm vn_str_filter như sau:

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

4.

Khi sử dụng ta gọi:

<?php
echo vn_str_filter('Hoàng Sa, Trường Sa là của Việt Nam');
?>

Published by

tuanitpro

Tôi là Lê Thanh Tuấn, và tôi chia sẻ những điều mình cho rằng nó là thú vị, hay giúp ích cho bạn!

Leave a Reply