Ver Mensaje Individual
  #4 (permalink)  
Antiguo 13/07/2005, 21:05
DarioDario
 
Fecha de Ingreso: junio-2005
Mensajes: 981
Antigüedad: 18 años, 10 meses
Puntos: 2
Hola, creo que la solución de guardar en otro campo sería bastante tedioso ya que tendria que modificar la tabla y regularizar los registros que no lo tengan "lleno". Otro dato sería que no ganarias nada de tiempo haciendolo de esa forma, es mas aunque sea minimo, por logica, tendria que aumentar. Yo te diria que en vez de mostrar las primeras 3 linéas, definas una catidad de palabras que equivalgan a esas 3 linéas. Yo te he echo una función que se ocupa de eso, es bastante simple y con algo muy parecido he solucionado lo mismo anteriormente.
Código PHP:
<?

function recortar ($cadena)
{
        
// Esta es la cantidad de palabras a mostrar
        
$cant_palabras 50;

        
// Dividimos la cadena y definimos un maximo de $cant_palabras + 1
        // Se le suma uno ya que ese elemento llevara el resto del mensaje si es cortado
        
$recorte explode(" ",$cadena,$cant_palabras 1);

        
// Si la cantidad de palabras es igual o menor que la que definimos devuelve la cadena intacta
        
if(count($recorte) <= $cant_palabras)
        {
                return 
$cadena;
        }else{
                
// Llevo el puntero al final
                
end($recorte);

                
// Borro el ultimo elemento que es el que contiene el resto del mesaje
                
unset($recorte[key($recorte)]);

                
// Concateno todos los elementos de la misma forma que lo dividimos
                
$str_recortado "[...] ".implode(" ",$recorte)." [...]";

                
// Devuelvo la cadena modificada y recortada
                
return $str_recortado;
        }
}

$noticia "Todos los parámetros excepto name son opcionales. Si sólo se especifica el parámetro name, la cookie con ese nombre se borrará del cliente remoto. También puede sustituir cualquier parámetro por una cadena de texto vacía y saltar así ese parámetro. Los parámetros expire y secure son números enteros y no se pueden saltar con una cadena de texto vacía. En su lugar utilice un cero (0). El parámetro expire es un entero de tiempo típico de UNIX tal como lo devuelven las funciones time() o mktime(). El parámetro secure indica que la cookie se debe transmitir única y exclusivamente sobre una conexión segura HTTPS.";

echo 
recortar($noticia);

?>
Bueno, está es la función funcionando con un ejemplo... la cantidad de palabras la puedes modificar a gusto . Lo unico malo es que esta función es un poco grosera ya que una persona que se le ocurra poner varios espacios juntos nos modificara el comportamiento de la función y no obtendremos lo mismo. Bueno esta función es solo una forma de que veas que no es dificil hacer algo asi y te invito a que trates de mejorarla lo mejor posible .
Bueno el comportamiento de la función es simple esta es la cadena original:
Cita:
Todos los parámetros excepto name son opcionales. Si sólo se especifica el parámetro name, la cookie con ese nombre se borrará del cliente remoto. También puede sustituir cualquier parámetro por una cadena de texto vacía y saltar así ese parámetro. Los parámetros expire y secure son números enteros y no se pueden saltar con una cadena de texto vacía. En su lugar utilice un cero (0). El parámetro expire es un entero de tiempo típico de UNIX tal como lo devuelven las funciones time() o mktime(). El parámetro secure indica que la cookie se debe transmitir única y exclusivamente sobre una conexión segura HTTPS.
La saque del manuel oficial de PHP . Y este sería el resultado:
Cita:
[...] Todos los parámetros excepto name son opcionales. Si sólo se especifica el parámetro name, la cookie con ese nombre se borrará del cliente remoto. También puede sustituir cualquier parámetro por una cadena de texto vacía y saltar así ese parámetro. Los parámetros expire y secure son números enteros y no [...]
Bueno, espero te sirva y se allá entendido. Saludos y suerte.