Ver Mensaje Individual
  #4 (permalink)  
Antiguo 15/02/2013, 12:47
xerifandtomas
 
Fecha de Ingreso: octubre-2010
Ubicación: España
Mensajes: 1.007
Antigüedad: 13 años, 6 meses
Puntos: 123
Respuesta: Cortar frase y signos de puntuacion

Problema resuelto.

He encontrado la solucion aquí

El error estaba en la funcion str_word_count(), que si no se define un charlist con todos los caracteres especiales elimina los caracteres especiales al no tomarlos como palabras o entidades. la solucion es sustituir str_word_count() por un explode() que corte la cadena por los espacios.

Os dejo la funcion lista, por si a alguien le sucede lo mismo.

Código PHP:
function cortar_frase($frase_entrada,$cortar){

   
$frase_corta=substr($frase_entrada,0,$cortar); // obtener la frase cortada.
   
$palabras=explode(' ',$frase_corta); // obtener array con las palabras. 
   
$total_palabras=count($palabras)-1// contar total array elementos y restar 1 elementos
   
if($total_palabras>8){
   
$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..
   
}else{
   
$frase_salida =$frase_entrada;
   }

  return 
$frase_salida;