{"id":14083,"date":"2021-08-23T05:13:30","date_gmt":"2021-08-23T05:13:30","guid":{"rendered":"https:\/\/freehost.page\/?p=14083"},"modified":"2021-08-23T05:13:30","modified_gmt":"2021-08-23T05:13:30","slug":"ham-can-ban-xu-ly-chuoi","status":"publish","type":"post","link":"https:\/\/kiencang.net\/ham-can-ban-xu-ly-chuoi\/","title":{"rendered":"X\u00e2y d\u1ef1ng c\u00e1c h\u00e0m c\u0103n b\u1ea3n \u0111\u1ec3 x\u1eed l\u00fd chu\u1ed7i h\u1ecd t\u00ean ng\u01b0\u1eddi n\u00f3i ri\u00eang v\u00e0 ti\u1ebfng Vi\u1ec7t n\u00f3i chung"},"content":{"rendered":"\n
PHP c\u00f3 nhi\u1ec1u h\u00e0m hay \u0111\u1ec3 x\u1eed l\u00fd chu\u1ed7i, tuy nhi\u00ean n\u00f3 v\u1eabn m\u1ea1nh v\u00e0 c\u00f3 c\u00e1c h\u00e0m ph\u1ed5 bi\u1ebfn x\u1eed l\u00fd cho ti\u1ebfng T\u00e2y t\u1ed1t h\u01a1n l\u00e0 ti\u1ebfng Vi\u1ec7t. Trong ng\u00e0y h\u00f4m nay t\u00f4i s\u1ebd th\u1eed vi\u1ebft m\u1ed9t s\u1ed1 h\u00e0m x\u1eed l\u00fd c\u01a1 b\u1ea3n ho\u1eb7c th\u1ef1c hi\u1ec7n m\u1ed9t nhi\u1ec7m v\u1ee5 \u0111\u1eb7c th\u00f9 \u0111\u1ec3 qu\u00e1 tr\u00ecnh vi\u1ebft m\u00e3 \u0111\u01b0\u1ee3c nhanh h\u01a1n v\u00e0 h\u1ea1n ch\u1ebf l\u1ed7i do d\u00f9ng nh\u1ea7m h\u00e0m kh\u00f4ng x\u1eed l\u00fd t\u1ed1t ti\u1ebfng Vi\u1ec7t.<\/p>\n\n\n\n
Bi\u1ebfn \u0111\u1ea7u v\u00e0o t\u00ean Quy \u0111\u1ecbnh v\u1ec1 vi\u1ebft t\u00ean h\u00e0m (\u0111\u00e2y l\u00e0 rule ri\u00eang c\u1ee7a t\u00f4i th\u00f4i, c\u00e1c b\u1ea1n kh\u00f4ng c\u1ea7n quan t\u00e2m ph\u1ea7n n\u00e0y, v\u00ec m\u1ed7i ng\u01b0\u1eddi c\u00f3 th\u1ec3 c\u00f3 ki\u1ec3u ph\u00f9 h\u1ee3p ri\u00eang):<\/p>\n\n\n\n Quy \u0111\u1ecbnh v\u1ec1 vi\u1ebft m\u00e3:<\/p>\n\n\n\n —<\/p>\n\n\n\n Lo\u1ea1i b\u1ecf kho\u1ea3ng tr\u1eafng d\u01b0 th\u1eeba trong chu\u1ed7i:<\/p>\n\n\n\n —<\/p>\n\n\n\n \u0110\u1ebfm s\u1ed1 k\u00fd t\u1ef1 trong chu\u1ed7i, bao g\u1ed3m c\u1ea3 kho\u1ea3ng tr\u1eafng, d\u00f9ng trong tr\u01b0\u1eddng h\u1ee3p kh\u00f4ng ch\u1eafc ch\u1eafn gi\u1eefa c\u00e1c t\u1eeb c\u00f3 b\u1ecb d\u01b0 kho\u1ea3ng tr\u1eafng hay l\u00e0 kh\u00f4ng:<\/p>\n\n\n\n —<\/p>\n\n\n\n \u0110\u1ebfm s\u1ed1 t\u1eeb trong chu\u1ed7i, h\u00e0m —<\/p>\n\n\n\n L\u1ea5y t\u1eeb \u0111\u1ea7u ti\u00ean trong chu\u1ed7i:<\/p>\n\n\n\n —<\/p>\n\n\n\n L\u1ea5y t\u1eeb cu\u1ed1i c\u00f9ng trong chu\u1ed7i:<\/p>\n\n\n\n —<\/p>\n\n\n\n T\u1eeb th\u1ee9 2 trong chu\u1ed7i, n\u1ebfu chu\u1ed7i l\u00e0 h\u1ecd t\u00ean th\u00ec \u0111\u00e2y s\u1ebd l\u00e0 \u0111\u1ec7m:<\/p>\n\n\n\n —<\/p>\n\n\n\n C\u00f3 c\u00e1c k\u00fd t\u1ef1 —<\/p>\n\n\n\n Ki\u1ec3m tra xem c\u00f3 s\u1ed1 trong chu\u1ed7i hay kh\u00f4ng:<\/p>\n\n\n\n —<\/p>\n\n\n\n Ki\u1ec3m tra xem c\u00f3 k\u00fd t\u1ef1 l\u1ea1 trong chu\u1ed7i hay kh\u00f4ng (v\u00ed d\u1ee5 !, @, #, ..):<\/p>\n\n\n\n —<\/p>\n\n\n\n T\u00ecm d\u1ea5u c\u1ee7a m\u1ed9t t\u1eeb ho\u1eb7c m\u1ed9t k\u00fd t\u1ef1 l\u00e0 s\u1eafc (1), huy\u1ec1n (2), h\u1ecfi (3), ng\u00e3 (4), n\u1eb7ng (5) hay kh\u00f4ng d\u1ea5u (0).<\/p>\n\n\n\n —<\/p>\n\n\n\n So s\u00e1nh m\u1ee9c \u0111\u1ed9 t\u01b0\u01a1ng t\u1ef1 gi\u1eefa 2 chu\u1ed7i. V\u1edbi 4 bi\u1ebfn \u0111\u1ea7u v\u00e0o. $v ch\u1ec9 gi\u00e1 tr\u1ecb levenshtein b\u1ea1n mong mu\u1ed1n t\u1ed1i thi\u1ec3u ph\u1ea3i \u0111\u1ea1t \u0111\u01b0\u1ee3c, c\u00f2n $p l\u00e0 gi\u00e1 tr\u1ecb c\u00f3 \u0111\u01b0\u1ee3c t\u1eeb h\u00e0m similar_text c\u1ee7a PHP. \u0110\u00e2y l\u00e0 hai h\u00e0m t\u1ed1t d\u00f9ng \u0111\u1ec3 so s\u00e1nh chu\u1ed7i.<\/p>\n\n\n\n —<\/p>\n\n\n\n T\u00ecm s\u1ed1 l\u01b0\u1ee3ng c\u1ee7a m\u1ed9t k\u00fd t\u1ef1 n\u00e0o \u0111\u00f3 trong chu\u1ed7i<\/p>\n\n\n\n —<\/p>\n\n\n\n X\u00f3a d\u1ea5u c\u1ee7a m\u1ed9t t\u1eeb, ho\u1eb7c m\u1ed9t k\u00fd t\u1ef1 (n\u1ebfu t\u1eeb \u0111\u00f3 c\u00f3 nhi\u1ec1u d\u1ea5u, n\u00f3 c\u0169ng x\u00f3a h\u1ebft):<\/p>\n\n\n\n —<\/p>\n\n\n\n Th\u00eam d\u1ea5u cho m\u1ed9t k\u00fd t\u1ef1 (c\u00e1i n\u00e0y ch\u1ec9 d\u00f9ng \u0111\u1ec3 th\u00eam d\u1ea5u cho m\u1ed9t k\u00fd t\u1ef1, kh\u00f4ng th\u00eam d\u1ea5u cho m\u1ed9t t\u1eeb \u0111\u01b0\u1ee3c, v\u00ec s\u1ebd kh\u00f4ng ch\u00ednh x\u00e1c).<\/p>\n\n\n\n —<\/p>\n\n\n\n L\u1ea5y n k\u00fd t\u1ef1 \u0111\u1ea7u c\u1ee7a m\u1ed9t chu\u1ed7i:<\/p>\n\n\n\n —<\/p>\n\n\n\n T\u00ecm c\u00e1c v\u1ecb tr\u00ed c\u1ee7a m\u1ed9t k\u00fd t\u1ef1 trong chu\u1ed7i:<\/p>\n\n\n\n —<\/p>\n\n\n\n Thay th\u1ebf m\u1ed9t k\u00fd t\u1ef1 trong chu\u1ed7i \u1edf m\u1ed9t v\u1ecb tr\u00ed ( PHP c\u00f3 nhi\u1ec1u h\u00e0m hay \u0111\u1ec3 x\u1eed l\u00fd chu\u1ed7i, tuy nhi\u00ean n\u00f3 v\u1eabn m\u1ea1nh v\u00e0 c\u00f3 c\u00e1c h\u00e0m ph\u1ed5 bi\u1ebfn x\u1eed l\u00fd cho ti\u1ebfng T\u00e2y t\u1ed1t h\u01a1n l\u00e0 ti\u1ebfng Vi\u1ec7t. Trong ng\u00e0y h\u00f4m nay t\u00f4i s\u1ebd th\u1eed vi\u1ebft m\u1ed9t s\u1ed1 h\u00e0m x\u1eed l\u00fd c\u01a1 b\u1ea3n ho\u1eb7c th\u1ef1c hi\u1ec7n m\u1ed9t nhi\u1ec7m v\u1ee5 \u0111\u1eb7c th\u00f9 \u0111\u1ec3 qu\u00e1 …<\/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$str<\/code> \u0111\u1ea1i di\u1ec7n cho chu\u1ed7i.<\/p>\n\n\n\n
bo_khoang_trang<\/code>, \u0111\u1ed5i th\u00e0nh
bkt<\/code>;<\/li>
kt<\/code> trong t\u00ean h\u00e0m m\u00e0 \u0111\u1ee9ng tr\u01b0\u1edbc ho\u1eb7c sau l\u00e0 d\u1ea5u g\u1ea1ch d\u01b0\u1edbi _ th\u00ec n\u00f3 l\u00e0 t\u1eeb vi\u1ebft t\u1eaft d\u00e0nh ri\u00eang cho k\u00fd t\u1ef1<\/strong>, c\u00e1c t\u1eeb kh\u00e1c n\u1ebfu tr\u00f9ng th\u00ec ph\u1ea3i vi\u1ebft li\u1ec1n v\u1edbi k\u00fd t\u1ef1 kh\u00e1c (nh\u01b0
bkt<\/code>) \u1edf tr\u00ean ho\u1eb7c ph\u1ea3i vi\u1ebft \u1edf d\u1ea1ng \u0111\u1ea7y \u0111\u1ee7;<\/li><\/ul>\n\n\n\n
$kq<\/code>, v\u00e0
return<\/code> v\u1ec1 \u0111\u00e2y cho th\u1ed1ng nh\u1ea5t;<\/li>
return<\/code>;<\/li>
$n<\/code>;<\/li>
$i<\/code>,
$j<\/code>,
$k<\/code>;<\/li>
=<\/code> n\u00ean c\u00f3 kho\u1ea3ng tr\u1eafng \u1edf tr\u01b0\u1edbc v\u00e0 sau;<\/li><\/ul>\n\n\n\n
function bkt($str) { \/\/ b\u1ecf kho\u1ea3ng tr\u1eafng\n $str2 = trim($str, ' '); \/\/ b\u1ecf kho\u1ea3ng tr\u1eafng tr\u01b0\u1edbc v\u00e0 sau chu\u1ed7i\n $kq = preg_replace('\/\\s+\/', ' ', $str2); \/\/ lo\u1ea1i b\u1ecf kho\u1ea3ng tr\u1eafng th\u1eeba trong chu\u1ed7i\n\nreturn $kq;\n}<\/code><\/pre>\n\n\n\n
function so_kt($str) { \/\/ s\u1ed1 k\u00fd t\u1ef1 chu\u1ed7i\n $str2 = bkt($str);\n $kq = iconv_strlen($str2, 'UTF-8');\n\nreturn $kq;\n} <\/code><\/pre>\n\n\n\n
str_word_count<\/code> c\u1ee7a PHP cho k\u1ebft qu\u1ea3 kh\u00f4ng ch\u00ednh x\u00e1c v\u1edbi TV, h\u00e0m thay th\u1ebf s\u1ebd nh\u01b0 th\u1ebf n\u00e0y:<\/p>\n\n\n\n
function so_tu($str) { \/\/ s\u1ed1 l\u01b0\u1ee3ng t\u1eeb\n $str2 = bkt($str); \n $word = explode(' ', $str2);\n $kq = count($word); \/\/ so tu\n\nreturn $kq;\n}<\/code><\/pre>\n\n\n\n
function tu_01($str) { \/\/ trong h\u1ecd t\u00ean n\u00f3 s\u1ebd l\u00e0 h\u1ecd\n $str2 = bkt($str); \/\/ c\u00f3 th\u1ec3 kh\u00f4ng c\u1ea7n d\u00f9ng lbk_trang\n $word = explode(' ', $str2);\n $kq = $word[0]; \/\/ t\u1eeb \u0111\u1ea7u ti\u00ean\n\nreturn $kq;\n}<\/code><\/pre>\n\n\n\n
function tu_99($str) { \/\/ trong h\u1ecd t\u00ean n\u00f3 s\u1ebd l\u00e0 t\u00ean\n $str2 = bkt($str); \/\/ c\u00f3 th\u1ec3 kh\u00f4ng c\u1ea7n d\u00f9ng lbk_trang\n $word = explode(' ', $str2);\n $n = count($word)-1;\n $kq = $word[$n]; \/\/ t\u1eeb \u0111\u1ea7u ti\u00ean\n\nreturn $kq;\n}<\/code><\/pre>\n\n\n\n
function tu_02($str) { \/\/ \u0111\u1ec7m \u0111\u1ea7u ti\u00ean\n $kq = NULL;\n $str2 = bkt($str); \/\/ c\u00f3 th\u1ec3 kh\u00f4ng c\u1ea7n d\u00f9ng lbk_trang\n $word = explode(' ', $str2);\n $n = count($word);\n if ($n > 2) {$kq = $word[1];}\n\nreturn $kq;\n}<\/code><\/pre>\n\n\n\n
f, j, w, z<\/code> trong chu\u1ed7i hay kh\u00f4ng?<\/p>\n\n\n\n
function kt_nng($str) { \/\/ tr\u1ea3 v\u1ec1 1 n\u1ebfu c\u00f3, tr\u1ea3 v\u1ec1 0 n\u1ebfu kh\u00f4ng c\u00f3\n $m = array(\"f\",\"j\",\"w\",\"z\");\n foreach ($m as $m2) {\n $pt = '\/'.$m2.'\/';\n $kk = preg_match($pt, $str);\n if ($kk > 0) {$kq=1;break;} \n else {$kq=0;} \n }\n \nreturn $kq; \n}<\/code><\/pre>\n\n\n\n
function tim_so($str) {\n $kq=0;\n $m = array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9'); \n\n foreach ($m as $m2) {\n $pt='\/'.$m2.'\/';\n $kk = preg_match($pt, $str);\n if ($kk > 0) {$kq=1;break;} \n }\n \nreturn $kq;\n}<\/code><\/pre>\n\n\n\n
function kt_la($str) {\n $kq = 0;\n $m = array('\\!', '\\~', '\\\/', '\\@', '\\#','\\$', '\\%', '\\'', '\\^', '\\&', '\\*', '\\(', '\\)', '\\-', '\\_', '\\=', '\\+', '\\[', '\\{', '\\]', '\\}', '\\|', '\\:', '\\;', '\\\"', '\\,', '\\<', '\\.', '\\>', '\\?', '\\+'); \/\/ k\u00fd t\u1ef1 d\u01b0\n\nforeach ($m as $m2) {\n $pt ='\/'.$m2.'\/';\n $kk = preg_match($pt, $str);\n if ($kk > 0) {$kq=1;break;} \n }\n \nreturn $kq;\n}<\/code><\/pre>\n\n\n\n
function tim_dau($str) { \n$kq=0;\n $sac = array(\"\u00e1\",\"\u1eaf\",\"\u1ea5\",\"\u00e9\",\"\u1ebf\",\"\u00f3\",\"\u1ed1\",\"\u1edb\",\"\u00fa\",\"\u1ee9\",\"\u00fd\",\"\u00ed\"); \/\/ kq 1\n\n $huyen = array(\"\u00e0\",\"\u1eb1\",\"\u1ea5\",\"\u00e8\",\"\u1ec1\",\"\u00f2\",\"\u1ed3\",\"\u1edd\",\"\u00f9\",\"\u1eeb\",\"\u1ef3\",\"\u00ec\"); \/\/ kq 2\n\n $hoi = array(\"\u1ea3\",\"\u1eb3\",\"\u1ea9\",\"\u1ec3\",\"\u1ebb\",\"\u1ecf\",\"\u1ed5\",\"\u1edf\",\"\u1ee7\",\"\u1eed\",\"\u1ef7\",\"\u1ec9\"); \/\/ kq 4\n\n $nga = array(\"\u00e3\",\"\u1eb5\",\"\u1eab\",\"\u1ebd\",\"\u1ec5\",\"\u00f5\",\"\u1ed7\",\"\u1ee1\",\"\u0169\",\"\u1eef\",\"\u1ef9\",\"\u0129\"); \/\/ kq 4\n\n $nang = array(\"\u1ea1\",\"\u1eb7\",\"\u1ead\",\"\u1eb9\",'\u1ec7',\"\u1ecd\",\"\u1ed9\",\"\u1ee3\",\"\u1ee5\",\"\u1ef1\",\"\u1ef5\",\"\u1ecb\"); \/\/ kq 4\n \nforeach ($sac as $s2) {\n $pt2 ='\/'.$s2.'\/';\n $kk2 = preg_match($pt2, $str);\n if ($kk2 > 0) {$kq=\"1\";break;} \n }\n \nforeach ($huyen as $s3) {\n $pt3 ='\/'.$s3.'\/';\n $kk3 = preg_match($pt3, $str);\n if ($kk3 > 0) {$kq=\"2\";break;} \n }\n\nforeach ($hoi as $s4) {\n $pt4 ='\/'.$s4.'\/';\n $kk4 = preg_match($pt4, $str);\n if ($kk4 > 0) {$kq=\"3\";break;} \n } \n\nforeach ($nga as $s5) {\n $pt5 ='\/'.$s5.'\/';\n $kk5 = preg_match($pt5, $str);\n if ($kk5 > 0) {$kq=\"4\";break;} \n } \n\nforeach ($nang as $s6) {\n $pt6 ='\/'.$s6.'\/';\n $kk6 = preg_match($pt6, $str);\n if ($kk6 > 0) {$kq=\"5\";break;} \n } \n \nreturn $kq;\n}<\/code><\/pre>\n\n\n\n
function tt_85($str2, $str3, $v, $p){\n $kq = 0;\n $ven = levenshtein($str2,$str3,1,1,1);\n similar_text($str2, $str3, $per);\n if ($v >= $ven && $per > $p) {$kq=1;}\n\nreturn $kq;\n}<\/code><\/pre>\n\n\n\n
function kt_bbb($str, $t) {\n $kq=0;\n $str2 = preg_split('\/\/u', $str, -1, PREG_SPLIT_NO_EMPTY);\n foreach ($str2 as $mt2) {\n if($mt2==$t) {$kq++;}\n }\n \nreturn $kq; \n}<\/code><\/pre>\n\n\n\n
function xoa_dau($str){ \n $dx = array(\"cc80\",\"cc81\",\"cc83\",\"cc89\",\"cca3\"); \/\/ m\u00e3 h\u00f3a d\u1ea5u ti\u1ebfng Vi\u1ec7t\n $hz = bin2hex(mahoa_itdung($str)); \/\/ chuy\u1ec3n sang m\u00e3 hex \u0111\u1ec3 t\u00ecm d\u1ea5u\n \n $i=0;\n\nforeach ($dx as $dy) { \n $dz ='\/'.$dy.'\/';\n if (preg_match($dz, $hz)) {\n $hz = preg_replace($dz,'',$hz); \/\/ kh\u1eed d\u1ea5u c\u1ee7a $hz; n\u00f3 v\u1eabn \u0111ang \u1edf d\u1ea1ng hex\n $i++;\n } \n }\n\n $kq = chuyen_ma_hoa(hex2bin($hz)); \n\nreturn $kq;\n}<\/code><\/pre>\n\n\n\n
function them_dau($str, $d){\n$str2=xoa_dau($str);\n$dau=\"\";\n if ($d==1) {$dau=\"cc81\";} \/\/ s\u1eafc\n\n if ($d==2) {$dau=\"cc80\";} \/\/ huy\u1ec1n\n\n if ($d==3) {$dau=\"cc89\";} \/\/ h\u1ecfi\n\n if ($d==4) {$dau=\"cc83\";} \/\/ ng\u00e3\n\n if ($d==5) {$dau=\"cca3\";} \/\/ n\u1eb7ng\n\n $hx = bin2hex(mahoa_itdung($str2)); \n $hx.=$dau; \n\n$kq = chuyen_ma_hoa(hex2bin($hx));\n\nreturn $kq; \n}<\/code><\/pre>\n\n\n\n
function catn_kt($str, $n) {\n $i = 0; $kq = \"\";\n $str2 = preg_split('\/\/u', $str, -1, PREG_SPLIT_NO_EMPTY);\n foreach ($str2 as $mt2) {\n if($i<$n) {$kq.=$mt2;}\n $i++;\n }\n \nreturn $kq; \n}<\/code><\/pre>\n\n\n\n
function vi_tri($str, $kt) { \/\/ v\u1ecb tr\u00ed k\u00fd t\u1ef1 theo ki\u1ec3u con ng\u01b0\u1eddi\n $kq = array(); $i=1; $j=0;\n $str2 = preg_split('\/\/u', $str, -1, PREG_SPLIT_NO_EMPTY);\n foreach ($str2 as $mt2) {\n if($mt2==$kt) {$kq[$j]=$i;$j++;}\n $i++;\n }\n \nreturn $kq; \/\/ k\u1ebft qu\u1ea3 \u0111\u01b0a v\u00e0o m\u1ea3ng \n}<\/code><\/pre>\n\n\n\n
$vt<\/code>) nh\u1ea5t \u0111\u1ecbnh b\u1eb1ng k\u00fd t\u1ef1 kh\u00e1c (
$kt<\/code>):<\/p>\n\n\n\n
function thay_the($str,$kt,$vt) {\n $i=1; $kq=\"\";$mt3=array();\n $str2 = preg_split('\/\/u', $str, -1, PREG_SPLIT_NO_EMPTY);\n\n foreach ($str2 as $mt2) {\n if($vt == $i) {$mt2=$kt;}\n $mt3[$i]=$mt2;\n $i++;\n }\n \n foreach ($mt3 as $mt4) {\n $kq.=$mt4;\n }\nreturn $kq; \n}<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"