Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Menormalkan Teks Fancy kepada Teks Biasa dalam Laravel

Menormalkan Teks Fancy kepada Teks Biasa dalam Laravel

Susan Sarandon
Susan Sarandonasal
2024-10-06 18:08:30332semak imbas

Normalizing Fancy Text to Normal Text in Laravel

Artikel berasal dari https://medium.com/@hafiqiqmal93/normalizing-fancy-text-to-normal-text-in-laravel-7d9ed56d5a78

Input teks daripada pengguna langsung tidak menarik. Dengan kemunculan Unicode dalam telefon pintar, pengguna kini mempunyai kemewahan (dan kadangkala kegilaan) untuk memasukkan teks dalam pelbagai gaya dan format. Daripada emoji kepada diakritik, ligatur kepada aksara lebar penuh, julat "teks mewah" boleh menjadi sangat mengelirukan atau sukar difahami oleh sistem. Walaupun menarik secara visual, variasi teks ini menimbulkan cabaran yang ketara untuk sistem terutamanya dari segi ketekalan data, kebolehcarian dan pengalaman pengguna.

Berikut ialah contoh teks mewah:-


???????? ???? ? ??? ?????????? ????? ?? ??? ????? ??? ?? ?????????? ?? ??????? ???? ?????? ??? ??? ???? ????? ??? ? ?? ???? ?? ????? ??? ??????? ?? ???? ???? ?? ??? ?? ????? ??? ???????? ?????? ????? ?????, ?? ???? ??????? ???? ????..????? ?? ??? ????. ??? ?????? ???? ?? ???? ????? ?????????


Nampak seperti aksara condong tetapi bukan huruf condong. Ia sebenarnya milik Simbol Alfanumerik Matematik.

Masalah dalam PHP?

Nah, masalah yang sangat jelas ialah PHP tidak boleh JSON mengekod aksara UTF-8 yang cacat apabila diterima. Dalam cara moden untuk melakukan pembangunan web, di mana API dan rangka kerja bahagian hadapan menggunakan JSON untuk mengangkut data, ini adalah masalah. Jika dilayan dengan salah, aksara yang cacat sedemikian akan mengakibatkan kerosakan data, ranap sistem atau pengguna yang marah.

Matlamat kami adalah mudah:- keluar dengan penyelesaian yang akan menukar setiap teks mewah kepada teks biasa yang boleh dibaca.

PHP Normalizer

Borang normalisasi adalah penting untuk memahami proses normalisasi. Mereka memenuhi keperluan linguistik dan teknikal yang berbeza. Sebagai contoh, borang NFC menggabungkan aksara ke dalam bentuk yang digubah, manakala NFD melakukan sebaliknya, menguraikan aksara yang digubah ke dalam bahagian konstituennya. Borang NFKC dan NFKD pergi lebih jauh, dengan mengambil kira aksara keserasian - melipat variasi aksara ke dalam bentuk kanonik. Borang ini memastikan perbandingan teks, carian dan storan adalah konsisten dan boleh dipercayai.

Penyelesaian ?

Coretan kod yang disediakan ialah contoh terbaik pendekatan PHP untuk menyelesaikan masalah kompleks dengan kesederhanaan dan kecekapan. Mari kita rungkai penyelesaian ini, fahami komponennya dan lihat cara penyelesaian ini disepadukan dengan lancar :-


public static function normalizeText($text): ?string
{
    if (!$text) {
        return null;
    }
    $intl = [
        \Normalizer::FORM_C,
        \Normalizer::FORM_D,
        \Normalizer::NFD,
        \Normalizer::FORM_KC,
        \Normalizer::NFKC,
        \Normalizer::FORM_KC_CF,
        \Normalizer::FORM_KD,
        \Normalizer::NFKD,
        \Normalizer::NFC,
        \Normalizer::NFKC_CF,
    ];
    foreach ($intl as $form) {
        if (!\Normalizer::isNormalized($text, $form)) {
            return \Normalizer::normalize($text, $form);
        }
    }
    return $text;
}


Penggunaan adalah mudah:-


$normalText = Utils::normalizeText($YOUR_FANCY_STRING)


Anda boleh mendaftar fungsi pembantu dalam untuk memudahkan penggunaannya. Contohnya:-


if ( ! function_exists('normalize_text')) {
    function normalize_text(string $text): string
    {
         return Utils::normalizeText($text)
    }
}

// USAGE
$normalText = normalize_text($YOUR_FANCY_STRING)


Pada terasnya, fungsi ini memanfaatkan kelas **Normalizer** PHP-sebahagian daripada sambungan Pengantarabangsaan (intl)-untuk menangani normalisasi. Kelas **Normalizer** menawarkan beberapa bentuk normalisasi, setiap satu disesuaikan dengan keperluan normalisasi yang berbeza. Fungsi ini berulang melalui borang ini, menyemak sama ada teks sudah dinormalisasi dalam bentuk tertentu menggunakan fungsi **isNormalized**. Jika tidak, ia menormalkan teks kepada bentuk itu dan mengembalikan rentetan yang dinormalkan.


Kesimpulan

Walaupun teks mewah boleh menambah daya tarikan visual pada input pengguna, ia menimbulkan cabaran yang ketara untuk pemprosesan data dan kesalingoperasian sistem. Walau bagaimanapun, dengan penggunaan kelas Normalizer PHP dan pelaksanaan borang normalisasi, pembangun boleh mengatasi cabaran ini dan memastikan aplikasi mereka mengekalkan ketekalan dan kebolehpercayaan data dalam menghadapi input teks yang pelbagai.


Adakah anda mempunyai sebarang pengalaman atau cabaran yang berkaitan dengan pengendalian teks mewah dalam projek anda? Bagaimanakah anda menangani isu sedemikian pada masa ini, dan adakah anda mendapati kelas Normalizer PHP berguna dalam aliran kerja anda? Mari kita teruskan perbualan dan berkongsi pandangan kita untuk membantu satu sama lain menavigasi kerumitan pembangunan web moden. ??

Atas ialah kandungan terperinci Menormalkan Teks Fancy kepada Teks Biasa dalam Laravel. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn