
13/01/2003, 12:05
|
| | Fecha de Ingreso: agosto-2002 Ubicación: Barcelona
Mensajes: 29
Antigüedad: 22 años, 6 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 |