{"id":15080,"date":"2021-09-24T06:58:22","date_gmt":"2021-09-24T06:58:22","guid":{"rendered":"https:\/\/freehost.page\/?p=15080"},"modified":"2021-09-24T06:58:22","modified_gmt":"2021-09-24T06:58:22","slug":"php-sua-loi-chinh-ta-v12-plus","status":"publish","type":"post","link":"https:\/\/kiencang.net\/php-sua-loi-chinh-ta-v12-plus\/","title":{"rendered":"C\u1ea3i ti\u1ebfn th\u00eam h\u00e0m PHP ph\u00e1t hi\u1ec7n l\u1ed7i ch\u00ednh t\u1ea3 ti\u1ebfng Vi\u1ec7t (v1.2 Plus)"},"content":{"rendered":"\n
H\u00e0m PHP n\u00e0y t\u1eadn d\u1ee5ng tri\u1ec7t \u0111\u1ec3 m\u00f4 h\u00ecnh nguy\u00ean \u00e2m v\u00e0 ph\u1ee5 \u00e2m c\u1ee7a ti\u1ebfng Vi\u1ec7t \u0111\u1ec3 ki\u1ec3m tra l\u1ed7i ch\u00ednh t\u1ea3:<\/p>\n\n\n\n
1 k\u00fd t\u1ef1:<\/p>\n\n\n\n
—<\/p>\n\n\n\n
2 k\u00fd t\u1ef1:<\/p>\n\n\n\n
—<\/p>\n\n\n\n
3 k\u00fd t\u1ef1:<\/p>\n\n\n\n
V\u00e0 c\u1ee9 ti\u1ebfp t\u1ee5c nh\u01b0 v\u1eady cho \u0111\u1ebfn t\u1eeb c\u00f3 6 k\u00fd t\u1ef1. T\u1eeb ti\u1ebfng Vi\u1ec7t h\u1ee3p l\u1ec7 c\u00f3 tr\u00ean 6 k\u00fd t\u1ef1, ch\u1ec9 c\u00f3 t\u1eeb nghi\u00eang n\u00ean ch\u00fang ta kh\u00f4ng c\u1ea7n t\u1ea1o h\u00e0m check ki\u1ec3u n\u00e0y cho t\u1eeb tr\u00ean 6 k\u00fd t\u1ef1.<\/p>\n\n\n\n
Trong ph\u1ea7n ch\u00fa th\u00edch h\u00e0m trong m\u00e3 s\u1ebd gi\u1ea3i th\u00edch k\u1ef9 h\u01a1n, bao g\u1ed3m c\u1ea3 c\u00e1c \u0111i\u1ec1u ki\u1ec7n li\u00ean quan \u0111\u1ebfn chuy\u1ec7n m\u1ed9t nguy\u00ean \u00e2m \u0111\u00f4i hay ba n\u00e0o \u0111\u00f3 kh\u00f4ng \u0111\u01b0\u1ee3c ph\u00e9p c\u00f3 \u00e2m cu\u1ed1i, hay nguy\u00ean \u00e2m \u0111\u00f4i n\u00e0o \u0111\u00f3 b\u1eaft bu\u1ed9c ph\u1ea3i c\u00f3 \u00e2m cu\u1ed1i…<\/p>\n\n\n\n
So v\u1edbi phi\u00ean b\u1ea3n tr\u01b0\u1edbc<\/a>, h\u00e0m n\u00e0y c\u1ea3i thi\u1ec7n th\u00eam kho\u1ea3ng 20% \u0111\u1ed9 ch\u00ednh x\u00e1c. Phi\u00ean b\u1ea3n tr\u01b0\u1edbc kh\u00f4ng ph\u00e1t hi\u1ec7n \u0111\u01b0\u1ee3c m\u1ed9t s\u1ed1 l\u1ed7i sai ch\u00ednh t\u1ea3, v\u00ec m\u00f4 h\u00ecnh b\u1eaft l\u1ed7i c\u1ee7a n\u00f3 kh\u00f4ng ch\u1eb7t nh\u01b0 trong ph\u01b0\u01a1ng ph\u00e1p b\u00ean d\u01b0\u1edbi. H\u00e0m c\u1ea3i ti\u1ebfn n\u00e0y chia c\u1ee5 th\u1ec3 theo s\u1ed1 l\u01b0\u1ee3ng t\u1eeb c\u1ee7a t\u1eebng t\u1eeb, r\u1ed3i so kh\u1edbp v\u1edbi m\u00f4 h\u00ecnh ch\u00ednh x\u00e1c nguy\u00ean \u00e2m + ph\u1ee5 \u00e2m.<\/p>\n\n\n\n H\u00e0m n\u00e0y c\u1ea7n c\u00f3 c\u00e1c require sau tr\u00ean c\u00f9ng file \u0111\u1ec3 ch\u1ea1y:<\/p>\n\n\n\n \u1ee8ng d\u1ee5ng th\u1ef1c t\u1ebf<\/strong>: h\u00e0m ki\u1ec3m tra l\u1ed7i ch\u00ednh t\u1ea3 n\u00e0y gi\u00fap t\u00f4i lo\u1ea1i b\u1ecf c\u00e1c t\u00ean sai ch\u00ednh t\u1ea3 \u1edf d\u1eef li\u1ec7u \u0111\u1ea7u v\u00e0o h\u1ecd t\u00ean ng\u01b0\u1eddi, gi\u00fap k\u1ebft qu\u1ea3 th\u1ed1ng k\u00ea ch\u00ednh x\u00e1c h\u01a1n. V\u00ed d\u1ee5 c\u00e1c th\u1ed1ng k\u00ea nh\u01b0 100 h\u1ecd ph\u1ed5 bi\u1ebfn \u1edf Vi\u1ec7t Nam<\/a>, c\u00e1c t\u00ean nam ph\u1ed5 bi\u1ebfn<\/a>, v.v… \u0111\u1ec1u s\u1eed d\u1ee5ng h\u00e0m n\u00e0y.<\/p>\n\n\n\n H\u00e0m PHP n\u00e0y t\u1eadn d\u1ee5ng tri\u1ec7t \u0111\u1ec3 m\u00f4 h\u00ecnh nguy\u00ean \u00e2m v\u00e0 ph\u1ee5 \u00e2m c\u1ee7a ti\u1ebfng Vi\u1ec7t \u0111\u1ec3 ki\u1ec3m tra l\u1ed7i ch\u00ednh t\u1ea3: 1 k\u00fd t\u1ef1: N\u1ebfu t\u1eeb \u0111\u00f3 ch\u1ec9 c\u00f3 m\u1ed9t k\u00fd t\u1ef1, n\u00f3 bu\u1ed9c ph\u1ea3i thu\u1ed9c v\u1ec1 b\u1ed9 nguy\u00ean \u00e2m \u0111\u01a1n, v\u00ec ph\u1ee5 \u00e2m \u0111\u01a1n kh\u00f4ng t\u1ea1o th\u00e0nh t\u1eeb c\u00f3 ngh\u0129a. — 2 …<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[238],"tags":[],"yoast_head":"\n
\n\n\n\nM\u00e3 ho\u00e0n ch\u1ec9nh<\/h2>\n\n\n\n
<?php\n\n\/* \n * PHP functions to check Vietnamese spelling plus v1.2\n * MIT License\n * Nguyen Duc Anh - freehost.page\n *\/\n\n\n\/\/==============================================================================\nfunction vn_spell_one_char($str) { \/\/ ki\u1ec3m tra t\u1eeb c\u00f3 m\u1ed9t k\u00fd t\u1ef1\n $rs = 0; \/\/ gi\u1ea3 \u0111\u1ecbnh ban \u0111\u1ea7u l\u00e0 sai ch\u00ednh t\u1ea3\n \n \/\/ v\u1edbi t\u1eeb ch\u1ec9 c\u00f3 m\u1ed9t t\u1eeb th\u00ec \u0111\u1ec3 n\u00f3 c\u00f3 ngh\u0129a, n\u00f3 ph\u1ea3i thu\u1ed9c v\u1ec1 b\u1ed9 nguy\u00ean \u00e2m m\u1ed9t t\u1eeb\n \/\/ ph\u1ea3i kh\u00e1c \u0103 v\u00e0 \u00e2, nh\u1eefng nguy\u00ean \u00e2m c\u1ea7n c\u00f3 \u00e2m cu\u1ed1i\n if (in_array($str, vna_vowel_lett()) && $str != \"\u0103\" && $str != \"\u00e2\") { \/\/ n\u00f3 bu\u1ed9c ph\u1ea3i thu\u1ed9c v\u1ec1 b\u1ed9 nguy\u00ean \u00e2m \u0111\u01a1n\n $rs = 1;\n }\n\nreturn $rs; \n}\n\n\n\/\/==============================================================================\nfunction vn_spell_two_chars($str) { \/\/ ki\u1ec3m tra t\u1eeb c\u00f3 2 k\u00fd t\u1ef1\n $rs = 0;\n \n \/\/ n\u1ebfu n\u00f3 thu\u1ed9c v\u1ec1 m\u1ea3ng nguy\u00ean \u00e2m \u0111\u00f4i, n\u00f3 \u0111\u01b0\u1ee3c xem l\u00e0 \u0111\u00fang ch\u00ednh t\u1ea3 && n\u00f3 c\u1ea7n kh\u00f4ng \u0111\u01b0\u1ee3c thu\u1ed9c v\u1ec1 m\u1ea3ng nguy\u00ean \u00e2m \u0111\u00f4i c\u1ea7n \u00e2m cu\u1ed1i\n if (in_array($str, vna_diphthongs()) && !in_array($str, vna_final_csnt_req2()) && !in_array($str, vna_final_voc_req2())) { \/\/ n\u00f3 c\u00f3 th\u1ec3 thu\u1ed9c v\u1ec1 b\u1ed9 nguy\u00ean \u00e2m \u0111\u00f4i\n $rs = 1;\n }\n \n \/\/ c\u00e1c tr\u01b0\u1eddng h\u1ee3p g\u1ed3m m\u1ed9t nguy\u00ean \u00e2m v\u00e0 m\u1ed9t ph\u1ee5 \u00e2m\n $flett = mb_substr($str, 0, 1, 'UTF-8'); \/\/ l\u1ea5y k\u00fd t\u1ef1 \u0111\u1ea7u ti\u00ean\n $slett = mb_substr($str, 1, 1, 'UTF-8'); \/\/ l\u1ea5y k\u00fd t\u1ef1 th\u1ee9 hai\n \n \/\/ m\u1ed9t ph\u1ee5 \u00e2m \u0111\u1ea7u v\u00e0 m\u1ed9t nguy\u00ean \u00e2m cu\u1ed1i, t\u1ea5t c\u1ea3 ch\u1ec9 c\u00f3 m\u1ed9t k\u00fd t\u1ef1\n \/\/ vna_first_csnt1() l\u00e0 m\u1ea3ng ph\u1ee5 \u00e2m \u0111\u1ea7u h\u1ee3p l\u1ec7 && vna_vowel_lett() l\u00e0 m\u1ea3ng nguy\u00ean \u00e2m c\u00f3 m\u1ed9t k\u00fd t\u1ef1\n \/\/ ph\u1ea3i kh\u00e1c \u0103 v\u00e0 \u00e2 v\u00ec nh\u1eefng nguy\u00ean \u00e2m \u0111\u01a1n n\u00e0y bu\u1ed9c ph\u1ea3i c\u00f3 th\u00eam \u00e2m cu\u1ed1i\n if (in_array($flett, vna_first_csnt1()) && in_array($slett, vna_vowel_lett()) && $slett != \"\u0103\" && $slett != \"\u00e2\") {\n $rs = 1;\n }\n \n \/\/ m\u1ed9t nguy\u00ean \u00e2m \u0111\u1ea7u v\u00e0 m\u1ed9t ph\u1ee5 \u00e2m cu\u1ed1i, t\u1ea5t c\u1ea3 ch\u1ec9 c\u00f3 m\u1ed9t k\u00fd t\u1ef1\n \/\/ vna_vowel_lett() nguy\u00ean \u00e2m m\u1ed9t k\u00fd t\u1ef1 && vna_last_csnt1() ph\u1ee5 \u00e2m cu\u1ed1i m\u1ed9t k\u00fd t\u1ef1 h\u1ee3p l\u1ec7\n if (in_array($flett, vna_vowel_lett()) && in_array($slett, vna_last_csnt1())) {\n $rs = 1;\n }\n\nreturn $rs; \n}\n\n\n\/\/==============================================================================\nfunction vn_spell_three_chars($str) { \/\/ ki\u1ec3m tra t\u1eeb c\u00f3 3 k\u00fd t\u1ef1\n $rs = 0;\n \n \/\/ n\u1ebfu n\u00f3 thu\u1ed9c v\u1ec1 m\u1ea3ng nguy\u00ean \u00e2m ba n\u00f3 \u0111\u01b0\u1ee3c xem l\u00e0 \u0111\u00fang ch\u00ednh t\u1ea3 & kh\u00e1c uy\u00ea c\u1ea7n ph\u1ee5 \u00e2m cu\u1ed1i\n if (in_array($str, vna_triphthongs()) && $str != \"uy\u00ea\") { \/\/ n\u00f3 c\u00f3 th\u1ec3 thu\u1ed9c v\u1ec1 b\u1ed9 nguy\u00ean \u00e2m ba\n $rs = 1;\n }\n \n \/\/ c\u00e1c tr\u01b0\u1eddng h\u1ee3p kh\u00e1c g\u1ed3m ph\u1ee5 \u00e2m v\u00e0 nguy\u00ean \u00e2m\n $flett = mb_substr($str, 0, 1, 'UTF-8'); \/\/ l\u1ea5y k\u00fd t\u1ef1 \u0111\u1ea7u ti\u00ean\n $lslett = mb_substr($str, 1, 2, 'UTF-8'); \/\/ l\u1ea5y 2 k\u00fd t\u1ef1 cu\u1ed1i\n \n $slett = mb_substr($str, 1, 1, 'UTF-8'); \/\/ l\u1ea5y k\u00fd t\u1ef1 th\u1ee9 hai\n \n $fslett = mb_substr($str, 0, 2, 'UTF-8'); \/\/ l\u1ea5y 2 k\u00fd t\u1ef1 \u0111\u1ea7u ti\u00ean\n $llett = mb_substr($str, 2, 1, 'UTF-8'); \/\/ l\u1ea5y k\u00fd t\u1ef1 cu\u1ed1i c\u00f9ng\n \n \n \/\/ ph\u1ee5 \u00e2m \u0111\u1ea7u 1 k\u00fd t\u1ef1, nguy\u00ean \u00e2m sau 2 k\u00fd t\u1ef1\n \/\/ vna_first_csnt1() ph\u1ee5 \u00e2m \u0111\u1ea7u m\u1ed9t k\u00fd t\u1ef1 \u0111\u01b0\u1ee3c ph\u00e9p && vna_diphthongs() nguy\u00ean \u00e2m 2 k\u00fd t\u1ef1 && vna_final_voc_req2(), vna_final_csnt_req2() kh\u00f4ng thu\u1ed9c v\u1ec1 m\u1ea3ng nguy\u00ean \u00e2m \u0111\u00f4i c\u1ea7n c\u00f3 ph\u1ee5 \u00e2m cu\u1ed1i\n if (in_array($flett, vna_first_csnt1()) && in_array($lslett, vna_diphthongs()) && !in_array($str, vna_final_csnt_req2()) && !in_array($str, vna_final_voc_req2())) {\n $rs = 1;\n }\n \n \/\/ ph\u1ee5 \u00e2m \u0111\u1ea7u 2 k\u00fd t\u1ef1, nguy\u00ean \u00e2m sau 1 k\u00fd t\u1ef1\n \/\/ vna_first_csnt2() ph\u1ee5 \u00e2m \u0111\u1ea7u 2 k\u00fd t\u1ef1 h\u1ee3p l\u1ec7 && vna_vowel_lett() nguy\u00ean \u00e2m m\u1ed9t k\u00fd t\u1ef1 && nguy\u00ean \u00e2m \u0111\u01a1n ph\u1ea3i kh\u00e1c \u0103 v\u00e0 \u00e2, c\u00e1i c\u1ea7n \u00e2m cu\u1ed1i\n if (in_array($fslett, vna_first_csnt2()) && in_array($llett, vna_vowel_lett()) && $llett != \"\u0103\" && $llett != \"\u00e2\") {\n $rs = 1;\n }\n \n \/\/ nguy\u00ean \u00e2m \u0111\u1ea7u 1 k\u00fd t\u1ef1, ph\u1ee5 \u00e2m sau 2 k\u00fd t\u1ef1\n \/\/ vna_vowel_lett() m\u1ea3ng nguy\u00ean \u00e2m m\u1ed9t k\u00fd t\u1ef1 && vna_last_csnt2() m\u1ea3ng ph\u1ee5 \u00e2m 2 k\u00fd t\u1ef1 h\u1ee3p l\u1ec7\n if (in_array($flett, vna_vowel_lett()) && in_array($lslett, vna_last_csnt2())) {\n $rs = 1;\n }\n \n \/\/ nguy\u00ean \u00e2m \u0111\u1ea7u 2 k\u00fd t\u1ef1, ph\u1ee5 \u00e2m sau 1 k\u00fd t\u1ef1\n \/\/ vna_diphthongs() nguy\u00ean \u00e2m \u0111\u1ea7u 2 k\u00fd t\u1ef1 & vna_last_csnt1() ph\u1ee5 \u00e2m cu\u1ed1i 1 k\u00fd t\u1ef1 h\u1ee3p l\u1ec7 && vna_no_sound_end2() kh\u00f4ng thu\u1ed9c v\u1ec1 m\u1ea3ng nguy\u00ean \u00e2m \u0111\u00f4i kh\u00f4ng \u0111\u01b0\u1ee3c c\u00f3 \u00e2m cu\u1ed1i\n if (in_array($fslett, vna_diphthongs()) && in_array($llett, vna_last_csnt1()) && !in_array($fslett, vna_no_sound_end2())) {\n $rs = 1;\n }\n \n \/\/ ph\u1ee5 \u00e2m \u0111\u1ea7u 1 k\u00fd t\u1ef1, nguy\u00ean \u00e2m gi\u1eefa 1 k\u00fd t\u1ef1, ph\u1ee5 \u00e2m cu\u1ed1i 1 k\u00fd t\u1ef1\n \/\/ vna_first_csnt1() ph\u1ee5 \u00e2m \u0111\u1ea7u 1 k\u00fd t\u1ef1 h\u1ee3p l\u1ec7, vna_vowel_lett() nguy\u00ean \u00e2m 1 k\u00fd t\u1ef1, vna_last_csnt1() ph\u1ee5 \u00e2m m\u1ed9t k\u00fd t\u1ef1 h\u1ee3p l\u1ec7\n if (in_array($flett, vna_first_csnt1()) && in_array($slett, vna_vowel_lett()) && in_array($llett, vna_last_csnt1())) {\n $rs = 1;\n }\n \nreturn $rs; \n} \n\n\n\/\/==============================================================================\nfunction vn_spell_four_chars($str) { \/\/ ki\u1ec3m tra t\u1eeb c\u00f3 4 k\u00fd t\u1ef1\n $rs = 0;\n \n $fslett = mb_substr($str, 0, 2, 'UTF-8'); \/\/ l\u1ea5y 2 k\u00fd t\u1ef1 \u0111\u1ea7u ti\u00ean\n $lslett = mb_substr($str, 2, 2, 'UTF-8'); \/\/ l\u1ea5y 2 k\u00fd t\u1ef1 cu\u1ed1i c\u00f9ng\n\n $flett = mb_substr($str, 0, 1, 'UTF-8'); \/\/ l\u1ea5y 1 k\u00fd t\u1ef1 \u0111\u1ea7u ti\u00ean\n $slett = mb_substr($str, 1, 1, 'UTF-8'); \/\/ l\u1ea5y 1 k\u00fd t\u1ef1 th\u1ee9 hai \n $tlett = mb_substr($str, 2, 1, 'UTF-8'); \/\/ l\u1ea5y 1 k\u00fd t\u1ef1 th\u1ee9 ba\n \n $stlett = mb_substr($str, 1, 2, 'UTF-8'); \/\/ l\u1ea5y 2 k\u00fd t\u1ef1 \u1edf gi\u1eefa \n \n $ftlett = mb_substr($str, 0, 3, 'UTF-8'); \/\/ l\u1ea5y 3 k\u00fd t\u1ef1 \u0111\u1ea7u ti\u00ean\n $ltlett = mb_substr($str, 1, 3, 'UTF-8'); \/\/ l\u1ea5y 3 k\u00fd t\u1ef1 cu\u1ed1i c\u00f9ng\n $llett = mb_substr($str, 3, 1, 'UTF-8'); \/\/ l\u1ea5y 1 k\u00fd t\u1ef1 cu\u1ed1i c\u00f9ng\n \n \/\/ nguy\u00ean \u00e2m \u0111\u1ea7u 1 k\u00fd t\u1ef1, ph\u1ee5 \u00e2m cu\u1ed1i 3 k\u00fd t\u1ef1 \/\/ kh\u00f4ng c\u00f3 tr\u01b0\u1eddng h\u1ee3p n\u00e0y\n \/\/ v\u00ec kh\u00f4ng c\u00f3 ph\u1ee5 \u00e2m cu\u1ed1i 3 k\u00fd t\u1ef1\n \n \/\/ nguy\u00ean \u00e2m \u0111\u1ea7u 2 k\u00fd t\u1ef1, ph\u1ee5 \u00e2m cu\u1ed1i 2 k\u00fd t\u1ef1\n \/\/ nguy\u00ean \u00e2m 2 k\u00fd t\u1ef1 vna_diphthongs() && ph\u1ee5 \u00e2m cu\u1ed1i 2 k\u00fd t\u1ef1 vna_last_csnt2() && kh\u00f4ng thu\u1ed9c vna_no_sound_end2() c\u00e1c l\u00e0 c\u00e1c nguy\u00ean \u00e2m \u0111\u00f4i kh\u00f4ng \u0111\u01b0\u1ee3c ph\u00e9p c\u00f3 k\u00fd t\u1ef1 cu\u1ed1i\n if (in_array($fslett, vna_diphthongs()) && in_array($lslett, vna_last_csnt2()) && !in_array($fslett, vna_no_sound_end2())) {\n $rs = 1;\n }\n \n \/\/ nguy\u00ean \u00e2m \u0111\u1ea7u 3 k\u00fd t\u1ef1, ph\u1ee5 \u00e2m cu\u1ed1i 1 k\u00fd t\u1ef1\n \/\/ nguy\u00ean \u00e2m 3 k\u00fd t\u1ef1 vna_triphthongs() && ph\u1ee5 \u00e2m cu\u1ed1i 1 k\u00fd t\u1ef1 vna_last_csnt1() && kh\u00f4ng thu\u1ed9c m\u1ea3ng nguy\u00ean \u00e2m 3 kh\u00f4ng \u0111\u01b0\u1ee3c ph\u00e9p c\u00f3 k\u00fd t\u1ef1 \u1edf cu\u1ed1i \n if (in_array($ftlett, vna_triphthongs()) && in_array($llett, vna_last_csnt1()) && !in_array($ftlett, vna_no_sound_end3())) {\n $rs = 1;\n } \n \n \/\/ph\u1ee5 \u00e2m \u0111\u1ea7u 1 k\u00fd t\u1ef1, nguy\u00ean \u00e2m gi\u1eefa 2 k\u00fd t\u1ef1, ph\u1ee5 \u00e2m cu\u1ed1i 1 k\u00fd t\u1ef1\n \/\/ vna_first_csnt1() ph\u1ee5 \u00e2m \u0111\u1ea7u 1 k\u00fd t\u1ef1 h\u1ee3p l\u1ec7 && vna_diphthongs() nguy\u00ean \u00e2m 2 k\u00fd t\u1ef1 && kh\u00f4ng thu\u1ed9c vna_no_sound_end2() m\u1ea3ng nguy\u00ean \u00e2m \u0111\u00f4i kh\u00f4ng \u0111\u01b0\u1ee3c ph\u00e9p c\u00f3 k\u00fd t\u1ef1 cu\u1ed1i\n \/\/ vna_last_csnt1() m\u1ea3ng ph\u1ee5 \u00e2m cu\u1ed1i 1 k\u00fd t\u1ef1 h\u1ee3p l\u1ec7\n if (in_array($flett, vna_first_csnt1()) && in_array($stlett, vna_diphthongs()) && !in_array($stlett, vna_no_sound_end2()) && in_array($llett, vna_last_csnt1())) {\n $rs = 1;\n }\n \n \/\/ ph\u1ee5 \u00e2m \u0111\u1ea7u 1 k\u00fd t\u1ef1, nguy\u00ean \u00e2m cu\u1ed1i 3 k\u00fd t\u1ef1\n \/\/ vna_first_csnt1() ph\u1ee5 \u00e2m \u0111\u1ea7u 1 k\u00fd t\u1ef1 h\u1ee3p l\u1ec7 && vna_triphthongs() m\u1ea3ng nguy\u00ean \u00e2m 3 k\u00fd t\u1ef1 && kh\u00e1c nguy\u00ean \u00e2m ba c\u1ea7n ph\u1ee5 \u00e2m cu\u1ed1i\n if (in_array($flett, vna_first_csnt1()) && in_array($ltlett, vna_triphthongs()) && $ltlett != \"uy\u00ea\") {\n $rs = 1;\n } \n \n \/\/ ph\u1ee5 \u00e2m \u0111\u1ea7u 1 k\u00fd t\u1ef1, nguy\u00ean \u00e2m gi\u1eefa 1 k\u00fd t\u1ef1, ph\u1ee5 \u00e2m cu\u1ed1i 2 k\u00fd t\u1ef1\n \/\/ vna_first_csnt1() ph\u1ee5 \u00e2m 1 kt h\u1ee3p l\u1ec7 && vna_vowel_lett() m\u1ea3ng nguy\u00ean \u00e2m 1 kt && vna_last_csnt2 ph\u1ee5 \u00e2m cu\u1ed1i 2 k\u00fd t\u1ef1 h\u1ee3p l\u1ec7\n if (in_array($flett, vna_first_csnt1()) && in_array($slett, vna_vowel_lett()) && in_array($lslett, vna_last_csnt2())) {\n $rs = 1;\n }\n \n \/\/ph\u1ee5 \u00e2m \u0111\u1ea7u 2 k\u00fd t\u1ef1, nguy\u00ean \u00e2m cu\u1ed1i 2 k\u00fd t\u1ef1\n \/\/ vna_first_csnt2() ph\u1ee5 \u00e2m \u0111\u1ea7u 2 k\u00fd t\u1ef1 h\u1ee3p l\u1ec7 && vna_diphthongs() nguy\u00ean \u00e2m \u0111\u00f4i, \n \/\/ vna_final_csnt_req2() v\u00e0 vna_final_voc_req2() l\u00e0 m\u1ea3ng c\u00e1c nguy\u00ean \u00e2m \u0111\u00f4i c\u1ea7n \u00e2m cu\u1ed1i\n if (in_array($fslett, vna_first_csnt2()) && in_array($lslett, vna_diphthongs()) && !in_array($str, vna_final_csnt_req2()) && !in_array($str, vna_final_voc_req2())) {\n $rs = 1;\n }\n \n \/\/ ph\u1ee5 \u00e2m \u0111\u1ea7u 2 k\u00fd t\u1ef1, nguy\u00ean \u00e2m gi\u1eefa 1 k\u00fd t\u1ef1, ph\u1ee5 \u00e2m cu\u1ed1i 1 k\u00fd t\u1ef1\n \/\/ vna_first_csnt2() m\u1ea3ng ph\u1ee5 \u00e2m \u0111\u00f4i h\u1ee3p l\u1ec7 && vna_vowel_lett() m\u1ea3ng nguy\u00ean \u00e2m 1 k\u00fd t\u1ef1 && vna_last_csnt1() ph\u1ee5 \u00e2m cu\u1ed1i 1 k\u00fd t\u1ef1 \n if (in_array($fslett, vna_first_csnt2()) && in_array($tlett, vna_vowel_lett()) && in_array($llett, vna_last_csnt1())) {\n $rs = 1;\n } \n \n \/\/ph\u1ee5 \u00e2m \u0111\u1ea7u 3 k\u00fd t\u1ef1, nguy\u00ean \u00e2m cu\u1ed1i 1 k\u00fd t\u1ef1\n \/\/ vna_first_csnt3() ph\u1ee5 \u00e2m \u0111\u1ea7u 3 k\u00fd t\u1ef1 h\u1ee3p l\u1ec7 && vna_vowel_lett() nguy\u00ean \u00e2m m\u1ed9t k\u00fd t\u1ef1\n \/\/ ph\u1ee5 \u00e2m \u0111\u1ea7u 3 k\u00fd t\u1ef1 ch\u1ec9 c\u00f3 tr\u01b0\u1eddng h\u1ee3p ngh\n \/\/ nguy\u00ean \u00e2m \u0111\u01a1n cu\u1ed1i c\u1ea7n kh\u00e1c \u0103 v\u00e0 \u00e2 v\u00ec tr\u01b0\u1eddng h\u1ee3p n\u00e0y c\u1ea7n \u00e2m cu\u1ed1i\n if ($ftlett == \"ngh\" && in_array($llett, vna_vowel_lett()) && $llett != \"\u0103\" && $llett != \"\u00e2\") {\n $rs = 1;\n } \n\nreturn $rs; \n} \n\n\n\/\/==============================================================================\nfunction vn_spell_five_chars($str) { \/\/ ki\u1ec3m tra t\u1eeb c\u00f3 5 k\u00fd t\u1ef1\n $rs = 0;\n $lett01 = mb_substr($str, 0, 1, 'UTF-8'); \/\/ l\u1ea5y 1 k\u00fd t\u1ef1 \u0111\u1ea7u ti\u00ean\n $lett02 = mb_substr($str, 0, 2, 'UTF-8'); \/\/ l\u1ea5y 2 k\u00fd t\u1ef1 \u0111\u1ea7u ti\u00ean\n \n $lett12 = mb_substr($str, 1, 2, 'UTF-8'); \/\/ l\u1ea5y 2 k\u00fd t\u1ef1 sau k\u00fd t\u1ef1 \u0111\u1ea7u ti\u00ean\n $lett13 = mb_substr($str, 1, 3, 'UTF-8'); \/\/ l\u1ea5y 3 k\u00fd t\u1ef1 sau k\u00fd t\u1ef1 \u0111\u1ea7u ti\u00ean\n $lett22 = mb_substr($str, 2, 2, 'UTF-8'); \/\/ l\u1ea5y 2 k\u00fd t\u1ef1 sau 2 k\u00fd t\u1ef1 \u0111\u1ea7u ti\u00ean \n \n $lett03 = mb_substr($str, 0, 3, 'UTF-8'); \/\/ l\u1ea5y 3 k\u00fd t\u1ef1 \u0111\u1ea7u ti\u00ean\n \n $lett21 = mb_substr($str, 2, 1, 'UTF-8'); \/\/ l\u1ea5y 1 k\u00fd t\u1ef1 th\u1ee9 ba \n\n $lett41 = mb_substr($str, 4, 1, 'UTF-8'); \/\/ l\u1ea5y 1 k\u00fd t\u1ef1 cu\u1ed1i c\u00f9ng\n $lett31 = mb_substr($str, 3, 1, 'UTF-8'); \/\/ l\u1ea5y 1 k\u00fd t\u1ef1 ngay tr\u01b0\u1edbc k\u00fd t\u1ef1 cu\u1ed1i c\u00f9ng\n $lett32 = mb_substr($str, 3, 2, 'UTF-8'); \/\/ l\u1ea5y 2 k\u00fd t\u1ef1 cu\u1ed1i c\u00f9ng\n $lett23 = mb_substr($str, 2, 3, 'UTF-8'); \/\/ l\u1ea5y 3 k\u00fd t\u1ef1 cu\u1ed1i c\u00f9ng\n \n \/\/ 1 nguy\u00ean \u00e2m \u0111\u1ea7u, 4 ph\u1ee5 \u00e2m cu\u1ed1i, kh\u00f4ng c\u00f3 tr\u01b0\u1eddng h\u1ee3p n\u00e0y------------------\n \/\/ 1 nguy\u00ean \u00e2m \u0111\u1ea7u, 3 ph\u1ee5 \u00e2m cu\u1ed1i, 1 nguy\u00ean \u00e2m cu\u1ed1i kh\u00f4ng c\u00f3 tr\u01b0\u1eddng h\u1ee3p n\u00e0y----\n \/\/ nguy\u00ean \u00e2m \u0111\u1ea7u 2 k\u00fd t\u1ef1, ph\u1ee5 \u00e2m cu\u1ed1i 3 k\u00fd t\u1ef1, kh\u00f4ng c\u00f3 tr\u01b0\u1eddng h\u1ee3p n\u00e0y------\n \n \/\/ nguy\u00ean \u00e2m \u0111\u1ea7u 3 k\u00fd t\u1ef1, ph\u1ee5 \u00e2m cu\u1ed1i 2 k\u00fd t\u1ef1\n \/\/ vna_triphthongs() m\u1ea3ng nguy\u00ean \u00e2m 3 k\u00fd t\u1ef1, vna_last_csnt2() m\u1ea3ng ph\u1ee5 \u00e2m cu\u1ed1i 2 k\u00fd t\u1ef1, vna_no_sound_end3() m\u1ea3ng c\u00e1c nguy\u00ean \u00e2m 3 kh\u00f4ng \u0111\u01b0\u1ee3c ph\u00e9p c\u00f3 \u00e2m cu\u1ed1i \n if (in_array($lett03, vna_triphthongs()) && in_array($lett32, vna_last_csnt2()) && !in_array($lett03, vna_no_sound_end3())) {\n $rs = 1;\n } \n \n \/\/ nguy\u00ean \u00e2m \u0111\u1ea7u 4 k\u00fd t\u1ef1, ph\u1ee5 \u00e2m cu\u1ed1i 1 k\u00fd t\u1ef1, kh\u00f4ng c\u00f3 tr\u01b0\u1eddng h\u1ee3p n\u00e0y------\n \/\/ nguy\u00ean \u00e2m \u0111\u1ea7u 5 k\u00fd t\u1ef1, kh\u00f4ng c\u00f3 tr\u01b0\u1eddng h\u1ee3p n\u00e0y---------------------------\n \/\/ ph\u1ee5 \u00e2m \u0111\u1ea7u 1 k\u00fd t\u1ef1, nguy\u00ean \u00e2m cu\u1ed1i 4 k\u00fd t\u1ef1, kh\u00f4ng c\u00f3 tr\u01b0\u1eddng h\u1ee3p n\u00e0y------\n \n \/\/ ph\u1ee5 \u00e2m \u0111\u1ea7u 1 k\u00fd t\u1ef1, nguy\u00ean \u00e2m ti\u1ebfp theo 3 k\u00fd t\u1ef1, ph\u1ee5 \u00e2m cu\u1ed1i 1 k\u00fd t\u1ef1\n \/\/ vna_first_csnt1() m\u1ea3ng ph\u1ee5 \u00e2m \u0111\u1ea7u 1 k\u00fd t\u1ef1, vna_triphthongs() m\u1ea3ng nguy\u00ean \u00e2m 3 k\u00fd t\u1ef1, vna_last_csnt1() m\u1ea3ng ph\u1ee5 \u00e2m cu\u1ed1i 1 k\u00fd t\u1ef1\n \/\/ vna_no_sound_end3() m\u1ea3ng nguy\u00ean \u00e2m 3 kh\u00f4ng \u0111\u01b0\u1ee3c ph\u00e9p c\u00f3 \u00e2m cu\u1ed1i\n if (in_array($lett01, vna_first_csnt1()) && in_array($lett13, vna_triphthongs()) && in_array($lett41, vna_last_csnt1()) && !in_array($lett13, vna_no_sound_end3())) {\n $rs = 1;\n } \n \n \/\/ ph\u1ee5 \u00e2m \u0111\u1ea7u 1 k\u00fd t\u1ef1, nguy\u00ean \u00e2m ti\u1ebfp theo 2 k\u00fd t\u1ef1, ph\u1ee5 \u00e2m cu\u1ed1i 2 k\u00fd t\u1ef1 \n \/\/ vna_first_csnt1() m\u1ea3ng ph\u1ee5 \u00e2m \u0111\u1ea7u 1 k\u00fd t\u1ef1, vna_diphthongs() m\u1ea3ng nguy\u00ean \u00e2m 2 k\u00fd t\u1ef1, vna_last_csnt2() m\u1ea3ng ph\u1ee5 \u00e2m cu\u1ed1i 2 k\u00fd t\u1ef1\n \/\/ vna_no_sound_end2() m\u1ea3ng nguy\u00ean \u00e2m 2 k\u00fd t\u1ef1 kh\u00f4ng \u0111\u01b0\u1ee3c ph\u00e9p c\u00f3 \u00e2m cu\u1ed1i\n if (in_array($lett01, vna_first_csnt1()) && in_array($lett12, vna_diphthongs()) && in_array($lett32, vna_last_csnt2()) && !in_array($lett12, vna_no_sound_end2())) {\n $rs = 1;\n } \n \n \/\/ ph\u1ee5 \u00e2m \u0111\u1ea7u 1 k\u00fd t\u1ef1, nguy\u00ean \u00e2m ti\u1ebfp theo 1 k\u00fd t\u1ef1, ph\u1ee5 \u00e2m cu\u1ed1i 3 k\u00fd t\u1ef1, tr\u01b0\u1eddng h\u1ee3p n\u00e0y kh\u00f4ng t\u1ed3n t\u1ea1i------------\n \n \/\/ ph\u1ee5 \u00e2m \u0111\u1ea7u 2 k\u00fd t\u1ef1, nguy\u00ean \u00e2m ti\u1ebfp theo 3 k\u00fd t\u1ef1\n \/\/ vna_first_csnt2() m\u1ea3ng ph\u1ee5 \u00e2m \u0111\u1ea7u 2 k\u00fd t\u1ef1, vna_triphthongs() m\u1ea3ng nguy\u00ean \u00e2m 3 k\u00fd t\u1ef1, kh\u00e1c uy\u00ea v\u00ec \u0111\u00e2y l\u00e0 nguy\u00ean \u00e2m 3 c\u1ea7n ph\u1ee5 \u00e2m cu\u1ed1i\n if (in_array($lett02, vna_first_csnt2()) && in_array($lett23, vna_triphthongs()) && $lett23 != \"uy\u00ea\") {\n $rs = 1;\n } \n \n \/\/ ph\u1ee5 \u00e2m \u0111\u1ea7u 2 k\u00fd t\u1ef1, nguy\u00ean \u00e2m ti\u1ebfp theo 2 k\u00fd t\u1ef1, ph\u1ee5 \u00e2m cu\u1ed1i 1 k\u00fd t\u1ef1\n \/\/ vna_first_csnt2() m\u1ea3ng ph\u1ee5 \u00e2m \u0111\u1ea7u 2 k\u00fd t\u1ef1, vna_diphthongs() m\u1ea3ng nguy\u00ean \u00e2m 2 k\u00fd t\u1ef1, vna_last_csnt1() ph\u1ee5 \u00e2m cu\u1ed1i 1 k\u00fd t\u1ef1\n \/\/ vna_no_sound_end2() m\u1ea3ng nguy\u00ean \u00e2m kh\u00f4ng \u0111\u01b0\u1ee3c ph\u00e9p c\u00f3 \u00e2m cu\u1ed1i\n if (in_array($lett02, vna_first_csnt2()) && in_array($lett22, vna_diphthongs()) && in_array($lett41, vna_last_csnt1()) && !in_array($lett22, vna_no_sound_end2())) {\n $rs = 1;\n } \n \n \/\/ ph\u1ee5 \u00e2m \u0111\u1ea7u 2 k\u00fd t\u1ef1, nguy\u00ean \u00e2m ti\u1ebfp theo 1 k\u00fd t\u1ef1, ph\u1ee5 \u00e2m cu\u1ed1i 2 k\u00fd t\u1ef1\n \/\/ vna_first_csnt2() ph\u1ee5 \u00e2m \u0111\u1ea7u 2 k\u00fd t\u1ef1, vna_vowel_lett() nguy\u00ean \u00e2m 1 k\u00fd t\u1ef1, vna_last_csnt2() ph\u1ee5 \u00e2m cu\u1ed1i 2 k\u00fd t\u1ef1 \n if (in_array($lett02, vna_first_csnt2()) && in_array($lett21, vna_vowel_lett()) && in_array($lett32, vna_last_csnt2())) {\n $rs = 1;\n } \n\n \/\/ ph\u1ee5 \u00e2m \u0111\u1ea7u 3 k\u00fd t\u1ef1, nguy\u00ean \u00e2m ti\u1ebfp theo 2 k\u00fd t\u1ef1\n \/\/ vna_first_csnt3() ph\u1ee5 \u00e2m \u0111\u1ea7u 3 k\u00fd t\u1ef1 (ch\u1ec9 c\u00f3 m\u1ed7i ngh), vna_diphthongs() nguy\u00ean \u00e2m 2 k\u00fd t\u1ef1\n \/\/ vna_final_csnt_req2() v\u00e0 vna_final_voc_req2() l\u00e0 c\u00e1c nguy\u00ean \u00e2m \u0111\u00f4i c\u1ea7n \u00e2m cu\u1ed1i\n if ($lett03 == \"ngh\" && in_array($lett32, vna_diphthongs()) && !in_array($lett32, vna_final_csnt_req2()) && !in_array($lett32, vna_final_voc_req2())) {\n $rs = 1;\n } \n \n \/\/ ph\u1ee5 \u00e2m \u0111\u1ea7u 3 k\u00fd t\u1ef1, nguy\u00ean \u00e2m ti\u1ebfp theo 1 k\u00fd t\u1ef1, ph\u1ee5 \u00e2m cu\u1ed1i 1 k\u00fd t\u1ef1\n \/\/ ph\u1ee5 \u00e2m \u0111\u1ea7u 3 k\u00fd t\u1ef1 ch\u1ec9 c\u00f3 m\u1ed7i tr\u01b0\u1eddng h\u1ee3p ngh, vna_vowel_lett() nguy\u00ean \u00e2m m\u1ed9t k\u00fd t\u1ef1\n \/\/ vna_last_csnt1() ph\u1ee5 \u00e2m cu\u1ed1i 1 k\u00fd t\u1ef1\n if ($lett03 == \"ngh\" && in_array($lett31, vna_vowel_lett()) && in_array($lett41, vna_last_csnt1())) {\n $rs = 1;\n } \n \nreturn $rs; \n} \n\n\n\/\/==============================================================================\nfunction vn_spell_six_chars($str) { \/\/ ki\u1ec3m tra t\u1eeb c\u00f3 6 k\u00fd t\u1ef1\n $rs = 0;\n \n $lett01 = mb_substr($str, 0, 1, 'UTF-8'); \/\/ l\u1ea5y 1 k\u00fd t\u1ef1 \u0111\u1ea7u ti\u00ean\n $lett02 = mb_substr($str, 0, 2, 'UTF-8'); \/\/ l\u1ea5y 2 k\u00fd t\u1ef1 \u0111\u1ea7u ti\u00ean\n \n $lett13 = mb_substr($str, 1, 3, 'UTF-8'); \/\/ l\u1ea5y 3 k\u00fd t\u1ef1 sau k\u00fd t\u1ef1 \u0111\u1ea7u ti\u00ean\n $lett22 = mb_substr($str, 2, 2, 'UTF-8'); \/\/ l\u1ea5y 2 k\u00fd t\u1ef1 sau 2 k\u00fd t\u1ef1 \u0111\u1ea7u ti\u00ean\n $lett32 = mb_substr($str, 3, 2, 'UTF-8'); \/\/ l\u1ea5y 2 k\u00fd t\u1ef1 sau 3 k\u00fd t\u1ef1 \u0111\u1ea7u ti\u00ean \n $lett23 = mb_substr($str, 2, 3, 'UTF-8'); \/\/ l\u1ea5y 3 k\u00fd t\u1ef1 sau 2 k\u00fd t\u1ef1 \u0111\u1ea7u ti\u00ean \n \n $lett03 = mb_substr($str, 0, 3, 'UTF-8'); \/\/ l\u1ea5y 3 k\u00fd t\u1ef1 \u0111\u1ea7u ti\u00ean\n $lett31 = mb_substr($str, 3, 1, 'UTF-8'); \/\/ l\u1ea5y 1 k\u00fd t\u1ef1 sau 3 k\u00fd t\u1ef1 \u0111\u1ea7u\n\n $lett51 = mb_substr($str, 5, 1, 'UTF-8'); \/\/ l\u1ea5y 1 k\u00fd t\u1ef1 cu\u1ed1i c\u00f9ng\n $lett42 = mb_substr($str, 4, 2, 'UTF-8'); \/\/ l\u1ea5y 2 k\u00fd t\u1ef1 cu\u1ed1i c\u00f9ng\n $lett33 = mb_substr($str, 3, 3, 'UTF-8'); \/\/ l\u1ea5y 3 k\u00fd t\u1ef1 cu\u1ed1i c\u00f9ng\n \n \/\/ nguy\u00ean \u00e2m \u0111\u1ea7u 1 k\u00fd t\u1ef1, ph\u1ee5 \u00e2m cu\u1ed1i 5 k\u00fd t\u1ef1, kh\u00f4ng c\u00f3 tr\u01b0\u1eddng h\u1ee3p n\u00e0y------------------\n \/\/ nguy\u00ean \u00e2m \u0111\u1ea7u 1 k\u00fd t\u1ef1, ph\u1ee5 \u00e2m cu\u1ed1i 4 k\u00fd t\u1ef1, nguy\u00ean \u00e2m cu\u1ed1i 1 k\u00fd t\u1ef1, kh\u00f4ng c\u00f3 tr\u01b0\u1eddng h\u1ee3p n\u00e0y-----\n \/\/ nguy\u00ean \u00e2m \u0111\u1ea7u 2 k\u00fd t\u1ef1, ph\u1ee5 \u00e2m cu\u1ed1i 4 k\u00fd t\u1ef1, kh\u00f4ng c\u00f3 tr\u01b0\u1eddng h\u1ee3p n\u00e0y------\n \/\/ nguy\u00ean \u00e2m \u0111\u1ea7u 3 k\u00fd t\u1ef1, ph\u1ee5 \u00e2m cu\u1ed1i 3 k\u00fd t\u1ef1, kh\u00f4ng c\u00f3 tr\u01b0\u1eddng h\u1ee3p n\u00e0y------\n \/\/ nguy\u00ean \u00e2m \u0111\u1ea7u 5 k\u00fd t\u1ef1, ph\u1ee5 \u00e2m cu\u1ed1i 1 k\u00fd t\u1ef1, kh\u00f4ng c\u00f3 tr\u01b0\u1eddng h\u1ee3p n\u00e0y------\n \/\/ nguy\u00ean \u00e2m \u0111\u1ea7u 6 k\u00fd t\u1ef1, kh\u00f4ng c\u00f3 tr\u01b0\u1eddng h\u1ee3p n\u00e0y---------------------------\n \n \/\/ ph\u1ee5 \u00e2m \u0111\u1ea7u 1 k\u00fd t\u1ef1, nguy\u00ean \u00e2m cu\u1ed1i 5 k\u00fd t\u1ef1, kh\u00f4ng c\u00f3 tr\u01b0\u1eddng h\u1ee3p n\u00e0y------\n \n \/\/ ph\u1ee5 \u00e2m \u0111\u1ea7u 1 k\u00fd t\u1ef1, nguy\u00ean \u00e2m ti\u1ebfp theo 3 k\u00fd t\u1ef1, ph\u1ee5 \u00e2m cu\u1ed1i 2 k\u00fd t\u1ef1\n \/\/ vna_first_csnt1() ph\u1ee5 \u00e2m \u0111\u1ea7u 1 k\u00fd t\u1ef1, vna_triphthongs() nguy\u00ean \u00e2m 3 k\u00fd t\u1ef1, vna_last_csnt2() ph\u1ee5 \u00e2m cu\u1ed1i 2 k\u00fd t\u1ef1\n \/\/ vna_no_sound_end3() nguy\u00ean \u00e2m 3 k\u00fd t\u1ef1 kh\u00f4ng \u0111\u01b0\u1ee3c ph\u00e9p c\u00f3 \u00e2m cu\u1ed1i\n if (in_array($lett01, vna_first_csnt1()) && in_array($lett13, vna_triphthongs()) && in_array($lett42, vna_last_csnt2()) && !in_array($lett13, vna_no_sound_end3())) {\n $rs = 1;\n } \n \/\/ ph\u1ee5 \u00e2m \u0111\u1ea7u 1 k\u00fd t\u1ef1, nguy\u00ean \u00e2m ti\u1ebfp theo 2 k\u00fd t\u1ef1, ph\u1ee5 \u00e2m cu\u1ed1i 3 k\u00fd t\u1ef1, tr\u01b0\u1eddng h\u1ee3p n\u00e0y kh\u00f4ng t\u1ed3n t\u1ea1i----- \n \/\/ ph\u1ee5 \u00e2m \u0111\u1ea7u 1 k\u00fd t\u1ef1, nguy\u00ean \u00e2m ti\u1ebfp theo 1 k\u00fd t\u1ef1, ph\u1ee5 \u00e2m cu\u1ed1i 4 k\u00fd t\u1ef1, kh\u00f4ng c\u00f3 tr\u01b0\u1eddng h\u1ee3p n\u00e0y----\n \n \/\/ ph\u1ee5 \u00e2m \u0111\u1ea7u 2 k\u00fd t\u1ef1, nguy\u00ean \u00e2m ti\u1ebfp theo 4 k\u00fd t\u1ef1, kh\u00f4ng c\u00f3 tr\u01b0\u1eddng h\u1ee3p n\u00e0y--------\n \n \/\/ ph\u1ee5 \u00e2m \u0111\u1ea7u 2 k\u00fd t\u1ef1, nguy\u00ean \u00e2m ti\u1ebfp theo 3 k\u00fd t\u1ef1, ph\u1ee5 \u00e2m cu\u1ed1i 1 k\u00fd t\u1ef1\n \/\/ vna_first_csnt2() ph\u1ee5 \u00e2m 2 k\u00fd t\u1ef1, vna_triphthongs() nguy\u00ean \u00e2m 3 k\u00fd t\u1ef1, vna_last_csnt1() ph\u1ee5 \u00e2m cu\u1ed1i 1 k\u00fd t\u1ef1\n \/\/ vna_no_sound_end3() m\u1ea3ng nguy\u00ean \u00e2m 3 kh\u00f4ng \u0111\u01b0\u1ee3c ph\u00e9p c\u00f3 k\u00fd t\u1ef1 \u1edf cu\u1ed1i\n if (in_array($lett02, vna_first_csnt2()) && in_array($lett23, vna_triphthongs()) && in_array($lett51, vna_last_csnt1()) && !in_array($lett23, vna_no_sound_end3())) {\n $rs = 1;\n } \n \n \/\/ ph\u1ee5 \u00e2m \u0111\u1ea7u 2 k\u00fd t\u1ef1, nguy\u00ean \u00e2m ti\u1ebfp theo 2 k\u00fd t\u1ef1, ph\u1ee5 \u00e2m cu\u1ed1i 2 k\u00fd t\u1ef1\n \/\/ vna_first_csnt2() ph\u1ee5 \u00e2m \u0111\u1ea7u 2 k\u00fd t\u1ef1, vna_diphthongs() nguy\u00ean \u00e2m 2 k\u00fd t\u1ef1, vna_last_csnt2() ph\u1ee5 \u00e2m cu\u1ed1i 2 k\u00fd t\u1ef1\n \/\/ vna_no_sound_end2() m\u1ea3ng nguy\u00ean \u00e2m \u0111\u00f4i kh\u00f4ng \u0111\u01b0\u1ee3c ph\u00e9p c\u00f3 \u00e2m cu\u1ed1i\n if (in_array($lett02, vna_first_csnt2()) && in_array($lett22, vna_diphthongs()) && in_array($lett42, vna_last_csnt2()) && !in_array($lett22, vna_no_sound_end2())) {\n $rs = 1;\n } \n \n \/\/ ph\u1ee5 \u00e2m \u0111\u1ea7u 2 k\u00fd t\u1ef1, nguy\u00ean \u00e2m ti\u1ebfp theo 1 k\u00fd t\u1ef1, ph\u1ee5 \u00e2m cu\u1ed1i 3 k\u00fd t\u1ef1, kh\u00f4ng c\u00f3 tr\u01b0\u1eddng h\u1ee3p n\u00e0y----\n\n \/\/ ph\u1ee5 \u00e2m \u0111\u1ea7u 3 k\u00fd t\u1ef1, nguy\u00ean \u00e2m ti\u1ebfp theo 3 k\u00fd t\u1ef1\n \/\/ ph\u1ee5 \u00e2m \u0111\u1ea7u 3 k\u00fd t\u1ef1 ch\u1ec9 c\u00f3 ngh, vna_triphthongs() m\u1ea3ng nguy\u00ean \u00e2m 3 k\u00fd t\u1ef1\n if ($lett03 == \"ngh\" && in_array($lett33, vna_triphthongs())) {\n $rs = 1;\n } \n \n \/\/ ph\u1ee5 \u00e2m \u0111\u1ea7u 3 k\u00fd t\u1ef1, nguy\u00ean \u00e2m ti\u1ebfp theo 2 k\u00fd t\u1ef1, ph\u1ee5 \u00e2m cu\u1ed1i 1 k\u00fd t\u1ef1\n \/\/ vna_diphthongs() m\u1ea3ng nguy\u00ean \u00e2m 2 k\u00fd t\u1ef1, vna_last_csnt1() ph\u1ee5 \u00e2m cu\u1ed1i 1 k\u00fd t\u1ef1\n \/\/ vna_no_sound_end2() m\u1ea3ng c\u00e1c nguy\u00ean \u00e2m \u0111\u00f4i kh\u00f4ng \u0111\u01b0\u1ee3c c\u00f3 \u00e2m cu\u1ed1i\n if ($lett03 == \"ngh\" && in_array($lett32, vna_diphthongs()) && in_array($lett51, vna_last_csnt1()) && !in_array($lett22, vna_no_sound_end2())) {\n $rs = 1;\n }\n \n \/\/ ph\u1ee5 \u00e2m \u0111\u1ea7u 3 k\u00fd t\u1ef1, nguy\u00ean \u00e2m ti\u1ebfp theo 1 k\u00fd t\u1ef1, ph\u1ee5 \u00e2m cu\u1ed1i 2 k\u00fd t\u1ef1\n \/\/ vna_vowel_lett() m\u1ea3ng nguy\u00ean \u00e2m m\u1ed9t k\u00fd t\u1ef1, vna_last_csnt2() m\u1ea3ng ph\u1ee5 \u00e2m 2 k\u00fd t\u1ef1\n if ($lett03 == \"ngh\" && in_array($lett31, vna_vowel_lett()) && in_array($lett42, vna_last_csnt2())) {\n $rs = 1;\n }\n\nreturn $rs; \n}\n\n\n\/\/ ch\u1ec9 \u00e1p d\u1ee5ng v\u1edbi m\u1ed9t t\u1eeb, ki\u1ec3m tra ch\u00ednh t\u1ea3\nfunction vn_spell_chr_small($str) {\n $rs = 1; \/\/ ban \u0111\u1ea7u cho l\u00e0 \u0111\u00fang ch\u00ednh t\u1ea3\n $str2 = vn_low_rmv($str); \/\/ x\u00f3a kho\u1ea3ng tr\u1eafng d\u01b0 th\u1eeba, chuy\u1ec3n th\u00e0nh k\u00fd t\u1ef1 th\u01b0\u1eddng\n $str3 = vn_remove_accents($str); \/\/ x\u00f3a d\u1ea5u\n $count_char = vn_num_char($str3); \/\/ s\u1ed1 l\u01b0\u1ee3ng k\u00fd t\u1ef1\n \n \/\/ kh\u00f4ng \u0111\u01b0\u1ee3c c\u00f3 k\u00fd t\u1ef1 n\u01b0\u1edbc ngo\u00e0i\n if (vn_foreign_check_low($str2)) {$rs = 0;}\n \n \/\/ t\u1eeb ti\u1ebfng Vi\u1ec7t c\u00f3 nhi\u1ec1u ch\u1eef c\u00e1i nh\u1ea5t l\u00e0 nghi\u00eang v\u1edbi 7 ch\u1eef c\u00e1i\n \/\/ c\u00e1c t\u1eeb \u0111\u00fang ch\u00ednh t\u1ea3 ch\u1ec9 c\u00f3 6 ch\u1eef c\u00e1i tr\u1edf xu\u1ed1ng\n if ($rs == 1) { \/\/ \u0111\u1ec3 n\u00f3 \u0111\u1ee1 ph\u1ea3i th\u1ef1c hi\u1ec7n ki\u1ec3m tra qu\u00e1 nhi\u1ec1u\n if (($str2 != \"nghi\u00eang\") && (vn_num_char($str2) > 6)) {$rs = 0;}\n }\n \n \/\/ s\u1ed1 l\u01b0\u1ee3ng t\u1eeb c\u00f3 d\u1ea5u kh\u00f4ng \u0111\u01b0\u1ee3c l\u1edbn h\u01a1n 1\n if ($rs == 1) { \/\/ \u0111\u1ec3 n\u00f3 \u0111\u1ee1 ph\u1ea3i th\u1ef1c hi\u1ec7n ki\u1ec3m tra qu\u00e1 nhi\u1ec1u\n if(vn_num_acc_char($str2) > 1) {$rs = 0;}\n }\n \n \/\/ t\u1ed1i \u0111a 3 nguy\u00ean \u00e2m, t\u1ed1i thi\u1ec3u 1 nguy\u00ean \u00e2m v\u00e0 c\u00e1c nguy\u00ean \u00e2m c\u1ea7n ph\u1ea3i \u0111\u1ee9ng c\u1ea1nh nhau\n if ($rs == 1) { \/\/ \u0111\u1ec3 n\u00f3 \u0111\u1ee1 ph\u1ea3i th\u1ef1c hi\u1ec7n ki\u1ec3m tra qu\u00e1 nhi\u1ec1u\n if (vn_vowel_next_other($str2) == 0){$rs = 0;}\n }\n \n \/\/ n\u1ebfu t\u1eeb c\u00f3 m\u1ed9t k\u00fd t\u1ef1\n if ($count_char == 1) {\n if (vn_spell_one_char($str3)==0) {$rs = 0;}\n }\n \n \/\/ n\u1ebfu t\u1eeb c\u00f3 hai k\u00fd t\u1ef1\n if ($count_char == 2) {\n if (vn_spell_two_chars($str3)==0) {$rs = 0;}\n } \n \n \/\/ n\u1ebfu t\u1eeb c\u00f3 ba k\u00fd t\u1ef1\n if ($count_char == 3) {\n if (vn_spell_three_chars($str3)==0) {$rs = 0;}\n }\n \n \/\/ n\u1ebfu t\u1eeb c\u00f3 b\u1ed1n k\u00fd t\u1ef1\n if ($count_char == 4) {\n if (vn_spell_four_chars($str3)==0) {$rs = 0;}\n } \n \n \/\/ n\u1ebfu t\u1eeb c\u00f3 n\u0103m k\u00fd t\u1ef1\n if ($count_char == 5) {\n if (vn_spell_five_chars($str3)==0) {$rs = 0;}\n }\n \n \/\/ n\u1ebfu t\u1eeb c\u00f3 s\u00e1u k\u00fd t\u1ef1\n if ($count_char == 6) {\n if (vn_spell_six_chars($str3)==0) {$rs = 0;}\n } \n \nreturn $rs; \n}\n\n\n\/\/ thi\u1ebft k\u1ebf ki\u1ec3m tra ch\u00ednh t\u1ea3 cho m\u1ed9t c\u1ee5m nhi\u1ec1u t\u1eeb\nfunction vn_spell_chr_big($str) {\n $rs = 1; \/\/ g\u00e1n cho \u0111\u00fang ch\u00ednh t\u1ea3 l\u00fac ban \u0111\u1ea7u \n $str2 = vn_rmv_wsp($str); \/\/ x\u00f3a b\u1ecf kho\u1ea3ng tr\u1eafng d\u01b0 th\u1eeba\n $words = mb_split(' ', $str2); \/\/ t\u00e1ch t\u1eeb\n \n foreach ($words as $word) {\n if ($word!=NULL){\n if (vn_spell_chr_small($word) == 0) {$rs = 0; break;}\n } \n }\n\nreturn $rs; \n}<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"