Maison  >  Article  >  développement back-end  >  Comment convertir php+xml et tableau entre eux

Comment convertir php+xml et tableau entre eux

PHPz
PHPzoriginal
2023-04-26 10:28:52532parcourir

Dans le développement Web, les formats XML et tableau sont souvent utilisés pour stocker et transmettre des données. XML est un langage de balisage souvent utilisé pour la description des données et la transmission interactive, tandis que les tableaux sont une structure de données souvent utilisée pour le traitement des données et les opérations dans les programmes. Dans le langage PHP, nous pouvons convertir PHP en XML et en tableaux, et cette conversion est très pratique et rapide.

Cet article présente principalement les méthodes de conversion mutuelle entre PHP, XML et tableaux en PHP, y compris les méthodes de conversion de XML en tableaux et de tableaux en XML.

1. Conversion mutuelle entre PHP et XML

En PHP, nous pouvons utiliser l'extension SimpleXML pour réaliser une conversion mutuelle entre PHP et XML. SimpleXML est une extension PHP intégrée pour traiter les données dans des fichiers XML. Elle peut convertir des fichiers XML en objets ou tableaux PHP, et également convertir des objets ou tableaux PHP en fichiers XML.

  1. Convertir un fichier XML en tableau PHP

Pour convertir un fichier XML en tableau PHP, vous devez utiliser la fonction simplexml_load_file dans l'extension SimpleXML. La fonction simplexml_load_file peut lire le fichier XML au chemin spécifié et renvoyer un objet SimpleXMLElement, puis convertir les informations du fichier XML en un tableau PHP en parcourant l'objet SimpleXMLElement.

Ce qui suit est un exemple de code pour convertir un fichier XML en tableau PHP :

$xmlStr = <<<XML
<?xml version=&#39;1.0&#39;?>
<menu>
  <item>
    <name>Chicken Curry</name>
    <price>8.95</price>
    <description>A spicy dish with chicken, carrots, and potatoes</description>
  </item>
  <item>
    <name>Beef Stir Fry</name>
    <price>10.95</price>
    <description>A savory dish with beef, mushrooms, and peppers</description>
  </item>
</menu>
XML;

$xml = simplexml_load_string($xmlStr);
$menu = [];

foreach ($xml->item as $item) {
    $menu[] = [
        'name' => (string) $item->name,
        'price' => (float) $item->price,
        'description' => (string) $item->description,
    ];
}

print_r($menu);

Exécutez le code ci-dessus, le résultat de sortie est :

Array
(
    [0] => Array
        (
            [name] => Chicken Curry
            [price] => 8.95
            [description] => A spicy dish with chicken, carrots, and potatoes
        )

    [1] => Array
        (
            [name] => Beef Stir Fry
            [price] => 10.95
            [description] => A savory dish with beef, mushrooms, and peppers
        )

)
  1. Convertir un tableau PHP en fichier XML

Convertir un tableau PHP dans un fichier XML, les données du tableau doivent être organisées selon les règles de syntaxe XML. En PHP, nous pouvons utiliser la classe SimpleXMLElement pour créer des éléments XML et utiliser une boucle foreach pour parcourir les données du tableau, ajouter les données aux éléments XML un par un, et enfin générer ou enregistrer le fichier XML dans un emplacement spécifié. localisation via la méthode asXML de l'objet SimpleXMLElement.

Ce qui suit est un exemple de code pour convertir un tableau PHP en fichier XML :

$menu = [
    [
        'name' => 'Chicken Curry',
        'price' => 8.95,
        'description' => 'A spicy dish with chicken, carrots, and potatoes'
    ],
    [
        'name' => 'Beef Stir Fry',
        'price' => 10.95,
        'description' => 'A savory dish with beef, mushrooms, and peppers'
    ]
];

$xml = new SimpleXMLElement('<menu></menu>');
foreach ($menu as $item) {
    $menuItem = $xml->addChild('item');
    $menuItem->addChild('name', $item['name']);
    $menuItem->addChild('price', $item['price']);
    $menuItem->addChild('description', $item['description']);
}

$xmlStr = $xml->asXML();
echo $xmlStr;

Exécutez le code ci-dessus, le résultat de sortie est :

<?xml version="1.0"?>
<menu>
  <item>
    <name>Chicken Curry</name>
    <price>8.95</price>
    <description>A spicy dish with chicken, carrots, and potatoes</description>
  </item>
  <item>
    <name>Beef Stir Fry</name>
    <price>10.95</price>
    <description>A savory dish with beef, mushrooms, and peppers</description>
  </item>
</menu>

2. Conversion entre PHP et les tableaux

En PHP, nous pouvons utiliser json_encode et La fonction json_decode est utilisée pour convertir PHP et les tableaux entre eux. La fonction json_encode convertit un tableau en PHP en une chaîne au format JSON et renvoie la chaîne convertie ; la fonction json_decode convertit une chaîne au format JSON en un tableau en PHP.

  1. Convertir un tableau PHP en chaîne au format JSON

Pour convertir un tableau PHP en chaîne au format JSON, vous devez utiliser la fonction json_encode. La fonction json_encode peut convertir un tableau en PHP en une chaîne au format JSON et renvoyer une valeur représentant la chaîne JSON.

Ce qui suit est un exemple de code pour convertir un tableau PHP en une chaîne au format JSON :

$menu = [
    [
        'name' => 'Chicken Curry',
        'price' => 8.95,
        'description' => 'A spicy dish with chicken, carrots, and potatoes'
    ],
    [
        'name' => 'Beef Stir Fry',
        'price' => 10.95,
        'description' => 'A savory dish with beef, mushrooms, and peppers'
    ]
];

$json = json_encode($menu);
echo $json;

Exécutez le code ci-dessus, le résultat de sortie est :

[{"name":"Chicken Curry","price":8.95,"description":"A spicy dish with chicken, carrots, and potatoes"},{"name":"Beef Stir Fry","price":10.95,"description":"A savory dish with beef, mushrooms, and peppers"}]
  1. Convertissez une chaîne au format JSON en un tableau PHP

Convertir JSON Pour convertir la chaîne formatée en tableau PHP, vous devez utiliser la fonction json_decode. La fonction json_decode peut convertir une chaîne au format JSON en tableau en PHP et renvoyer une valeur représentant le tableau PHP.

Ce qui suit est un exemple de code pour convertir une chaîne au format JSON en un tableau PHP :

$json = '[{"name":"Chicken Curry","price":8.95,"description":"A spicy dish with chicken, carrots, and potatoes"},{"name":"Beef Stir Fry","price":10.95,"description":"A savory dish with beef, mushrooms, and peppers"}]';

$menu = json_decode($json, true);
print_r($menu);

Exécutez le code ci-dessus, le résultat de sortie est :

Array
(
    [0] => Array
        (
            [name] => Chicken Curry
            [price] => 8.95
            [description] => A spicy dish with chicken, carrots, and potatoes
        )

    [1] => Array
        (
            [name] => Beef Stir Fry
            [price] => 10.95
            [description] => A savory dish with beef, mushrooms, and peppers
        )

)

3. Conversion entre les tableaux PHP et XML

En PHP, nous vous. peut utiliser l'extension SimpleXML et la fonction json_encode/json_decode pour convertir PHP en XML et en tableaux. Plus précisément, nous pouvons d'abord convertir le fichier XML en un tableau PHP, puis convertir le tableau PHP en une chaîne au format JSON. De la même manière, nous pouvons également convertir une chaîne au format JSON en un tableau PHP, puis convertir le tableau PHP en ; un objet SimpleXMLElement, et enfin obtenez un fichier XML.

Ce qui suit est un exemple de code complet de conversion de tableaux PHP et XML entre eux :

$xmlStr = <<<XML
<?xml version=&#39;1.0&#39;?>
<menu>
  <item>
    <name>Chicken Curry</name>
    <price>8.95</price>
    <description>A spicy dish with chicken, carrots, and potatoes</description>
  </item>
  <item>
    <name>Beef Stir Fry</name>
    <price>10.95</price>
    <description>A savory dish with beef, mushrooms, and peppers</description>
  </item>
</menu>
XML;

// 将XML文件转换为PHP数组
$xml = simplexml_load_string($xmlStr);
$menu = [];
foreach ($xml->item as $item) {
    $menu[] = [
        'name' => (string) $item->name,
        'price' => (float) $item->price,
        'description' => (string) $item->description,
    ];
}

// 将PHP数组转换为JSON格式的字符串
$json = json_encode($menu);

// 将JSON格式的字符串转换为PHP数组
$menu = json_decode($json, true);

// 将PHP数组转换为SimpleXMLElement对象
$xml = new SimpleXMLElement('<menu></menu>');
foreach ($menu as $item) {
    $menuItem = $xml->addChild('item');
    $menuItem->addChild('name', $item['name']);
    $menuItem->addChild('price', $item['price']);
    $menuItem->addChild('description', $item['description']);
}

// 输出XML文件
$xmlStr = $xml->asXML();
echo $xmlStr;

Exécutez le code ci-dessus, le résultat de sortie est :

<?xml version="1.0"?>
<menu>
  <item>
    <name>Chicken Curry</name>
    <price>8.95</price>
    <description>A spicy dish with chicken, carrots, and potatoes</description>
  </item>
  <item>
    <name>Beef Stir Fry</name>
    <price>10.95</price>
    <description>A savory dish with beef, mushrooms, and peppers</description>
  </item>
</menu>

Résumé

Ce qui précède est la méthode de conversion de PHP en XML et en tableaux , très simple et pratique. Qu'il s'agisse de transmission de données front-end ou back-end ou de traitement de données, nous pouvons effectuer les conversions correspondantes en fonction des besoins réels. Il convient de noter que lors de la conversion entre XML et tableaux, faites attention à la structure et au format des données pour éviter les erreurs inutiles.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn