Autor Tema: Poner (...) al superar una cantitad de caracteres  (Leído 593 veces)

Desconectado Jumarras

  • PHPer@
  • **
  • Mensajes: 73
  • Karma: 3
  • Sexo: Masculino
  • Ten cerca a tus amigos, pero mas a tus enemigos
    • Ver Perfil
Poner (...) al superar una cantitad de caracteres
« en: 11 de Abril de 2010, 17:48:39 pm »
Estaba copiando el tipico (leer mas), (read more) o (...) de las webs de novedades y demas, cuando me ha venido a la cabeza hacer una funcion sobre eso. Como queria compartirlo, aqui os dejo. Lo malo de esto, es que corta las palabras de la mitad, contando los caracteres que haya, espacios incluidos. por ejemplo, si el limite de caracteres es de 100, y la ultima palabra es TEMA y la  letra E es el caracter numero 100, aparecera TE (...). pero bueno, no todo es perfecto.

/**********************OPCION 1************************/

Código: [Seleccionar]
<?php
function cut($text//creamos la funcion
{
$count strlen($text); //contamos los caracteres que hay en el texto
$limit 100//ponemos un limite para los caracteres (no sobrepasara los 100 caracteres)
if($count $limit// hacemos un if, si el texto tiene mas de 100 caracteres...
{
return substr($text0$limit)." (leer mas)"//cortamos el texto y ponemos el (leer mas) por si tiene mas maracteres que 100
}
else //si el texto no tiene mas de 100 caracteres, ponemos el mismo texto
{
return $text;
}
}
?>

y para usar el texto, hariamos un include al archivo php y ponemos cut() donde queramos que corte el texto:

Código: [Seleccionar]
<?php 

$text 
cut("Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla");

echo 
$text;

?>

/**********************OPCION 2************************/

en codigo simple y sin funcion, seria de esta otra forma:

Código: [Seleccionar]
<?php

$text 
"Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla";

$count strlen($text); //contamos los caracteres que hay en el texto
$limit 100//ponemos un limite para los caracteres (no sobrepasara los 100 caracteres)
if($count $limit// hacemos un if, si el texto tiene mas de 100 caracteres...
{
echo substr($text0$limit)." (leer mas)"//cortamos el texto y ponemos el (leer mas) por si tiene mas maracteres que 100
}
else 
//si el texto no tiene mas de 100 caracteres, ponemos el mismo texto
{
echo $text;
}

?>

Salu2
« Última modificación: 14 de Abril de 2010, 15:36:30 pm por Jumarras »

Comunidad PHPeros

Poner (...) al superar una cantitad de caracteres
« en: 11 de Abril de 2010, 17:48:39 pm »

Desconectado Focux

  • PHPero Master
  • ******
  • Mensajes: 1.010
  • Karma: 22
    • Ver Perfil
Re:Poner (...) al superar una cantitad de caracteres
« Respuesta #1 en: 13 de Abril de 2010, 22:34:09 pm »
Se te olvido quitar la función en el segundo código, buen aporte aunque esto está más que explicado de las dos maneras (Con limite de palabras y de letras).
Mixtiqueros.net

<?PHP
define
(_miNombre, &#39;Focux&#39;);
if(_miNombre == &#39;Focux&#39;): printf(&#39;%s es un programador avanzado&#39;, _miNombre); else: printf(&#39;Tu no eres %s&#39;, _miNombre); endif;
?>