Ver Mensaje Individual
  #2 (permalink)  
Antiguo 13/01/2003, 12:05
juanangt
 
Fecha de Ingreso: agosto-2002
Ubicación: Barcelona
Mensajes: 29
Antigüedad: 21 años, 8 meses
Puntos: 1
Para hacer eso... yo me crearia una función que hiciera lo mismo que el substr pero teniendo en cuenta que no corte una palabra.

La función seria esta:

function wordsubstr($txt, $NumberChars) {
if (strlen($txt) > $NumberChars) {
// Si la cadena de texto es mayor al número de carácteres
// cortamos la cadena y ponemos "..."
$Array_txt = explode(" ", $txt);
$NChars = 0;
$Result = "";
foreach ($Array_txt as $Word) {
if ( ($NChars + strlen($Word) > $NumberChars) ) {
$Result .= "...";
break;
} else {
$NChars += strlen($Word) + 1; //Se suma uno más por el carácter de espacio
if ($Result != "") { $Result .= " "; }
$Result .= $Word;
}
}
return $Result;
} else {
// Si la cadena de texto es menor al número de carácteres
//devolvemos toda la cadena sin los "..."
return $txt;
}
}


$cadena = "Hola que tal como estás? Yo estoy muy bien y tú?";

echo "La función substr devolvería: ".substr($cadena, 0, 15)."<br>";
echo "La función wordsubstr devuelve: ".wordsubstr($cadena, 15);
__________________
Juanan