Php, récupérer chaine de nombre

jeanmarc -  
naruto-94 Messages postés 865 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je travaille actuellement sur un exercice en PHP. J'ai une page qui me délivre la phrase suivante : "Votre nombre est..." suivi d'une chaine de 16chiffres, aléatoires (ils changent quand j'actualise la page).
J'aimerais, grâce à une regex, récupérer cette chaine numérique, et seulement la chaine, puis ensuite l'afficher dans une page php en local.
Mon problème, avec le script que j'ai écrit, est qu'il me retourne toute la phrase, et non les seuls caractères numériques comme je l'aimerais...

Voici mon script

<?php
$nombre = file_get_contents("http://www.pagedonnantlenombre.php");
preg_match ('/([0-9]{1,16})/', $nombre, $soluce);
return $soluce;
?>


Merci d'avance ;)



4 réponses

Squad-G Messages postés 66 Date d'inscription   Statut Membre Dernière intervention   5
 
Si je comprend bien, tu as sur le page X.php ca :

Votre nombre est 23952353532 (aléatoire ici)

Et depuis la page Y.php tu veux charger la page X.php (dans la page Y.php avec file_get_contents) et afficher ce nombre sur la page Y ?
0
naruto-94 Messages postés 865 Date d'inscription   Statut Membre Dernière intervention   188
 
tu peux utiliser la fonction substr pour juste retourner les 16 derniers caractere de la phrase .
https://www.php.net/manual/fr/function.substr.php

<?php
$nombre = file_get_contents("http://www.pagedonnantlenombre.php");
preg_match ('/([0-9]{1,16})/', $nombre, $soluce);
$nombre = substr($soluce,-16);
echo $nombre ;
?>
0
Siluni
 
mauvaise idée, si la page retourne "Votre nombre est 1000" par exemple ^^

Le mieux étant d'utiliser le preg_match mais avec une meilleure regex
0
naruto-94 Messages postés 865 Date d'inscription   Statut Membre Dernière intervention   188
 
j'ai compris que la chaine qu'il devait récupérer était une longueur statique de 16chiffres ..
0
jeanmarc
 
Suad-G, oui c'est ca.
Siluni une idée de meilleure regex?
0
Squad-G Messages postés 66 Date d'inscription   Statut Membre Dernière intervention   5
 
Oui un meilleur regex. Essaie ça :

$nombre = file_get_contents("http://www.pagedonnantlenombre.php");
preg_match ('\s/([0-9]{1,16})/\s', $nombre, $soluce);
return $soluce;

Mais je sais pas si preg_match comprend \s ... :S

Je vais réfléchir, mais pk tu veux faire ca comme ca et pas générer au hasard sur la page de ton second scrippt ?
0