Si necesitás cortar palabras sin truncarlas, por ejemplo para mostrar titulares en espacios reducidos, estas funciones te permitirán hacerlo de una manera sencilla:
- function cortar_palabras($string, $limite){
-
- $str = "";
-
- $total_caracteres = 0;
-
- $total = 0;
-
-
- $aString = explode(" ", $string);
-
- $cantidad = count($aString);
-
-
- foreach($aString as $cadena){
-
- $total += contar_caracteres($cadena);
-
- }
-
- $c = 0;
-
- while($total_caracteres < $limite && $c < $cantidad){
-
- $total_caracteres += contar_caracteres($aString[$c]);
-
- $c++;
-
- }
-
- for($i = 0; $i < $c; $i++){
-
- $str .= $aString[$i] . " ";
-
- }
-
- $str .= ($total > $limite) ? "..." : "";
-
- return $str;
-
- }
-
- function contar_caracteres($string){
-
- return strlen($string);
-
- }
function cortar_palabras($string, $limite){
$str = "";
$total_caracteres = 0;
$total = 0;
$aString = explode(" ", $string);
$cantidad = count($aString);
foreach($aString as $cadena){
$total += contar_caracteres($cadena);
}
$c = 0;
while($total_caracteres < $limite && $c < $cantidad){
$total_caracteres += contar_caracteres($aString[$c]);
$c++;
}
for($i = 0; $i < $c; $i++){
$str .= $aString[$i] . " ";
}
$str .= ($total > $limite) ? "..." : "";
return $str;
}
function contar_caracteres($string){
return strlen($string);
}
Sólo tendremos que hacer un llamado a la función pasando como parámetros la cadena a cortar y la cantidad de caracteres que tomaremos como límite.
Saludos!