Foros del Web » Programando para Internet » PHP »

Palabras aleatorias

Estas en el tema de Palabras aleatorias en el foro de PHP en Foros del Web. Veran lo que intento hacer es lo siguiente: 1 archivo de texto con una indeterminada cantidad de frases (ejemplo 100 pero despues agregaria mas), todas ...
  #1 (permalink)  
Antiguo 10/04/2006, 16:11
 
Fecha de Ingreso: enero-2004
Mensajes: 431
Antigüedad: 20 años, 3 meses
Puntos: 6
Palabras aleatorias

Veran lo que intento hacer es lo siguiente:

1 archivo de texto con una indeterminada cantidad de frases (ejemplo 100 pero despues agregaria mas), todas separadas por una ", " ahora quiero un saber como puedo hacer para que se muestren solo 30 de estas aleatoriamente ejemplo:

Frases:

primera frase, segunda frase, tercera frase, cuarta frase, quinta frase

Resultado:

quinta frase segunda frase cuarta frase


Estuve leyendo en php.net acerca de wordwrap() pero al parecer no es lo que necesito.
explode() podria ser una alternativa, pero lo que no se es como mostrar X cantidad de datos aleatorios

AGRADECERIA LA AYUDA
__________________
El que teme preguntar, se averguenza de aprender.
  #2 (permalink)  
Antiguo 10/04/2006, 16:15
Avatar de turco_7  
Fecha de Ingreso: diciembre-2003
Ubicación: Córdoba, Argentina
Mensajes: 1.044
Antigüedad: 20 años, 4 meses
Puntos: 19
mmm creo que seria una buena combinacion del explode con el rand()
espero que te sirva ... saludos
__________________
Mi Blog http://turco7.blogspot.com
Usuario Linux : 404289
Mi última página: http://www.digitalservicecba.com.ar - Reparacion de camaras digitales!
  #3 (permalink)  
Antiguo 10/04/2006, 16:42
 
Fecha de Ingreso: enero-2004
Mensajes: 431
Antigüedad: 20 años, 3 meses
Puntos: 6
muchas gracias, ya lo habia pensado pero el problema es que imaginemos que tengo 5 frases con explode seria
Código PHP:
<?
// las frases que voy a usar
$frases ="primera frase, segunda frase, tercera frase, cuarta frase, quinta frase";
// separamos las frases
$frase_n explode(", "$frases);
// generamos un cifra aleatoria del 1 al 5
$numero rand(1,5);
//imprimimos la frase aleatoria

echo $frase_n[$numero];
?>
supongo que algo asi serviria ,pero eso solo serviria si tengo el numero exacto de frases, el problema es que no voy a tener ese dato, solo se iran agregando.
__________________
El que teme preguntar, se averguenza de aprender.

Última edición por kez0; 10/04/2006 a las 16:59
  #4 (permalink)  
Antiguo 11/04/2006, 05:54
 
Fecha de Ingreso: abril-2006
Mensajes: 21
Antigüedad: 18 años
Puntos: 0
Palabras aleatorias

Prueba a meter cada texto en un elemento de una matriz, despues le buscas el numero de elementos y una vez que lo sabes ya puedes generar el numero aleatorio.
  #5 (permalink)  
Antiguo 11/04/2006, 06:30
 
Fecha de Ingreso: abril-2006
Mensajes: 21
Antigüedad: 18 años
Puntos: 0
He probado lo siguiente y funciona:

// las frases que voy a usar
$frases ="primera frase, segunda frase, tercera frase, cuarta frase, quinta frase";
// separamos las frases
$frase_n = explode(", ", $frases);
// generamos un cifra aleatoria del 1 al 5
$cont=count($frase_n);
//muestro el numero de elementos de la matriz para comprobar
echo $cont."<br>";
$numero = rand(1,$cont);
//imprimimos la frase aleatoria
echo $frase_n[$numero]."<br>";
  #6 (permalink)  
Antiguo 11/04/2006, 06:42
 
Fecha de Ingreso: abril-2006
Mensajes: 21
Antigüedad: 18 años
Puntos: 0
Corrijo, seria:
$numero = rand(0,$cont-1);
  #7 (permalink)  
Antiguo 12/04/2006, 02:47
 
Fecha de Ingreso: enero-2004
Mensajes: 128
Antigüedad: 20 años, 2 meses
Puntos: 0
Hola, a mi tambien me interesaría mucho utilizar dicho código pero me gustaria que me orientaran para poder hacer que las frases esten en un archivo externo como un txt... puede hacerse? o algun otro metodo para añadirlas facilmente?
__________________
alumno de todo , maestro de nada

http://www.ganaregalosgratis.com/index.php?ref=47
  #8 (permalink)  
Antiguo 12/04/2006, 14:57
 
Fecha de Ingreso: enero-2004
Mensajes: 431
Antigüedad: 20 años, 3 meses
Puntos: 6
bueno pues el codigo de laris funciona, pero creo que lo que quiero es mostrar todas en diferente orden, no mostrar solo 1 aleatoriamente
__________________
El que teme preguntar, se averguenza de aprender.
  #9 (permalink)  
Antiguo 13/04/2006, 01:21
Avatar de uamistad  
Fecha de Ingreso: diciembre-2004
Ubicación: Cd. de México
Mensajes: 1.395
Antigüedad: 19 años, 4 meses
Puntos: 1
Les dejo una idea más sencilla.

Como dice kez0, usen un archivo de texto txt para poner sus frases, den ENTER cuando terminen cada una, ejemplo:

Esta es mi primera frase.
Esta es otra, y me gusta más que la anterior.
Mi frase siguiente, y así puedo agregar más.
Uyyy cuántas frases, ...

¿Hasta aquí ok?

Bueno, pues ahora con la función file(), que abre un archivo y lo mete en un array de elementos lo hacen así:

$frases = file ("texto.txt","r");

Ahora el array $frases contienen todas sus frases, listo.

Si quieres imprimir la primera frase, usa $frase[0], la siguiente $frase[1] y así consecutivamente.

Para elegir algunas al azar

Pues nada más sencillo que usar la función shuffle() que desordena una matriz de elementos:

shuffle($filas);

¡Ya está revuelto! Ahora impriman la cantidad de frases que quieran de frases con un bucle.
__________________
"Di no al Internet Explorer" -Proverbio Chino-
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:18.