Otros > Los Retos PHPeros
Reto #1 - Dividir Texto
naveda:
Hola,
Desde PHPeros queremos proponerte un reto de dificultad SENCILLA.
El reto consiste en dividir en oraciones el siguiente texto, mediante PHP:
--- Citar ---Microsoft actualizará su plataforma de juegos Xbox 360 de forma gratuita a través de Internet para permitir entre otras cosas una resolución de 1080 píxeles, considerada de alta definición. La actualización incorpora 85 características nuevas y se puede descargar a partir de este martes a través de una cuenta Xbox Live. Las mejoras van destinadas a la reproducción de vídeo en alta definición, a facilitar la actualización y gestión de los juegos en red Arcade, entre otras posibilidades.
--- Fin de la cita ---
Debes enumerar cada oracion dividida por puntos en el texto. El resultado debería ser:
--- Citar ---1.- Microsoft actualizará su plataforma de juegos Xbox 360 de forma gratuita a través de Internet para permitir entre otras cosas una resolución de 1080 píxeles, considerada de alta definición.
2.- La actualización incorpora 85 características nuevas y se puede descargar a partir de este martes a través de una cuenta Xbox Live.
3.- Las mejoras van destinadas a la reproducción de vídeo en alta definición, a facilitar la actualización y gestión de los juegos en red Arcade, entre otras posibilidades.
--- Fin de la cita ---
Tambien debes mostrar el numero de oraciones que se han dividido, por ejemplo en este caso sería:
--- Citar ---Nº de Oraciones: 3
--- Fin de la cita ---
Pistas:
* Usa la funcion explode();
Cualquier pregunta o duda para crear el codigo no dudes en realizarla ;)
PD. Claramente..., no pidas el codigo ya que serás descalificado.
Raken:
Bueno... parece que soy el primero en contestar. Esto podría dar muchas pistas a los demás usuarios, aunque espero que no tenga por qué ser así.
En cuanto a la dificultad, no lo calificaría de sencillo. Yo no sé muy bien cómo sería, pero voy a mojarme:
<?
$texto = "Microsoft actualizará su plataforma de juegos Xbox 360 de forma gratuita a través de Internet para permitir entre otras cosas una resolución de 1080 píxeles, considerada de alta definición. La actualización incorpora 85 características nuevas y se puede descargar a partir de este martes a través de una cuenta Xbox Live. Las mejoras van destinadas a la reproducción de vídeo en alta definición, a facilitar la actualización y gestión de los juegos en red Arcade, entre otras posibilidades.";
$division = explode (".", $texto);
$numero = 0;
$numero++;
echo $numero.".- ".$division[$numero-1]."\n";
$numero++;
echo $numero.".- ".$division[$numero-1]."\n";
$numero++;
echo $numero.".- ".$division[$numero-1]."\n";
echo "Nº de Oraciones: ".$numero;
?>
Ishamato:
Bueno.. pues voy a intentarlo aunque no se hacer la segunda parte xD
//Creo una variable que contiene el texto que quiero dividir
<?PHP
$texto = "Microsoft actualizará su plataforma de juegos Xbox 360 de forma gratuita a través de Internet para permitir entre otras cosas una resolución de 1080 píxeles, considerada de alta definición. La actualización incorpora 85 características nuevas y se puede descargar a partir de este martes a través de una cuenta Xbox Live. Las mejoras van destinadas a la reproducción de vídeo en alta definición, a facilitar la actualización y gestión de los juegos en red Arcade, entre otras posibilidades.";
$dividir = explode ("$texto");
//Le digo que la variable dividir divida (explode) la variable texto
$numero = 3;
echo "Nº de Oraciones: "$numero;
?>
Bueno aquí dejo mi respuesta, una vez publicada, puedo mejorarla? :-\ Esque creo que me e dejado varias cosas como separarlo por "." que no se hacerlo.
PDT: Ahora que e visto el de Raken lo entiendo, pero mi código es este, y no es plan de hacer trampas ;)
Raken:
Detecto cierto copiar y pegar... xD
--- Citar ---<?PHP
$texto = "Microsoft actualizará su plataforma de juegos Xbox 360 de forma gratuita a través de Internet para permitir entre otras cosas una resolución de 1080 píxeles, considerada de alta definición. La actualización incorpora 85 características nuevas y se puede descargar a partir de este martes a través de una cuenta Xbox Live. Las mejoras van destinadas a la reproducción de vídeo en alta definición, a facilitar la actualización y gestión de los juegos en red Arcade, entre otras posibilidades.";
$dividir = explode ("$texto");
//Le digo que la variable dividir divida (explode) la variable texto
$numero = 3;
echo "Nº de Oraciones: "$numero;
?>
--- Fin de la cita ---
Para empezar, hay mil formas de hacerlo, no hacía falta que lo hicieses como yo, pero da igual. ;D
En realidad es incorrecto.
--- Citar ---$dividir = explode("$texto");
--- Fin de la cita ---
La función explode, recorta el texto en cada "palabra clave". Por ejemplo, yo puse un punto, y entonces recorta cada vez que encuentra un punto. Al final he añadido $texto para decirle que lo aplique ahí.
--- Citar ---$dividir = explode(".", $texto);
--- Fin de la cita ---
El número que yo puse no era el número de recortes que tenía que hacer. Era una variable para mostrar el 1.- 2.- y el 3.- que pedía Naveda en el enunciado. Y además lo usaba para decir qué parte mostrar.
Por ejemplo:
$numero = 1; //El numero es 1 para este ejemplo
echo "$numero"; // 1
echo ".-"; // 1.-
echo $division[$numero];
Hemos dicho que numero era 1. Entonces mostrara la division 1, que es la primera parte del texto (hasta el primer punto). Y así succesivamente.
$numero++; lo que hace es sumarle 1 al número. Si antes teníamos un 1, ahora tenemos un dos. Y así todo el rato.
----------------
Puede que te preguntes por qué he usado la resta $division[$numero-1], teniendo ya los números 1, 2 y 3.
El número me interesaba que fuese 1, luego 2 y luego 3. Pero para la división del texto... no vale decir parte 1, parte 2 y parte 3. ¿Por qué no? Porque PHP empieza a contar desde 0. Entonces la primera parte es 0. Así que relativamente las partes serían 0, 1 y 2.
Por eso cuando tengo un 1, lo muestro para la frase (1.-) pero luego le resto 1 para poner la parte 0 $division[0];
Y así con cada partición. ;)
¿Hacía falta usar variables para cada número?
Pues no. Podría haberlo hecho directamente sin variables y sería lo mismo:
<?
$texto = "Microsoft actualizará su plataforma de juegos Xbox 360 de forma gratuita a través de Internet para permitir entre otras cosas una resolución de 1080 píxeles, considerada de alta definición. La actualización incorpora 85 características nuevas y se puede descargar a partir de este martes a través de una cuenta Xbox Live. Las mejoras van destinadas a la reproducción de vídeo en alta definición, a facilitar la actualización y gestión de los juegos en red Arcade, entre otras posibilidades.";
$division = explode (".", $texto);
echo "1.- ".$division[0]."\n";
echo "2.- ".$division[1]."\n";
echo "3.- ".$division[2]."\n";
echo "Nº de Oraciones: 3";
?>
Ishamato:
Ok ^^
Muchas gracias :P
PDT: Solo copié el texto que nos dio NaVeDa ;) (Ahora ya entiendo esta funcion :P)
Navegación
[#] Página Siguiente
Ir a la versión completa