¿Por qué haces utf8_decode de $titulo?:
Código PHP:
function getUrlAmigable($s){
$s = strtolower($s);
$s = ereg_replace("[áàâãäª@]","a",$s);
$s = ereg_replace("[éèêë]","e",$s);
$s = ereg_replace("[íìîï]","i",$s);
$s = ereg_replace("[óòôõºö]","o",$s);
$s = ereg_replace("[úùûü]","u",$s);
$s = ereg_replace("[ç]","c",$s);
$s = ereg_replace("[ñ]","n",$s);
$s = preg_replace( "/[^a-zA-Z0-9\-]/", "-", $s );
$s = preg_replace( array("`[^a-z0-9]`i","`[-]+`") , "-", $s);
return trim($s, '-');
}
echo $url = getUrlAmigable("áé89íóú´__;<>//\"");