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
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.
Eso estuve pensando, pero no se manipular texto con php
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
es simple separas la cadena con la funcion explode que permite dividir una cadena en trozos , con este se puede dividir en palabras asi
<?php
$str = "Rodrigo de Paul cambia por 320.004 € de Computer a adry.";
print_r (explode(" ",$str));
?>
http://www.w3schools.com/php/func_string_explode.asp
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
La función explode no se yo si funcionaría, viendo que hay nombres compuestos, nombres con apellidos, nombres asecas, etc.
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
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.
recuerden que lo que divide a la cadena pueden ser cadenas y no solamente carateres aca esta
<?php
$str = "Rodrigo de Paul cambia por 320.004$ de Computer a adry.";
$cadena=explode(" cambia por",$str);
$nombre=$cadena[0];
$cadena2=explode("$",$cadena[1]);
$costo=$cadena2[0];
$hacia=str_replace("de ","",$cadena2[1]);
echo " nombre: ".$nombre;
echo " costo: ".$costo;
echo " hacia: ".$hacia;
?>
por cierto probe el codigo aca -write online php :P http://writecodeonline.com/php/
*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.
Cita de: 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.
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.