Pode crer Felipe ...
savior... fiz uns testes hoje só hehehehe
Resultados
... da forma que vc mostrou ali... para o meu caso... quando a string está diretamente no arquivo
$string = "As beldades são sempre uma atração à parte nas competiçães de surf, principalmente quando o palco das disputas fica situado na região Sul do Brasil.";
... aplica a função... Funciona perfeitamente...
mas...
quando estou trazendo a string do banco de dados com codificação utf-8 unicode não posso usar o
htmlentities() Pois os caracteres ficam todos errados, independente de ter sido cortado pela função ou não... então deixando só o decode para testar...
Enfim após vários testes tive problemas com o "&" sózinho... que teimava ficar & e não & hehehehe pior foi um cedilha do cão ali que tbm não conseguia ver a lógica
Sei lá... vou brincar mais um pouco e ver no que dá...
---------------------------------------
... depois de muito testar consegui resolver...
Pode até ser a coisa mais confusa do mundo, mas que deu certo, deu... e para todos os casos que testei.
<?php
function str_truncate($str, $length, $rep){
$str = str_replace('&', '&', iconv("UTF-8", "ISO-8859-1", $str));
if(strlen($str)<=$length) return $str;
$oc = ($rep == 0 ) ? (strrpos(substr($str,0,$length),' ')) : (strpos(substr($str,$length),' ') + $length);
return iconv("ISO-8859-1", "UTF-8" , htmlentities(substr(str_replace('amp;', '', $str), 0, $oc), ENT_QUOTES, 'ISO-8859-1')."...");
}
$sql = mysql_query("SELECT titulo FROM tabela");
while($array = mysql_fetch_Array($sql)){
echo str_truncate($array[0], 16, 1)."<br />";
}
?>
Uma coisa que nunca me perguntei foi o porque das constantes, já que se trabalhar só com o valor 0 ou 1 na condicional funciona perfeitamente
Fiz sem constantes e não deu problema... tem algum problema nisso?
Até mais