[PhP] lire une partie d'une ligne [Résolu/Fermé]

Signaler
Messages postés
1268
Date d'inscription
samedi 27 octobre 2007
Statut
Membre
Dernière intervention
5 septembre 2013
-
Messages postés
1268
Date d'inscription
samedi 27 octobre 2007
Statut
Membre
Dernière intervention
5 septembre 2013
-
Bonsoir à tous,

Je suis en train de faire un script php qui ouvre une page web, jusqu'ici, aucoun problème.
Cette page Web contient une ligne que voici :

Le nombre aléatoire pour valider ta réponse est : 1041691507


il faut que je receuille uniquement le nombre, deja la, je sais pas comment m'y prendre. J'ai bien pensé aux fonction fgets et fread, mais elles ne me premettent pas de faire ce que je veux je crois...

Ensuite, il faut que je renvoit ce nombre par methode GET sur une autre page... J'ai donc besoin d'utiliser un forumlaire, mais je vois pas comment mon scirpt peut remplir ce formulaire... =/

J'espère que quelqun pourra m'aider et au moins répondre a une partie de mon problème...

Bonne soirée a tous

Azerty

9 réponses

Salut,

Il suffit que tu lises le contenu de ton fichier avec file_get_contents
Puis tu crées un tableau qui contient ce qu'il y a avant les deux points, puis ce qu'il y a après avec explode
Dans ton cas ça donnerais:
$fichier=file_get_contents("ton_fichier.html");
$tab = explode(":", $fichier);
$nombre = $tab[1];
Messages postés
1268
Date d'inscription
samedi 27 octobre 2007
Statut
Membre
Dernière intervention
5 septembre 2013
75
Euh, j'ai donc essayé, votre solution, mais voila ce qu'il se passe :

La fonction file_get_contents semble ouvrir ma page. Je receuille le fameux nombre comme ceci :

		$nombre = 0;		
		for($i = 1; $i < count($tab) - 1; $i++)
		{
			$nomber*=10;
			$nombre += $tab[i];
		}


Mais le Hic, c'est que la page en question reste ouverte, or, elle ne mintéresse pas. un fclose ni fait rien...

Et un echo de mon nombre ne semble pas marcher non plus, je ne sais pas pourquoi... :(

Vous voulez le code ?
Messages postés
8731
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
20 août 2016
1 501
Mais tu as pris mon exact? Ca fait quoi si tu fais:
var_dump($tab);

Et qu'est ce que tu entends par le fait que ton fichier reste ouvert?
Messages postés
1268
Date d'inscription
samedi 27 octobre 2007
Statut
Membre
Dernière intervention
5 septembre 2013
75
Bah voila le code entier que je te commente :

		

$fichier = file_get_contents("https://www.newbiecontest.org/epreuves/prog/prog1.php");
// varibale fichier contenant la ligne de cette page Web.

$tab = explode(":", $fichier);
//tableau contenant ce qu'il se trouve après les ':' (tab[0] est un espace.)

$nombre = 0;		
for($i = 1; $i < count($tab) - 1; $i++)
{
	$nomber*=10;
	$nombre += $tab[i];
}
//Recupération du nombre selon ce qu'il se trouve dans le tableau

echo $nombre;

var_dump($tab);


Voila, en fait, la fameuse page ("https://www.newbiecontest.org/epreuves/prog/prog1.php") génère un nombre aléatoire après les ':'.

Mais une fois mon script effectué, Ce qu'il se passe, c'est que je suis sur cette page, et rien d'autre. Je n'ai demandé aucun affichage du contenu de lapage hormis laffichage de $nombre. =/
Messages postés
8731
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
20 août 2016
1 501
Peut être que quand tu vas sur cette page avec ton navigateur ça marche. Mais pour quelqu'un qui n'est pas loggé sur le site, il n'y a qu'un message d'avertissement. Donc forcément un appel à file_get_contents ne peut pas marcher puisqu'il n'envoie pas de cookie comme le ferait le navigateur de quelqu'un de loggé sur le site.

Donc là je pense qu'il faudrait utiliser des fonctions plus élaborées comme les fonctions curl pour d'abord te logger puis consulter ta page. Les fonctions curl conservent les cookies.
https://www.php.net/manual/fr/ref.curl.php
Messages postés
1268
Date d'inscription
samedi 27 octobre 2007
Statut
Membre
Dernière intervention
5 septembre 2013
75
Je lis les docs, et je t'en reparle ;)

Merci beaucoup.
Messages postés
1268
Date d'inscription
samedi 27 octobre 2007
Statut
Membre
Dernière intervention
5 septembre 2013
75
Bon, je m suis penché sur mon problème, jarrive a renvoyer les valeurs dans l'url sans problème a priori.

seul Hic, jessaye de lire la page pour reccueillir le nombre, mais cela ne semble pas marcher :

Voici l'affichage de la page ou je dois reccueillir le nombre ainsi que mon scirpt :


Le nombre aléatoire pour valider ta réponse est : 1222386528


   		$fichier = file_get_contents("https://www.newbiecontest.org/epreuves/prog/prog1.php");
		$tab = explode(":", $fichier);

		$nombre = 0;		
		for($i = 1; $i < count($tab) - 1; $i++)
		{
			$nomber*=10;
			$nombre += $tab[i];
		}
		
		var_dump($tab);
Messages postés
1268
Date d'inscription
samedi 27 octobre 2007
Statut
Membre
Dernière intervention
5 septembre 2013
75
affichage du var_dump :
array(1) { [0]=>  string(166) "