Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: santi810 en 8 Junio 2014, 00:51 am



Título: meter datos en una tabla a partir de texto con PHP
Publicado por: santi810 en 8 Junio 2014, 00:51 am
Buenos dias, estoy atascado en mi proyecto de ciclo por lo que agradeceria enormemente ayuda en este tema.

Estoy haciendo un pequeño script relacionado con la web "comunio" algunos la conocereis...

Mi finalidad es meter en una tabla con las siguientes tuplas:
ID (numero identificador, autoincrement)
emisor
receptor
fecha
cantidad
Nombre jugador


a partir de frases como estas (pongo varios ejemplos, las frases las genera la web diariamente)


________________________________________________________
Rodrigo de Paul cambia por 320.004 € de Computer a adry.

05.06.14 05:52 – Computer > Fichajes
Benzema cambia por 3.676.202 € de Computer a adry.

Larrivey cambia por 1.153.600 € de Enrique a Computer.
______________________________________________________
04.06.14 05:53 – Computer > Fichajes
Giovani dos Santos cambia por 1.410.000 € de Computer a Enrique.
_____________________________________________________
03.06.14 05:52 – Computer > Fichajes
Charles cambia por 310.000 € de Computer a adry.
____________________________________________________





Creo que se entiende bien el problema. Cualquier ayuda sera muy agradecida.
Gracias de antemano


Título: Re: meter datos en una tabla a partir de texto con PHP
Publicado por: ivancea96 en 8 Junio 2014, 01:49 am
Tu problema es convertir las frases a las estructuras esas, ¿no?

Rodrigo de Paul cambia por 320.004 € de Computer a adry.

Lo que tienes que hacer, es ir partiendo la frase, es todo. Busca las palabras que tratas de aislar.


Título: Re: meter datos en una tabla a partir de texto con PHP
Publicado por: santi810 en 8 Junio 2014, 02:13 am
Eso estuve pensando, pero no se manipular texto con php


Título: Re: meter datos en una tabla a partir de texto con PHP
Publicado por: engel lex en 8 Junio 2014, 03:22 am
sin querer sonar antipatico... aquí tienes php.net en español con todas las funciones de strings

http://php.net/manual/es/ref.strings.php (http://php.net/manual/es/ref.strings.php)

lee las descripciones y si alguna parece que te sirve adentro está bien explicada y con ejemplos


Título: Re: meter datos en una tabla a partir de texto con PHP
Publicado por: daryo en 8 Junio 2014, 04:19 am
es simple separas la cadena con la funcion explode  que permite dividir una cadena en trozos ,  con este se puede dividir en palabras asi

Código
  1. <?php
  2. $str = "Rodrigo de Paul cambia por 320.004 € de Computer a adry.";
  3. print_r (explode(" ",$str));
  4. ?>
http://www.w3schools.com/php/func_string_explode.asp


Código:
Rodrigo de Paul cambia por 320.004 € de Computer a adry.


es meter las palabras correspondientes en las variables la primera seria el nombre = rodrigo la tercera = al apellido  y asi


Título: Re: meter datos en una tabla a partir de texto con PHP
Publicado por: ivancea96 en 8 Junio 2014, 11:49 am
La función explode no se yo si funcionaría, viendo que hay nombres compuestos, nombres con apellidos, nombres asecas, etc.


Título: Re: meter datos en una tabla a partir de texto con PHP
Publicado por: santi810 en 8 Junio 2014, 13:38 pm
Creo que con explode si que se puede hacer. el tema es hacer varios bucles hasta llegar al formato deseado. Lo estoy haciendo aun en cuanto acabe lo cuelgo y me decis si hay una forma mejor o mas rapida.

Gracias por la ayuda!
Saludos


Título: Re: meter datos en una tabla a partir de texto con PHP
Publicado por: ivancea96 en 8 Junio 2014, 13:46 pm
Yo primero haría explode de '€'. De ahí sacamos ya:

"Rodrigo de Paul cambia por 320.004 € de Computer a adry."

Ya habríamos separado el jugador y el precio.

Luego queda "Computer a adry."

El caso es, que si uno de los jugadores se llama por ejemplo "Adrian a Agra", no distinguiriamos la 'a' del nombre de la 'a' de separador. Lo único, que saques del código fuente de la web en caso de que los nombres esten en negrita o como enlaces.


Título: Re: meter datos en una tabla a partir de texto con PHP
Publicado por: daryo en 8 Junio 2014, 17:31 pm
recuerden que lo que divide a la cadena pueden ser cadenas y no solamente carateres aca esta
Código
  1. <?php
  2. $str = "Rodrigo de Paul cambia por 320.004$ de Computer a adry.";
  3. $cadena=explode(" cambia por",$str);
  4. $nombre=$cadena[0];
  5. $cadena2=explode("$",$cadena[1]);
  6. $costo=$cadena2[0];
  7. $hacia=str_replace("de ","",$cadena2[1]);
  8.  
  9. echo " nombre: ".$nombre;
  10. echo " costo: ".$costo;
  11. echo " hacia: ".$hacia;
  12.  
  13.  
  14. ?>

por cierto probe el codigo aca -write online php :P http://writecodeonline.com/php/


Título: Re: meter datos en una tabla a partir de texto con PHP
Publicado por: ivancea96 en 8 Junio 2014, 18:49 pm
*Falta el "a: Adry"

Lo que propuse fue para el caso en que un jugador se llamase por ejemplo "Adrian cambia por". Es un caso remoto, pero me gusta asegurar todas las posibilidades. En ese caso, ese código fallaría.


Título: Re: meter datos en una tabla a partir de texto con PHP
Publicado por: daryo en 8 Junio 2014, 20:20 pm
*Falta el "a: Adry"

Lo que propuse fue para el caso en que un jugador se llamase por ejemplo "Adrian cambia por". Es un caso remoto, pero me gusta asegurar todas las posibilidades. En ese caso, ese código fallaría.

edito:
a si ya veo. xD puse el  "hacia" pero falto una division lo de que se llame cambia por no se lo veo muy improbable , pero siendo algo extremistas la solucion seria separarlo por el caracter euro y quitar las tres ultimas palabras de esa cadena.