URL Amigaveis SEO sem acentos e cedilha

Pessoal estou com um grande problema e preciso de uma ajudinha.

Estou desenvolvendo um site que do link eu coloco a nome do produto, so que eu gostaria de trabalhar com os padoes SEO de url amigaveis entao procurei uma funcao na net para remover acentos e caracteres especiais:


function slug($str) {

	   $result = @iconv('UTF-8', 'ASCII//TRANSLIT', $str);

            $result = strtolower($result);

            $result = preg_replace("/[^a-z0-9\s-]/", "", $result);

            $result = trim(preg_replace("/\s+/", " ", $result));

            $result = preg_replace("/\s/", "-", $result);

            $result = preg_replace("/[\/_|+ -]+/", '-', $result);

            return $result;

        }

Esta funcao so trata a questao do espaço, e remove os caracteres especiais removemos o mesmo a letra. A minha tabela esta em UTF-8, testei varias funçoes da net e em toda eu tive problema alguma com acento outras com cedilha.

Sera que alguem pode me ajuda com alguma funçao que retorna certo a string pois tem produtos que tem ç e acentos como ã que tb tive problema.

Gostaria que retornas-se assim:

coração de pelúcia > coracao-de-pelucia

Ja funcei esta net eu nao achei uma solução me ajude galera!

Eu achei essa função na net e pra mim aparentemente sempre funcionou bem com tudo, acento, cedilha, etc.




	public static function encodeSEOString($string)

	{

		$string = preg_replace("`\[.*\]`U","",$string);

		$string = preg_replace('`&(amp;)?#?[a-z0-9]+;`i','-',$string);

		$string = htmlentities($string, ENT_COMPAT, 'utf-8');

		$string = preg_replace( "`&([a-z])(acute|uml|circ|grave|ring|cedil|slash|tilde|caron|lig|quot|rsquo);`i","\\1", $string );

		$string = preg_replace( array("`[^a-z0-9]`i","`[-]+`") , "-", $string);

		return strtolower(trim($string, '-'));

		

	}



Moved as requested…