Maison > développement back-end > Problème PHP > Comment convertir php+xml et tableau entre eux

Comment convertir php+xml et tableau entre eux

PHPz
Libérer: 2023-04-26 14:15:57
original
550 Les gens l'ont consulté

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);
Copier après la connexion

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
        )

)
Copier après la connexion
Copier après la connexion
  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;
Copier après la connexion

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>
Copier après la connexion
Copier après la connexion

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;
Copier après la connexion

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"}]
Copier après la connexion
  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);
Copier après la connexion

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
        )

)
Copier après la connexion
Copier après la connexion

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;
Copier après la connexion

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>
Copier après la connexion
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal