function FormatAsKey($string){ $string = strtolower($string); // Fix german special chars $string = preg_replace('/[äÄ]/', 'ae', $string); $string = preg_replace('/[üÜ]/', 'ue', $string); $string = preg_replace('/[öÖ]/', 'oe', $string); $string = preg_replace('/[ß]/', 'ss', $string); // Replace other special chars $specialChars = array( 'sharp' => '#', 'dot' => '.', 'plus' => '+', 'and' => '&', 'percent' => '%', 'dollar' => '$', 'equals' => '=', ); while(list($replacement, $char) = each($specialChars)) $string = str_replace($char, '-' . $replacement . '-', $string); $string = strtr( $string, "ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ", "AAAAAAaaaaaaOOOOOOooooooEEEEeeeeCcIIIIiiiiUUUUuuuuyNn" ); // Remove all remaining other unknown characters $string = preg_replace('/[^a-z0-9\-]/', '-', $string); $string = preg_replace('/^[\-]+/', '', $string); $string = preg_replace('/[\-]+$/', '', $string); $string = preg_replace('/[\-]{2,}/', '-', $string); return $string; }