Heim >Backend-Entwicklung >PHP-Problem >So konvertieren Sie PHP+XML und Array ineinander

So konvertieren Sie PHP+XML und Array ineinander

PHPz
PHPzOriginal
2023-04-26 10:28:52552Durchsuche

In der Webentwicklung werden häufig XML- und Array-Formate zum Speichern und Übertragen von Daten verwendet. XML ist eine Auszeichnungssprache, die häufig zur Datenbeschreibung und interaktiven Übertragung verwendet wird, während Arrays eine Datenstruktur sind, die häufig zur Datenverarbeitung und für Operationen in Programmen verwendet wird. In der PHP-Sprache können wir PHP in XML und Arrays konvertieren, und diese Konvertierung ist sehr bequem und schnell.

In diesem Artikel werden hauptsächlich die gegenseitigen Konvertierungsmethoden zwischen PHP, XML und Arrays in PHP vorgestellt, einschließlich der Konvertierungsmethoden von XML in Arrays und von Arrays in XML.

1. Gegenseitige Konvertierung zwischen PHP und XML

In PHP können wir die SimpleXML-Erweiterung verwenden, um die gegenseitige Konvertierung zwischen PHP und XML zu realisieren. SimpleXML ist eine in PHP integrierte Erweiterung zur Verarbeitung von Daten in XML-Dateien. Sie kann XML-Dateien in PHP-Objekte oder -Arrays sowie PHP-Objekte oder -Arrays in XML-Dateien konvertieren.

  1. XML-Datei in PHP-Array konvertieren

Um eine XML-Datei in ein PHP-Array zu konvertieren, müssen Sie die Funktion simplexml_load_file in der SimpleXML-Erweiterung verwenden. Die Funktion simplexml_load_file kann die XML-Datei im angegebenen Pfad lesen und ein SimpleXMLElement-Objekt zurückgeben und dann die Informationen in der XML-Datei durch Durchlaufen des SimpleXMLElement-Objekts in ein PHP-Array konvertieren.

Das Folgende ist ein Codebeispiel zum Konvertieren einer XML-Datei in ein PHP-Array:

$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);

Führen Sie den obigen Code aus. Das Ausgabeergebnis ist:

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. Konvertieren Sie ein PHP-Array in eine XML-Datei.

Konvertieren Sie ein PHP-Array In eine XML-Datei müssen die Daten im Array gemäß den XML-Syntaxregeln organisiert werden. In PHP können wir die SimpleXMLElement-Klasse verwenden, um XML-Elemente zu erstellen, und eine foreach-Schleife verwenden, um die Daten im Array zu durchlaufen, die Daten nacheinander zu den XML-Elementen hinzuzufügen und schließlich die XML-Datei an einem angegebenen Ort auszugeben oder zu speichern Standort über die asXML-Methode des SimpleXMLElement-Objekts.

Das Folgende ist ein Codebeispiel zum Konvertieren eines PHP-Arrays in eine XML-Datei:

$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;

Führen Sie den obigen Code aus. Das Ausgabeergebnis lautet:

<?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. Konvertierung zwischen PHP und Arrays

In PHP können wir json_encode verwenden und Die Funktion json_decode wird verwendet, um PHP in Arrays zu konvertieren. Die Funktion json_encode konvertiert ein Array in PHP in eine JSON-formatierte Zeichenfolge und gibt die konvertierte Zeichenfolge zurück. Die Funktion json_decode konvertiert eine JSON-formatierte Zeichenfolge in ein Array in PHP.

  1. PHP-Array in eine JSON-Formatzeichenfolge konvertieren

Um ein PHP-Array in eine JSON-Formatzeichenfolge zu konvertieren, müssen Sie die Funktion json_encode verwenden. Die Funktion json_encode kann ein Array in PHP in einen JSON-formatierten String konvertieren und einen Wert zurückgeben, der den JSON-String darstellt.

Das Folgende ist ein Codebeispiel zum Konvertieren eines PHP-Arrays in eine JSON-formatierte Zeichenfolge:

$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;

Führen Sie den obigen Code aus. Das Ausgabeergebnis lautet:

[{"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. Konvertieren Sie eine JSON-formatierte Zeichenfolge in ein PHP-Array

JSON konvertieren Um einen formatierten String in ein PHP-Array zu konvertieren, müssen Sie die Funktion json_decode verwenden. Die Funktion json_decode kann eine JSON-formatierte Zeichenfolge in ein Array in PHP konvertieren und einen Wert zurückgeben, der das PHP-Array darstellt.

Das Folgende ist ein Codebeispiel zum Konvertieren einer JSON-Formatzeichenfolge in ein PHP-Array:

$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);

Führen Sie den obigen Code aus. Das Ausgabeergebnis lautet:

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. Konvertierung zwischen PHP- und XML-Arrays

In PHP sind wir Sie kann die SimpleXML-Erweiterung und die Funktion json_encode/json_decode verwenden, um PHP in XML und Arrays zu konvertieren. Konkret können wir zuerst die XML-Datei in ein PHP-Array konvertieren und dann das PHP-Array in einen JSON-formatierten String konvertieren. Ebenso können wir auch einen JSON-formatierten String in ein PHP-Array konvertieren und dann das PHP-Array in ein SimpleXMLElement-Objekt und erhalten schließlich eine XML-Datei.

Das Folgende ist ein vollständiges Codebeispiel für die Konvertierung von PHP- und XML-Arrays ineinander:

$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;

Führen Sie den obigen Code aus. Das Ausgabeergebnis lautet:

<?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>

Zusammenfassung

Das Obige ist die Methode zum Konvertieren von PHP in XML und Arrays , sehr einfach und praktisch. Ob in der Front-End- oder Back-End-Datenübertragung oder Datenverarbeitung, wir können entsprechende Konvertierungen entsprechend dem tatsächlichen Bedarf durchführen. Es ist zu beachten, dass bei der Konvertierung zwischen XML und Arrays auf die Struktur und das Format der Daten geachtet werden muss, um unnötige Fehler zu vermeiden.

Das obige ist der detaillierte Inhalt vonSo konvertieren Sie PHP+XML und Array ineinander. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn