Bagaimana untuk menukar php+xml dan tatasusunan antara satu sama lain

PHPz
Lepaskan: 2023-04-26 14:15:57
asal
517 orang telah melayarinya

Dalam pembangunan web, XML dan format tatasusunan sering digunakan untuk menyimpan dan menghantar data. XML ialah bahasa penanda yang sering digunakan untuk penerangan data dan penghantaran interaktif, manakala tatasusunan ialah struktur data yang sering digunakan untuk pemprosesan dan operasi data dalam program. Dalam bahasa PHP, kita boleh menukar PHP kepada XML dan tatasusunan, dan penukaran ini sangat mudah dan pantas.

Artikel ini terutamanya memperkenalkan kaedah penukaran bersama antara PHP, XML dan tatasusunan dalam PHP, termasuk kaedah penukaran daripada XML kepada tatasusunan dan daripada tatasusunan kepada XML.

1. Penukaran bersama antara PHP dan XML

Dalam PHP, kita boleh menggunakan sambungan SimpleXML untuk merealisasikan penukaran bersama antara PHP dan XML. SimpleXML ialah sambungan terbina dalam PHP untuk memproses data dalam fail XML. Ia boleh menukar fail XML kepada objek atau tatasusunan PHP, dan juga menukar objek atau tatasusunan PHP kepada fail XML.

  1. Tukar fail XML kepada tatasusunan PHP

Untuk menukar fail XML kepada tatasusunan PHP, anda perlu menggunakan fungsi simplexml_load_file dalam sambungan SimpleXML. Fungsi simplexml_load_file boleh membaca fail XML pada laluan yang ditentukan dan mengembalikan objek SimpleXMLElement, dan kemudian menukar maklumat dalam fail XML kepada tatasusunan PHP dengan merentasi objek SimpleXMLElement.

Berikut ialah contoh kod untuk menukar fail XML kepada tatasusunan 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);
Salin selepas log masuk

Jalankan kod di atas, hasil output ialah:

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
        )

)
Salin selepas log masuk
Salin selepas log masuk
  1. Tukar tatasusunan PHP kepada fail XML

Untuk menukar tatasusunan PHP kepada fail XML, data dalam tatasusunan perlu disusun mengikut peraturan sintaks XML. Dalam PHP, kita boleh menggunakan kelas SimpleXMLElement untuk mencipta elemen XML, dan menggunakan gelung foreach untuk lelaran melalui data dalam tatasusunan, menambah data pada elemen XML satu demi satu, dan akhirnya mengeluarkan atau menyimpan fail XML ke yang ditentukan lokasi melalui kaedah asXML objek SimpleXMLElement .

Berikut ialah contoh kod untuk menukar tatasusunan PHP kepada fail 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;
Salin selepas log masuk

Jalankan kod di atas, hasil output ialah:

<?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>
Salin selepas log masuk
Salin selepas log masuk

2. Penukaran PHP kepada dan dari tatasusunan

Dalam PHP, kita boleh menggunakan fungsi json_encode dan json_decode untuk menukar PHP kepada tatasusunan. Fungsi json_encode menukar tatasusunan dalam PHP kepada rentetan berformat JSON dan mengembalikan rentetan yang ditukar fungsi json_decode menukar rentetan berformat JSON kepada tatasusunan dalam PHP.

  1. Tukar tatasusunan PHP kepada rentetan format JSON

Untuk menukar tatasusunan PHP kepada rentetan format JSON, anda perlu menggunakan fungsi json_encode. Fungsi json_encode boleh menukar tatasusunan dalam PHP kepada rentetan berformat JSON dan mengembalikan nilai yang mewakili rentetan JSON.

Berikut ialah contoh kod untuk menukar tatasusunan PHP kepada rentetan dalam 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;
Salin selepas log masuk

Jalankan kod di atas, hasil output ialah:

[{"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"}]
Salin selepas log masuk
  1. Tukar rentetan dalam format JSON kepada tatasusunan PHP

Untuk menukar rentetan dalam format JSON kepada tatasusunan PHP, anda perlu menggunakan fungsi json_decode. Fungsi json_decode boleh menukar rentetan berformat JSON kepada tatasusunan dalam PHP dan mengembalikan nilai yang mewakili tatasusunan PHP.

Berikut ialah contoh kod untuk menukar rentetan berformat JSON kepada tatasusunan 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);
Salin selepas log masuk

Jalankan kod di atas, hasil output ialah:

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
        )

)
Salin selepas log masuk
Salin selepas log masuk

3. Penukaran bersama antara tatasusunan PHP dan XML

Dalam PHP, kita boleh menggunakan sambungan SimpleXML dan fungsi json_encode/json_decode untuk merealisasikan penukaran bersama antara PHP, XML dan tatasusunan. Secara khusus, kita boleh menukar fail XML kepada tatasusunan PHP, dan kemudian menukar tatasusunan PHP kepada rentetan berformat JSON, kami juga boleh menukar rentetan berformat JSON kepada tatasusunan PHP, dan kemudian menukar tatasusunan PHP kepada Objek SimpleXMLElement, dan akhirnya dapatkan fail XML.

Berikut ialah contoh kod lengkap penukaran antara tatasusunan PHP dan XML:

$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;
Salin selepas log masuk

Jalankan kod di atas, hasil output ialah:

<?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>
Salin selepas log masuk
Salin selepas log masuk

Ringkasan

Di atas ialah kaedah menukar PHP kepada XML dan tatasusunan Ia sangat mudah dan praktikal. Sama ada dalam penghantaran data atau pemprosesan data bahagian hadapan atau belakang, kami boleh melakukan penukaran yang sepadan mengikut keperluan sebenar. Perlu diingat bahawa apabila menukar antara XML dan tatasusunan, beri perhatian kepada struktur dan format data untuk mengelakkan ralat yang tidak perlu.

Atas ialah kandungan terperinci Bagaimana untuk menukar php+xml dan tatasusunan antara satu sama lain. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!