Rumah > Soal Jawab > teks badan
P粉0685109912023-08-18 11:34:44
Saya ingin berkongsi penyelesaian elegan yang mengelakkan penggunaan htmlentiti dan tidak memerlukan penyenaraian semua penggantian aksara secara manual. Ini ialah terjemahan php dari posini.
function removeAccents($str) { return preg_replace('/[\x{0300}-\x{036f}]/u',"",normalizer_normalize($str,Normalizer::FORM_D)); } $a = "joaoaaeeA"; $b = "joãoâàéèÀ"; var_dump(removeAccents($a) === removeAccents($b));
Keluaran:
bool(true)
P粉4706452222023-08-18 10:51:27
Hanya tukar simbol beraksen kepada rakan tanpa aksen dan bandingkan rentetannya. Fungsi dalam jawapan saya akan mengalih keluar aksen untuk anda.
function removeAccents($string) { return strtolower(trim(preg_replace('~[^0-9a-z]+~i', '-', preg_replace('~&([a-z]{1,2})(acute|cedil|circ|grave|lig|orn|ring|slash|th|tilde|uml);~i', '', htmlentities($string, ENT_QUOTES, 'UTF-8'))), ' ')); } $a = "joaoaaeeA"; $b = "joãoâàéèÀ"; var_dump(removeAccents($a) === removeAccents($b));
Keluaran:
bool(true)