Post slug generator, for creating clean urls from titles.
It works with many languages.
<?php
function remove_accent($str)
{
$a = array('Ã', 'Ã', 'Ã', 'Ã', 'Ã', 'Ã
', 'Ã', 'Ã', 'Ã', 'Ã', 'Ã', 'Ã', 'Ã', 'Ã', 'Ã', 'Ã', 'Ã', 'Ã', 'Ã', 'Ã', 'Ã', 'Ã', 'Ã', 'Ã', 'Ã', 'Ã', 'Ã', 'Ã', 'Ã', 'Ã', 'à ', 'á', 'â', 'ã', 'ä', 'Ã¥', 'æ', 'ç', 'è', 'é', 'ê', 'ë', 'ì', 'Ã', 'î', 'ï', 'ñ', 'ò', 'ó', 'ô', 'õ', 'ö', 'ø', 'ù', 'ú', 'û', 'ü', 'ý', 'ÿ', 'Ä', 'Ä', 'Ä', 'Ä', 'Ä', 'Ä
', 'Ä', 'Ä', 'Ä', 'Ä', 'Ä', 'Ä', 'Ä', 'Ä', 'Ä', 'Ä', 'Ä', 'Ä', 'Ä', 'Ä', 'Ä', 'Ä', 'Ä', 'Ä', 'Ä', 'Ä', 'Ä', 'Ä', 'Ä', 'Ä', 'Ä', 'Ä', 'Ä ', 'Ä¡', 'Ä¢', 'Ä£', 'Ĥ', 'Ä¥', 'Ħ', 'ħ', 'Ĩ', 'Ä©', 'Ī', 'Ä«', 'Ĭ', 'Ä', 'Ä®', 'į', 'Ä°', 'ı', 'IJ', 'ij', 'Ä´', 'ĵ', 'Ķ', 'Ä·', 'Ĺ', 'ĺ', 'Ä»', 'ļ', 'Ľ', 'ľ', 'Ä¿', 'Å', 'Å', 'Å', 'Å', 'Å', 'Å
', 'Å', 'Å', 'Å', 'Å', 'Å', 'Å', 'Å', 'Å', 'Å', 'Å', 'Å', 'Å', 'Å', 'Å', 'Å', 'Å', 'Å', 'Å', 'Å', 'Å', 'Å', 'Å', 'Å', 'Å', 'Å ', 'Å¡', 'Å¢', 'Å£', 'Ť', 'Å¥', 'Ŧ', 'ŧ', 'Ũ', 'Å©', 'Ū', 'Å«', 'Ŭ', 'Å', 'Å®', 'ů', 'Å°', 'ű', 'Ų', 'ų', 'Å´', 'ŵ', 'Ŷ', 'Å·', 'Ÿ', 'Ź', 'ź', 'Å»', 'ż', 'Ž', 'ž', 'Å¿', 'Æ', 'Æ ', 'Æ¡', 'Ư', 'Æ°', 'Ç', 'Ç', 'Ç', 'Ç', 'Ç', 'Ç', 'Ç', 'Ç', 'Ç', 'Ç', 'Ç', 'Ç', 'Ç', 'Ç', 'Ç', 'Ç', 'Ǻ', 'Ç»', 'Ǽ', 'ǽ', 'Ǿ', 'Ç¿');
$b = array('A', 'A', 'A', 'A', 'A', 'A', 'AE', 'C', 'E', 'E', 'E', 'E', 'I', 'I', 'I', 'I', 'D', 'N', 'O', 'O', 'O', 'O', 'O', 'O', 'U', 'U', 'U', 'U', 'Y', 's', 'a', 'a', 'a', 'a', 'a', 'a', 'ae', 'c', 'e', 'e', 'e', 'e', 'i', 'i', 'i', 'i', 'n', 'o', 'o', 'o', 'o', 'o', 'o', 'u', 'u', 'u', 'u', 'y', 'y', 'A', 'a', 'A', 'a', 'A', 'a', 'C', 'c', 'C', 'c', 'C', 'c', 'C', 'c', 'D', 'd', 'D', 'd', 'E', 'e', 'E', 'e', 'E', 'e', 'E', 'e', 'E', 'e', 'G', 'g', 'G', 'g', 'G', 'g', 'G', 'g', 'H', 'h', 'H', 'h', 'I', 'i', 'I', 'i', 'I', 'i', 'I', 'i', 'I', 'i', 'IJ', 'ij', 'J', 'j', 'K', 'k', 'L', 'l', 'L', 'l', 'L', 'l', 'L', 'l', 'l', 'l', 'N', 'n', 'N', 'n', 'N', 'n', 'n', 'O', 'o', 'O', 'o', 'O', 'o', 'OE', 'oe', 'R', 'r', 'R', 'r', 'R', 'r', 'S', 's', 'S', 's', 'S', 's', 'S', 's', 'T', 't', 'T', 't', 'T', 't', 'U', 'u', 'U', 'u', 'U', 'u', 'U', 'u', 'U', 'u', 'U', 'u', 'W', 'w', 'Y', 'y', 'Y', 'Z', 'z', 'Z', 'z', 'Z', 'z', 's', 'f', 'O', 'o', 'U', 'u', 'A', 'a', 'I', 'i', 'O', 'o', 'U', 'u', 'U', 'u', 'U', 'u', 'U', 'u', 'U', 'u', 'A', 'a', 'AE', 'ae', 'O', 'o');
return str_replace($a, $b, $str);
}
function post_slug($str)
{
return strtolower(preg_replace(array('/[^a-zA-Z0-9 -]/', '/[ -]+/', '/^-|-$/'),
array('', '-', ''), remove_accent($str)));
}
?>
Example: post_slug(' -Lo#&@rem IPSUM //dolor-/sit - amet-/-consectetur! 12 -- ')
will output: lorem-ipsum-dolor-sit-amet-consectetur-12