[ PHP ] Regex ? Ou autre(s) ?
Résolu/Fermé
Alexis
-
Modifié par Alexis le 15/06/2011 à 00:25
Templier Nocturne Messages postés 7734 Date d'inscription jeudi 22 janvier 2009 Statut Membre Dernière intervention 21 mai 2016 - 15 juin 2011 à 18:01
Templier Nocturne Messages postés 7734 Date d'inscription jeudi 22 janvier 2009 Statut Membre Dernière intervention 21 mai 2016 - 15 juin 2011 à 18:01
7 réponses
Templier Nocturne
Messages postés
7734
Date d'inscription
jeudi 22 janvier 2009
Statut
Membre
Dernière intervention
21 mai 2016
1 103
15 juin 2011 à 00:00
15 juin 2011 à 00:00
seules les valeurs changent, ou le calcul aussi ?
Les valeurs, la structure de l'équation restera la même : x*xracine(x)
Excusez moi, la ? est le symbole racine carré qui n'est pas accepté ;)
Edit : Oups, j'ai oublié un ² ( carré ) à 23, ce qui donne donc :
23²*97racine(9)
Excusez moi, la ? est le symbole racine carré qui n'est pas accepté ;)
Edit : Oups, j'ai oublié un ² ( carré ) à 23, ce qui donne donc :
23²*97racine(9)
Templier Nocturne
Messages postés
7734
Date d'inscription
jeudi 22 janvier 2009
Statut
Membre
Dernière intervention
21 mai 2016
1 103
15 juin 2011 à 00:24
15 juin 2011 à 00:24
dans ce cas, tu peux isoler le calcul avec str_replace()
ensuite, tu remplace le * est le R² par un espace (toujours avec str_replace() )
enfin, tu explose la chaine avec explode() en prenant les espaces en delimiteur :)
tu te retrouve avec tes trois variables :)
ensuite, tu remplace le * est le R² par un espace (toujours avec str_replace() )
enfin, tu explose la chaine avec explode() en prenant les espaces en delimiteur :)
tu te retrouve avec tes trois variables :)
Templier Nocturne
Messages postés
7734
Date d'inscription
jeudi 22 janvier 2009
Statut
Membre
Dernière intervention
21 mai 2016
1 103
15 juin 2011 à 00:28
15 juin 2011 à 00:28
ok, bonne nuit et bon courage ;)
Templier Nocturne
Messages postés
7734
Date d'inscription
jeudi 22 janvier 2009
Statut
Membre
Dernière intervention
21 mai 2016
1 103
15 juin 2011 à 13:56
15 juin 2011 à 13:56
$montexte = [fichier];
$montexte = str_replace($montexte, 'Salut, écrit dans un fichier txt la réponse de ', '');
$montexte = str_replace(' Bonne chance !', '', $montexte);
$montexte = str_replace('²*', ' ', $montexte);
$montexte = str_replace('R²', ' ', $montexte); (R² à premplacer par le symbole racine carrée)
$val = explode(' ', $montexte)
echo $val[0];
echo $val[2];
echo $val[3];
un truc de ce genre :)
comme ça, tu récupère uniquement tes trois valeurs (string), qu'il te faut traduire en (int) :)
$montexte = str_replace($montexte, 'Salut, écrit dans un fichier txt la réponse de ', '');
$montexte = str_replace(' Bonne chance !', '', $montexte);
$montexte = str_replace('²*', ' ', $montexte);
$montexte = str_replace('R²', ' ', $montexte); (R² à premplacer par le symbole racine carrée)
$val = explode(' ', $montexte)
echo $val[0];
echo $val[2];
echo $val[3];
un truc de ce genre :)
comme ça, tu récupère uniquement tes trois valeurs (string), qu'il te faut traduire en (int) :)
Leviathan49
Messages postés
257
Date d'inscription
jeudi 10 juin 2010
Statut
Membre
Dernière intervention
22 juillet 2011
70
15 juin 2011 à 14:20
15 juin 2011 à 14:20
Ou sinon tu peut essayer avec des regex :
$subject="23²*97racine(9)" $pattern="#([0-9])+[^0-9]+([0-9])+[^0-9]+([0-9])+#"; preg_match($pattern, $subject, $matches); echo $matches[1]; echo $matches[2]; echo $matches[3];
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Encore merci à vous deux, j'ai beau analyser la moindre ligne de code, mais moi et les regex, ça fait deux !! Je ne comprendrais donc jamais rien à celle-ci, challenge échoué ! ;) Je lui dirais, il a gagné, mais cependant, cela m'aurais quand même intéressé de savoir la réponse :p Si ça ne vous dérange pas bien sûr, sinon, je mettrais résolu :)
Templier Nocturne
Messages postés
7734
Date d'inscription
jeudi 22 janvier 2009
Statut
Membre
Dernière intervention
21 mai 2016
1 103
15 juin 2011 à 15:29
15 juin 2011 à 15:29
ben la solution, je te l'ai quasiment donnée :
// 1) on lit le fichier
$montexte = [fichier]; //je ne sais pas lire dans un fichier, flemme de chercher
// 2) on ne conserve que nos valeurs
$montexte = str_replace($montexte, 'Salut, écrit dans un fichier txt la réponse de ', '');
$montexte = str_replace(' Bonne chance !', '', $montexte);
$montexte = str_replace('²*', ' ', $montexte);
$montexte = str_replace('R²', ' ', $montexte); //(R² à premplacer par le symbole racine carrée)
//3) on met les valeurs dans des variables distinctes et on les traduit en nombres
$val = explode(' ', $montexte)
$val1 = (int) $val[0];
$val2 = (int) $val[1];
$val3 = (int) $val[2];
// 4) on fait le calcul
$resu = $val1 * $val1 * $val2 * sqrt($val3);
// 5) on met le résultat dans un fichier
[fichier] = $resu; // et non, je ne sais pas non plus ecrire dedans...
// 1) on lit le fichier
$montexte = [fichier]; //je ne sais pas lire dans un fichier, flemme de chercher
// 2) on ne conserve que nos valeurs
$montexte = str_replace($montexte, 'Salut, écrit dans un fichier txt la réponse de ', '');
$montexte = str_replace(' Bonne chance !', '', $montexte);
$montexte = str_replace('²*', ' ', $montexte);
$montexte = str_replace('R²', ' ', $montexte); //(R² à premplacer par le symbole racine carrée)
//3) on met les valeurs dans des variables distinctes et on les traduit en nombres
$val = explode(' ', $montexte)
$val1 = (int) $val[0];
$val2 = (int) $val[1];
$val3 = (int) $val[2];
// 4) on fait le calcul
$resu = $val1 * $val1 * $val2 * sqrt($val3);
// 5) on met le résultat dans un fichier
[fichier] = $resu; // et non, je ne sais pas non plus ecrire dedans...
Oua, quasiment donnée, c'est vrai, mais comme dit précédemment, je ne suis vraiment pas doué avec les regex, c'est compliqué je trouve, bon, si tu veux, je vais mettre la suite, peut être ça servira pour certain personne ;) :
Je trouvais la suite beaucoup plus facile :p, donc si je ne me suis pas trompé, ça marche, la seul chose dont je ne suis pas sûr, c'est pour "a". Il me semble que lui ouvre le fichier en lecture et écriture, mais à voir, et "a+" si jamais le fichier n'est pas existant, ça le créera.
Voila, c'est un plaisir d'avoir parlé avec vous :) A la prochaine :) !
// On défini la variable pour valeur le fichier où l'on doit écrire $fichier = fopen("fichier.txt", "a"); // On écrit dedans avec fwrite fwrite($fichier, $resu); // On referme le fichier avec fclose fclose($fichier);
Je trouvais la suite beaucoup plus facile :p, donc si je ne me suis pas trompé, ça marche, la seul chose dont je ne suis pas sûr, c'est pour "a". Il me semble que lui ouvre le fichier en lecture et écriture, mais à voir, et "a+" si jamais le fichier n'est pas existant, ça le créera.
Voila, c'est un plaisir d'avoir parlé avec vous :) A la prochaine :) !
Templier Nocturne
Messages postés
7734
Date d'inscription
jeudi 22 janvier 2009
Statut
Membre
Dernière intervention
21 mai 2016
1 103
15 juin 2011 à 15:43
15 juin 2011 à 15:43
ben j'ai utilisé aucune regex XD
Templier Nocturne
Messages postés
7734
Date d'inscription
jeudi 22 janvier 2009
Statut
Membre
Dernière intervention
21 mai 2016
1 103
15 juin 2011 à 18:01
15 juin 2011 à 18:01
ben str_replace() est super simple d'utilisation, et est parfois vraiment pratique quand on ne sait pas utiliser les regex (nous somme deux sur ce topic =D)