slam:donneestructurees:exercice_yaml_json_xml

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
slam:donneestructurees:exercice_yaml_json_xml [2025/01/29 22:22] – [2. Représentation des données en JSON, YAML et XML] dthevenotslam:donneestructurees:exercice_yaml_json_xml [2025/02/13 09:24] (Version actuelle) – [4.Manipuler les formats JSON, YAML et XML en PHP ! Voici un script PHP qui :] dthevenot
Ligne 4: Ligne 4:
  
 ===== 1. Données à représenter ===== ===== 1. Données à représenter =====
- 
 Imaginons que nous avons une liste de livres avec les informations suivantes : Imaginons que nous avons une liste de livres avec les informations suivantes :
- 
   * Titre   * Titre
   * Auteur   * Auteur
Ligne 14: Ligne 12:
 |Titre |Auteur |Année |Genres| |Titre |Auteur |Année |Genres|
 |1984 |George Orwell |1949 |Dystopie, Politique| |1984 |George Orwell |1949 |Dystopie, Politique|
-|1943|Antoine de Saint-Exupéry|Le Petit Prince| Conte, Philosophie|+|Le Petit Prince|Antoine de Saint-Exupéry|1943|Conte, Philosophie|
 ===== 2. Représentation des données en JSON, YAML et XML ===== ===== 2. Représentation des données en JSON, YAML et XML =====
-1️⃣ Convertissez ces données en JSON, YAML et XML.+  - Convertissez ces données en JSON, YAML et XML. 
 +  - Identifiez les différences principales entre ces formats (syntaxe, lisibilité, etc.). 
 + 
 +===== 3. Questions de réflexion ===== 
 +  - Quel format est le plus facile à lire pour un humain ? Pourquoi ? 
 +  - Quel format est le plus adapté pour un échange de données entre applications ? 
 +  - Comment chaque format gère-t-il les listes (ex. la liste des genres) ? 
 +  - Quel format est le plus verbeux et pourquoi ? 
 +  - YAML n'utilise pas de guillemets ni d'accolades. Quels sont les avantages et inconvénients de cette approche ? 
 + 
 +===== 4.Manipuler les formats JSON, YAML et XML en PHP ! Voici un script PHP qui : ===== 
 +  - Charge les fichiers JSON, YAML et XML. 
 +  - Convertit chaque format en tableau PHP. 
 +  - Compare les résultats. 
 + 
 +Code PHP : Manipulation JSON, YAML et XML 
 +Créez les fichiers livres.json, livres.yaml et livres.xml, puis exécutez ce script : 
 +<code> 
 +<?php 
 +// Active l'affichage des erreurs (utile en développement) 
 +error_reporting(E_ALL); 
 +ini_set('display_errors', 1); 
 +// --- 1. Charger un fichier JSON --- 
 +function load_json($file) { 
 +    $json = file_get_contents($file); 
 +    return json_decode($json, true); 
 +
 +// --- 2. Charger un fichier YAML --- 
 +function load_yaml($file) { 
 +    if (!function_exists('yaml_parse_file')) { 
 +        die("Erreur : L'extension PHP YAML n'est pas installée !"); 
 +    } 
 +    return yaml_parse_file($file); 
 +
 +// --- 3. Charger un fichier XML --- 
 +function load_xml($file) { 
 +    $xml = simplexml_load_file($file); 
 +    $json = json_encode($xml); // Convertit en JSON temporairement 
 +    return json_decode($json, true); // Puis en tableau PHP 
 +
 +// --- 4. Comparer les données --- 
 +$json_data = load_json("livres.json"); 
 +$yaml_data = load_yaml("livres.yaml"); 
 +$xml_data = load_xml("livres.xml"); 
 +// Vérification de l'égalité des données 
 +echo "JSON et YAML identiques ? " . ($json_data == $yaml_data ? "OUI" : "NON") . "\n"; 
 +echo "JSON et XML identiques ? " . ($json_data == $xml_data ? "OUI" : "NON") . "\n"; 
 +echo "YAML et XML identiques ? " . ($yaml_data == $xml_data ? "OUI" : "NON") . "\n"; 
 + 
 +// --- 5. Afficher les données --- 
 +echo " <br /> Données JSON : <br /> "; 
 +print_r($json_data); 
 + 
 +echo " <br /> Données YAML : <br /> "; 
 +print_r($yaml_data); 
 + 
 +echo " <br /> Données XML : <br /> "; 
 +print_r($xml_data); 
 +?> 
 +</code>
  
-2️⃣ Identifiez les différences principales entre ces formats (syntaxe, lisibilité, etc.).+==== Installation YAML en PHP ==== 
 +Si PHP ne reconnaît pas yaml_parse_file() : 
 +  - installez l'extension YAML sur le serveur apache : **sudo apt install php-yaml**   # Pour Linux (Ubuntu/Debian) 
 +  - Dans le fichier php.ini (commande php --ini pour connaître son emplacement), décommentez ou ajoutez : **extension=yaml** 
 +  - Redémarrez le serveur : **sudo systemctl restart apache2** 
 +==== Rôle du script php ==== 
 +  - Chargement des fichiers : identifier la commande qui permet de charger chaque format de fichier 
 +  - Comparaison des données : vérifier si les formats contiennent les mêmes données. 
 +  - Affichage des résultats : afficher les tableaux PHP obtenus pour voir leur structure.
  • slam/donneestructurees/exercice_yaml_json_xml.1738185755.txt.gz
  • Dernière modification : 2025/01/29 22:22
  • de dthevenot