[ PHP ] Regex ? Ou autre(s) ?
Résolu
Alexis
-
Templier Nocturne Messages postés 7734 Date d'inscription Statut Membre Dernière intervention -
Templier Nocturne Messages postés 7734 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je suis programmeur, et cette fois ci, je code en PHP. Mais mon problème est là :
je suis confronté à un challenge donné par un de mes collègues, et je dois me connecter à une page en local, pour récupérer les réponses d'une équation sur la page, je m'explique :
La page est sous cette forme ( très courte ) :
"Salut, écrit dans un fichier txt la réponse de 23*97?(9) Bonne chance !"
Le calcule étant actualisé à chaque rechargement de page, mais reste sous la même forme.
Je sais TOTALEMENT comment mi prendre, et donc, ce n'est pas pour ça que je viens chercher de l'aide. Je viens, car je cherche à prendre par exemple 23 pour le stoker dans une variable, puis 97 dans une autre etc... Sachant que à chaque réactualisation de page, le calcule change. Je sais comment faire pour tout le reste, ne vous inquiétez pas ;) merci.
Cordialement, Alexis.
En espérant avoir tout dit :)
Edit : Oups, j'ai oublié un ² ( carré ) à 23, ce qui donne donc :
23²*97racine(9)
Je suis programmeur, et cette fois ci, je code en PHP. Mais mon problème est là :
je suis confronté à un challenge donné par un de mes collègues, et je dois me connecter à une page en local, pour récupérer les réponses d'une équation sur la page, je m'explique :
La page est sous cette forme ( très courte ) :
"Salut, écrit dans un fichier txt la réponse de 23*97?(9) Bonne chance !"
Le calcule étant actualisé à chaque rechargement de page, mais reste sous la même forme.
Je sais TOTALEMENT comment mi prendre, et donc, ce n'est pas pour ça que je viens chercher de l'aide. Je viens, car je cherche à prendre par exemple 23 pour le stoker dans une variable, puis 97 dans une autre etc... Sachant que à chaque réactualisation de page, le calcule change. Je sais comment faire pour tout le reste, ne vous inquiétez pas ;) merci.
Cordialement, Alexis.
En espérant avoir tout dit :)
Edit : Oups, j'ai oublié un ² ( carré ) à 23, ce qui donne donc :
23²*97racine(9)
A voir également:
- [ PHP ] Regex ? Ou autre(s) ?
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Retour à la ligne php ✓ - Forum PHP
- Retour a la ligne avec Echo comment faire ? - Forum Webmastering
- Alert php - Forum PHP
7 réponses
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)
$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) :)
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 :)
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 :) !