En aquest tema, aprendrem a treballar amb JSON (JavaScript Object Notation) i XML (eXtensible Markup Language) en PHP. Aquests formats són àmpliament utilitzats per a l'intercanvi de dades entre aplicacions web i serveis. Veurem com analitzar i generar dades en aquests formats utilitzant PHP.

JSON en PHP

Què és JSON?

JSON és un format lleuger per a l'intercanvi de dades. És fàcil de llegir i escriure per a humans, i fàcil de parsejar i generar per a màquines. JSON està basat en un subconjunt de la notació d'objectes de JavaScript.

Funcions JSON en PHP

PHP proporciona diverses funcions per treballar amb JSON:

  • json_encode(): Converteix una estructura de dades de PHP en una cadena JSON.
  • json_decode(): Converteix una cadena JSON en una estructura de dades de PHP.

Exemple Pràctic

Convertir un Array PHP a JSON

<?php
$data = array(
    "nom" => "Joan",
    "edat" => 30,
    "correu" => "[email protected]"
);

$json_data = json_encode($data);
echo $json_data;
?>

Explicació:

  • Hem creat un array associatiu $data.
  • Utilitzem json_encode() per convertir l'array en una cadena JSON.
  • Finalment, imprimim la cadena JSON.

Convertir una Cadena JSON a un Array PHP

<?php
$json_data = '{"nom":"Joan","edat":30,"correu":"[email protected]"}';

$data = json_decode($json_data, true);
print_r($data);
?>

Explicació:

  • Tenim una cadena JSON $json_data.
  • Utilitzem json_decode() per convertir la cadena JSON en un array associatiu PHP.
  • Imprimim l'array resultant.

Exercici Pràctic

Exercici:

  1. Crea un array associatiu amb informació sobre un llibre (títol, autor, any de publicació).
  2. Converteix l'array a una cadena JSON i imprimeix-la.
  3. Converteix la cadena JSON resultant a un array PHP i imprimeix-lo.

Solució:

<?php
// Pas 1: Crear l'array associatiu
$llibre = array(
    "titol" => "El Quixot",
    "autor" => "Miguel de Cervantes",
    "any" => 1605
);

// Pas 2: Convertir l'array a JSON
$json_llibre = json_encode($llibre);
echo "JSON: " . $json_llibre . "\n";

// Pas 3: Convertir la cadena JSON a un array PHP
$array_llibre = json_decode($json_llibre, true);
print_r($array_llibre);
?>

XML en PHP

Què és XML?

XML és un llenguatge de marcatge que defineix un conjunt de regles per a l'estructuració de documents de manera que siguin llegibles tant per a humans com per a màquines.

Funcions XML en PHP

PHP proporciona diverses funcions i extensions per treballar amb XML, com ara SimpleXML i DOMDocument.

Exemple Pràctic amb SimpleXML

Analitzar un Document XML

<?php
$xml_string = <<<XML
<llibre>
    <titol>El Quixot</titol>
    <autor>Miguel de Cervantes</autor>
    <any>1605</any>
</llibre>
XML;

$xml = simplexml_load_string($xml_string);
echo "Títol: " . $xml->titol . "\n";
echo "Autor: " . $xml->autor . "\n";
echo "Any: " . $xml->any . "\n";
?>

Explicació:

  • Hem creat una cadena XML $xml_string.
  • Utilitzem simplexml_load_string() per carregar la cadena XML en un objecte SimpleXML.
  • Accedim als elements XML com si fossin propietats de l'objecte.

Generar un Document XML

<?php
$llibre = new SimpleXMLElement('<llibre/>');
$llibre->addChild('titol', 'El Quixot');
$llibre->addChild('autor', 'Miguel de Cervantes');
$llibre->addChild('any', 1605);

echo $llibre->asXML();
?>

Explicació:

  • Hem creat un nou objecte SimpleXMLElement amb l'element arrel <llibre>.
  • Utilitzem addChild() per afegir elements fills.
  • Utilitzem asXML() per obtenir la representació XML com a cadena.

Exercici Pràctic

Exercici:

  1. Crea una cadena XML amb informació sobre una pel·lícula (títol, director, any de publicació).
  2. Analitza la cadena XML i imprimeix els valors dels elements.
  3. Genera un document XML amb la mateixa informació utilitzant SimpleXML.

Solució:

<?php
// Pas 1: Crear la cadena XML
$xml_string = <<<XML
<pelicula>
    <titol>Inception</titol>
    <director>Christopher Nolan</director>
    <any>2010</any>
</pelicula>
XML;

// Pas 2: Analitzar la cadena XML
$xml = simplexml_load_string($xml_string);
echo "Títol: " . $xml->titol . "\n";
echo "Director: " . $xml->director . "\n";
echo "Any: " . $xml->any . "\n";

// Pas 3: Generar un document XML
$pelicula = new SimpleXMLElement('<pelicula/>');
$pelicula->addChild('titol', 'Inception');
$pelicula->addChild('director', 'Christopher Nolan');
$pelicula->addChild('any', 2010);

echo $pelicula->asXML();
?>

Conclusió

En aquesta secció, hem après a treballar amb JSON i XML en PHP. Hem vist com convertir estructures de dades PHP a JSON i viceversa, així com analitzar i generar documents XML utilitzant SimpleXML. Aquests coneixements són essencials per a l'intercanvi de dades entre aplicacions web i serveis. En el proper tema, explorarem com utilitzar PHP per interactuar amb serveis web.

Curs de Programació PHP

Mòdul 1: Introducció a PHP

Mòdul 2: Estructures de Control

Mòdul 3: Funcions

Mòdul 4: Arrays

Mòdul 5: Treballant amb Formularis

Mòdul 6: Treballant amb Fitxers

Mòdul 7: Programació Orientada a Objectes (OOP)

Mòdul 8: Treballant amb Bases de Dades

Mòdul 9: Tècniques Avançades de PHP

Mòdul 10: Frameworks PHP i Millors Pràctiques

Mòdul 11: Projecte: Construint una Aplicació Web

© Copyright 2024. Tots els drets reservats