Hola, todos. Tengo un problema al pasar una cadena por una función. El texto era muy largo entonces busqué una función para recortarlo, así que encontré esta función del usuario Cluster (Gracias, capo!) para recortarlo:
Código PHP:
<?
//Función para recortar string
function cortar_frase($frase_entrada,$cortar){
$frase_corta=substr($frase_entrada,0,$cortar); // obtener la frase cortada.
$palabras=str_word_count($frase_corta,1); // obtener array con las palabras.
$total_palabras=count($palabras)-1; // contar total array elementos y restar 1 elementos
$palabras=array_splice($palabras,0,$total_palabras); // le quitamos la ultima palabra.
$frase_salida=implode(' ',$palabras); // y concatenamos con el espacio hacia una cadena.
$frase_salida .= "..."; // se añaden los puntos suspensivos a la cadena obtenida..
return $frase_salida;
}
?>
La función me sirvió, pero me trajo un inconveniente. Me elimina todos los caracteres que llevan acento. Por ejemplo, en vez de poner:
Centro de Estética y Dermatología
escribe:
Centro de Est tica y Dermatolog a
La cadena de texto sale de una base de datos y cuando la imprimo sin pasarlo por la función no me da este problema. Estuve probando con utf8_encode y utf8_decode, pero no me lo soluciona, tal vez lo esté usando mal
El campo en cuestión tiene cotejamiento utf8_general_ci
¿Hay algo que pueda agregar a la función para solucionarlo? ¿En dónde?