Replace utf8 characters like umlauts with their closest 7 bit ascii equivalent.
<?php
/**
* Replace utf8 characters like umlauts with their closest 7 bit ascii equivalent.
*
* @see http://stackoverflow.com/questions/158241/php-replace-umlauts-with-closest-7-bit-ascii-equivalent-in-an-utf-8-string
* @param string $str utf-8 string
* @return string
*/
function normalizeUtf8Chars($str)
{
if (strpos($str = htmlentities($str, ENT_QUOTES, 'UTF-8'), '&') !== false) {
$str = html_entity_decode(preg_replace('~&([a-z]{1,2})(?:acute|cedil|circ|grave|lig|orn|ring|slash|tilde|uml);~i', '$1', $str), ENT_QUOTES, 'utf-8');
}
return $str;
}
echo normalizeUtf8Chars('Züge'); // Zuge