Chuyển đổi chữ cái Unicode có dấu thành không dấu trong PHP

Hướng dẫn cách sử dụng PHP để chuyển đổi các chữ cái Unicode có dấu trong bảng chữ cái tiếng Việt thành các chữ cái không dấu. Mã PHP này giúp xử lý văn bản tiếng Việt dễ dàng và hiệu quả.

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

    // Thay thế các ký tự có dấu bằng ký tự không dấu
    return strtr($str, $accents);
}

// Ví dụ sử dụng
$text = "Đây là ví dụ về chữ cái có dấu: á, ă, ở, đ.";
$no_accent_text = remove_accents($text);
echo $no_accent_text;
?>

Giải thích chi tiết:

  1. Hàm remove_accents:

    • Sử dụng hàm strtr() để thay thế các ký tự có dấu bằng các ký tự không dấu dựa trên mảng $accents. Mảng này bao gồm các ký tự có dấu trong tiếng Việt và giá trị tương ứng không có dấu của chúng.
  2. Mảng thay thế $accents:

    • Mỗi phần tử của mảng đại diện cho một ký tự có dấu và ký tự không dấu tương ứng. Mảng này bao gồm tất cả các ký tự trong bảng chữ cái tiếng Việt, cả viết hoa và viết thường.
  3. Sử dụng hàm:

    • Khi truyền một chuỗi có dấu vào hàm remove_accents(), hàm sẽ trả về chuỗi không dấu tương ứng.
  4. Ví dụ:

    • Chuỗi "Đây là ví dụ về chữ cái có dấu: á, ă, ở, đ." sẽ được chuyển thành "Day la vi du ve chu cai co dau: a, a, o, d.".

Phiên bản PHP:

Mã này hoạt động tốt trên tất cả các phiên bản PHP từ 5.6 trở lên, vì hàm strtr() đã có từ các phiên bản cũ và hoạt động ổn định cho việc thay thế chuỗi.



Các Hướng Dẫn Cùng Chủ Đề Đang Xem

Ví dụ về Factory Pattern trong PHP

Hướng dẫn về Factory Pattern trong PHP với ví dụ cụ thể giúp bạn hiểu rõ cách sử dụng mẫu thiết kế này trong lập trình hướng đối tượng.
Xác thực JSON Web Token (JWT) trong PHP

Bài viết hướng dẫn cách sử dụng JSON Web Token (JWT) để xác thực trong PHP. Sử dụng JWT giúp bảo mật thông tin giữa client và server một cách hiệu quả và dễ dàng triển khai trong các ứng dụng web.
Ví dụ về lập trình hướng đối tượng (OOP) trong PHP

Hướng dẫn ví dụ cơ bản về lập trình hướng đối tượng (OOP) trong PHP, giải thích cách sử dụng các class và object để tổ chức mã nguồn theo phương pháp OOP.
Hướng dẫn tạo mục lục tự động cho bài viết bằng PHP

Bài viết hướng dẫn bạn cách tạo mục lục tự động cho nội dung bài viết bằng PHP, sử dụng lớp `DOMDocument` để phân tích cú pháp HTML và tạo cấu trúc mục lục với các tiêu đề.
Cách sử dụng hàm strtok() trong PHP

Bài viết hướng dẫn cách sử dụng hàm `strtok` trong PHP để phân tách chuỗi thành các phần nhỏ dựa trên các ký tự phân tách. Hàm `strtok` là công cụ hữu ích để thao tác và xử lý chuỗi trong các dự án PHP.
Tạo watermark cho hình ảnh bằng PHP

Hướng dẫn cách thêm watermark cho hình ảnh bằng PHP sử dụng thư viện GD. Mã PHP này cho phép thêm watermark văn bản hoặc hình ảnh lên ảnh gốc.
Sự khác biệt giữa hàm `split()` và `explode()` trong thao tác chuỗi PHP

Bài viết giải thích sự khác biệt giữa hàm `split()` và `explode()` trong PHP, hai hàm này được sử dụng để phân tách chuỗi nhưng có những cách hoạt động khác nhau.
Tổng hợp tất cả các cách nối chuỗi trong PHP

Hướng dẫn chi tiết về tất cả các cách nối chuỗi trong PHP, bao gồm sử dụng toán tử nối chuỗi, hàm nối chuỗi, và các phương pháp khác.
Kiểm tra chuỗi có phải là chuỗi nhị phân hay không bằng PHP

Hướng dẫn cách kiểm tra chuỗi trong PHP xem chuỗi đó có phải là chuỗi nhị phân hay không (chỉ bao gồm các ký tự `0` và `1`). Bài viết sử dụng các hàm xử lý chuỗi cơ bản trong PHP.
Cập nhật dữ liệu trong MySQL bằng PHP

Hướng dẫn cách cập nhật dữ liệu trong MySQL bằng PHP. Đoạn mã này sẽ sử dụng câu lệnh SQL UPDATE để thay đổi thông tin trong cơ sở dữ liệu MySQL một cách dễ dàng.

Đã thêm vào giỏ hàng