10-04-2008, 10:54 PM
(Modification du message : 10-04-2008, 10:57 PM par Sephi-Chan.)
Salut à tous,
Je poste ce petit message pour donner à ceux qui ne connaissent pas un exemple d'utilisation du format de données JSON (pour Javascript Object Notation).
JSON est donc une façon d'écrire des données, tout comme le permet XML ou YAML.
Je l'ai utilisé pour créer une petite interface graphique qui me permet de définir les paramètres d'une application dans un tableau PHP généré à partir d'un formulaire. Démonstration de l'application.
Cela permet de gagner un peu de temps : le script peut utiliser le tableau PHP sans avoir à parser un quelconque fichier. On peut assimiler ça à un cache.
Dans mon cas, JSON se trouve entre le formulaire et le fichier PHP généré.
Voici le script utilisé. Je précise qu'il n'est pas du tout sécurisé, la démarche est purement didactique.
Au chargement de la page, je teste si POST a été soumis. Si oui, je génère un fichier PHP qui définit une variable $configuration qui contient le code PHP nécessaire à PHP pour générer la superglobale POST donné par la fonction var_export() (l'argument TRUE sert à retourner la chaîne plutôt qu'à l'afficher).
Ensuite, je remets à jour le fichier texte en transformant le tableau POST en une chaîne JSON grâce à json_encode().
Je poste ce petit message pour donner à ceux qui ne connaissent pas un exemple d'utilisation du format de données JSON (pour Javascript Object Notation).
JSON est donc une façon d'écrire des données, tout comme le permet XML ou YAML.
Je l'ai utilisé pour créer une petite interface graphique qui me permet de définir les paramètres d'une application dans un tableau PHP généré à partir d'un formulaire. Démonstration de l'application.
Cela permet de gagner un peu de temps : le script peut utiliser le tableau PHP sans avoir à parser un quelconque fichier. On peut assimiler ça à un cache.
Dans mon cas, JSON se trouve entre le formulaire et le fichier PHP généré.
Voici le script utilisé. Je précise qu'il n'est pas du tout sécurisé, la démarche est purement didactique.
Au chargement de la page, je teste si POST a été soumis. Si oui, je génère un fichier PHP qui définit une variable $configuration qui contient le code PHP nécessaire à PHP pour générer la superglobale POST donné par la fonction var_export() (l'argument TRUE sert à retourner la chaîne plutôt qu'à l'afficher).
Ensuite, je remets à jour le fichier texte en transformant le tableau POST en une chaîne JSON grâce à json_encode().
Code PHP :
<?php
if(!empty($_POST)){
file_put_contents('configuration.php', '<?php $configuration = ' . var_export($_POST, TRUE) . "; ?>");
file_put_contents('configuration.txt', json_encode($_POST));
header('Location: edit.php');
}
Dans tous les cas, je génère le formulaire (à partir du fichier texte au format JSON) :
Code PHP :
<?php
$json = file_get_contents("configuration.txt");
$jsonArray = json_decode($json, TRUE);
echo '<form action="edit.php" method="post">';
echo '<table><caption>Éditer les paramètres</caption>';
echo '<tr><th>Paramètre</th><th>Valeur</th></tr>';
foreach($jsonArray as $parameter => $value){
echo '<tr>';
echo '<td><label for="'.$parameter.'">'.$parameter.'</label></td>';
echo '<td><input type="text" name="'.$parameter.'" id="'.$parameter.'" value="'.$value.'" /></td>';
echo '</tr>';
}
echo '<tr class="submit"><td colspan="2">';
echo '<input type="submit" value="Regénérer le fichier" />';
echo '</td></tr>';
echo '</table>';
echo '</form>';