Awalnya sih lagi membangun situs iklan baris gratis untuk klien dari Indowebmaker. Namanya juga iklan baris gratis maka yang ngisi juga banyak orang yang terkadang untuk isi iklannya cuma copas (copy paste) dari microsoft word atau yang lainnya. Nah akibat dari copas ini kadangkala muncul karakter aneh non ascii atau non utf-8. Karakter ini sangat mengganggu dan menyebabkan situs kita tidak valid xhtml.
Bingung juga sih gimana cara ngilanginnya, padahal udah coba berbagai macam cara mulai dari pake htmlentities, htmlspecialchars, dan lain-lain. Akan tetapi karakter tersebut tetap ada. Setelah bertanya ke paman google, akhirnya ketemu library phputf8 – library untuk menangani utf-8 dalam php. Library ini sangat lengkap diantaranya untuk validasi, menghapus, mengganti dan lain-lain.
Dari sekian banyak fungsi yang ada, saya hanya gunakan satu fungsi yang akan menghapus karakter non-ascii dan non-utf-8 yaitu:
1 2 3 4 5 6 7 8 9 10 11 12 | function utf8_strip_non_ascii_ctrl($str) { ob_start(); while ( preg_match('/^([\x09\x0A\x0D\x20-\x7E]+)|([^\x09\x0A\x0D\x20-\x7E]+)/S', $str, $matches) ) { if ( !isset($matches[2]) ) { echo $matches[0]; } $str = substr($str, strlen($matches[0])); } $result = ob_get_contents(); ob_end_clean(); return $result; } |
Nah dengan fungsi tersebut semua karakter non-ascii dan non-utf-8 akan dihilangkan dan situs kita akan kembali valid xhtml.
One Comment
Lam kenal…
tips bagus. bagi2 ilimu dong…