explication d'un bloc php

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : explication d'un bloc php

Re: explication d'un bloc php

par banania » 26 mai 2015, 11:28

d'accord j'ai compris !
Merci de m'avoir aidé

Re: explication d'un bloc php

par Ryle » 25 mai 2015, 21:33

C'est quasiment la même chose oui (à quelques erreurs php près ;)). Tu pourrais effectivement tout résumer dans une seule instruction :
$fixtures = json_decode(
	file_get_contents('http://api.football-data.org/alpha/soccerseasons/355/fixtures'
		, false
		, stream_context_create(
			array(
				'http' => array(
					'method' => 'GET'
					, 'header' => 'X-Auth-Token: 761f3154031441f79f501473b03ee97e'
				)
			)
		)
	)
);
Le fait de le faire étape par étape te permet de contrôler ton code plus facilement (notamment quand tu debug, c'est plus facile de trouver les erreurs éventuelles) et éventuellement pouvoir réutiliser certains résultats intermédiaires (les constantes et variables peuvent être réutilisées à différents endroit de ton code). Et surtout, ça rend le code plus facile à lire et à comprendre quand il est composé de courtes instructions simples, plutôt que d'une seule et grosse ligne de code :)

Re: explication d'un bloc php

par banania » 25 mai 2015, 18:42

il y a un truck que je ne comprend pas : pourquoi on ne ferait pas :
$reqPrefs['http']['method'] = 'GET';
$fixtures = json_decode (file_get_contents (URL, false, stream_context_create ('X-Auth-Token: '.CLEF) ) )
? estce que c'est la meme chose?

Re: explication d'un bloc php

par banania » 24 mai 2015, 23:26

Merci beaucoup ! :-)

Re: explication d'un bloc php

par Ryle » 24 mai 2015, 23:05

define('CLEF','761f3154031441f79f501473b03ee97e'); // définie une constante
define('URL','http://api.football-data.org/alpha/soccerseasons/355/fixtures'); // définie une constante

$reqPrefs['http']['method'] = 'GET';  // renseigne l'index 'method' du tableau $reqPrefs['http'], avec la valeur 'GET'
$reqPrefs['http']['header'] = 'X-Auth-Token: '.CLEF; // renseigne l'index 'header' du tableau $reqPrefs['http'], avec la valeur 'X-Auth-Token: ' et la constante CLEF  
$stream_context = stream_context_create($reqPrefs); // prépare la récupération du flux avec les paramètres précédents
$response = file_get_contents(URL, false, $stream_context); // se connecte au site distant et  récupère le code retourné par flux
$fixtures = json_decode($response);        // transforme le flux reponse (en supposant que ce soit du json) pour en faire un tableau php indexé

Re: explication d'un bloc php

par banania » 24 mai 2015, 21:59

mais du coup ca fait quoi exactement $response = file_get_contents(URL, false, $stream_context); ?
pouvez vous m'expliquer ce qui se passe à chaque ligne pour que je puisse comprendre le code svp ?
Merci

Re: explication d'un bloc php

par tof73 » 24 mai 2015, 18:00

http://api.football-data.org/alpha/socc ... 5/fixtures
retourne du json, sans rien avoir à passer en plus.

il faudrait connaitre en détail l'api pour savoir ce que cela change de rajouter un X-Auth-Token; un moyen de ne pas se faire bloquer pour un nombre trop élevé de requetes, un moyen de personaliser le contenu ?
si cela ne change rien, alors on peut mettre :
$response = file_get_contents(URL);

explication d'un bloc php

par banania » 24 mai 2015, 17:29

Bonjour,
Je travaille sur un site sportif et pour cela j'utilise une API
Dans l'utilisation de cette API, j'ai un bloc en php qui me permet d'appeler les données fournies par cette API.
Ce bolc fonctionne mais en fait mon problème réside plutôt dans sa comprehension : je ne comprend pas ce qui se passe dans ce bloc !
Quelqu'en pourrai m'expliquer ce qui se passe, pourquoi par exemple on utilise $stream_context, et pourquoi on passe par plusieurs variables, au lieu d'en utiliser une seule.
Merci de votre aide !

define('CLEF','761f3154031441f79f501473b03ee97e');
	define('URL','http://api.football-data.org/alpha/soccerseasons/355/fixtures');

    // Cette partie permet d'appeler une adresse de l'API
    // On appel une adresse qui permet de recuperer le classement
	
        $reqPrefs['http']['method'] = 'GET';
        // clef gratuite a récupérer à l'adresse suivante http://www.football-data.org/register
        $reqPrefs['http']['header'] = 'X-Auth-Token: '.CLEF;
        $stream_context = stream_context_create($reqPrefs);
        $response = file_get_contents(URL, false, $stream_context);
        // reponse sous forme d'objet
        $fixtures = json_decode($response);