Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: Nightwalker89 en 8 Marzo 2009, 05:28 am



Título: Ayuda Code PHP
Publicado por: Nightwalker89 en 8 Marzo 2009, 05:28 am
<?
 
// Inicializamos las variables
$tamano = 50; // tamaño máximo
$contador = 0;
$texto = 'Este es el texto que se cortará para que no ocupe más de 50 carácteres';
 
// Cortamos la cadena por los espacios
$arrayTexto = split(' ',$texto);
$texto = '';
 
// Reconstruimos la cadena
while($tamano >= strlen($texto) + strlen($arrayTexto[$contador])){
    $texto .= ' '.$arrayTexto[$contador];
    $contador++;
}
echo $texto;
?>

como deberia cambiar ese code para que en caso de ser menor a 50 caracteres los muestre como esta el texto originalmente sin cortar?


Título: Re: Ayuda Code PHP
Publicado por: HardieVon en 8 Marzo 2009, 08:05 am
oye man me da curiosidad, para que quieres ese codigo?

ya que si lo almacenas pierde el orden y no tendria razón de ser.


Título: Re: Ayuda Code PHP
Publicado por: Nightwalker89 en 8 Marzo 2009, 08:11 am
como que no tiene razon de ser ? :huh: es para mostrar texto recortado y que la persona tenga que tocar en leer mas...   <algo asi apareceria xD igual ya lo solucione dejo el code por si a alguien mas le sirve mirando aqui y obvio que me pueden sugerir una modificacion para que sea mas eficiente ^^


<?
$tam = 100;
$descripcion = x_descripcion;
if strlen < $tam {
echo x_descripcion
}
else
{
$texto .= ' '.$arrayTexto[$contador];
$contador++;
}
if($texto == '')$texto = substr($arrayTexto[0], 0, $tamano);
echo $texto;
}
?>




Título: Re: Ayuda Code PHP
Publicado por: OzX en 8 Marzo 2009, 08:22 am
Perdon si Interprete Mal la Idea XD¡
Pero por lo que entendi.
No sale Mejor así?

Código:
<?
$cadena = "Yo me Llamo Oz, y Tengo 2 Perros y 4 Gatos , Soy Chileno y Algun Dia GAnaremos el Mundial";
$Solo_50 = substr($cadena,0,50);
?>

y Si quieres Contar Palabra
http://cl2.php.net/manual/es/function.str-word-count.php

Saludos¡


Título: Re: Ayuda Code PHP
Publicado por: eLank0 en 8 Marzo 2009, 14:14 pm
Hola,

Existe una función en PHP llamada str_word_count que te puede servir para hacer lo que quieres, mira:

Código:
<?php

function RecortaCadenas($palabras_mostrar, $cadena)
{
$palabras = str_word_count($cadena, 1);
$num_palabras = str_word_count($cadena, 0);
$parrafo="";

if($num_palabras > $palabras_mostrar)
{
for ($i=0; $i<=$palabras_mostrar; $i++)
{
$parrafo .= $palabras[$i]." ";
        }
       
return $parrafo;
    }
else
{
return $cadena;
    } 

}
 ?>

El 0 y el 1 de la función citada anteriormente, sirven para modificar el formato de la salida de la función, con el 0 devuelve el numero de palabras, con el 1 una matriz con todas las palabras de la cadena. Existe un tercer tipo de formato (numero 2) que consiste en un vector bidimensional donde el primer valor es la posición de la palabra en la cadena y el segundo la misma palabra.

El resto del código supongo que lo entenderás.

Salu2


Título: Re: Ayuda Code PHP
Publicado por: OzX en 8 Marzo 2009, 19:30 pm
jejeje pues creo que el compañero quiere contar caracteres y no Palabras.
con substr, tienes todo solucionado.

Saludos¡


Título: Re: Ayuda Code PHP
Publicado por: Nightwalker89 en 11 Marzo 2009, 00:11 am
listo ya lo solucione gracias gente


Título: Re: Ayuda Code PHP
Publicado por: Agente Naranja en 13 Marzo 2009, 13:13 pm
Yo lo que hago cuando tengo que cortar texto a una cierta longitud es calcular una longitud menor y cortar por el primer espacio que encuentre a partir de dicha longitud.
Ejemplo:
La longitud máxima es 60. Entonces tomo los primeros 50 carácteres de la cadena y corto por el primer espacio encontrado a partir de la posición 50.
Así suele quedar mejor que cortar a mitad de una palabra, y creo que es más rápido que hacer un array con cada una de las palabras (usando split);

Código
  1. $short_string = substring( $long_string, 0 , strpos($long_string, ' ', 50) );