>  기사  >  백엔드 개발  >  php+xml과 배열을 서로 변환하는 방법

php+xml과 배열을 서로 변환하는 방법

PHPz
PHPz원래의
2023-04-26 10:28:52532검색

웹 개발에서는 데이터를 저장하고 전송하는 데 XML 및 배열 형식이 자주 사용됩니다. XML은 데이터 설명 및 대화형 전송에 자주 사용되는 마크업 언어인 반면, 배열은 프로그램에서 데이터 처리 및 작업에 자주 사용되는 데이터 구조입니다. PHP 언어에서는 PHP를 XML과 배열로 변환할 수 있는데 이 변환은 매우 편리하고 빠릅니다.

이 기사에서는 XML에서 배열로, 배열에서 XML로의 변환 방법을 포함하여 PHP, XML 및 PHP의 배열 간의 상호 변환 방법을 주로 소개합니다.

1. PHP와 XML 간의 상호 변환

PHP에서는 SimpleXML 확장을 사용하여 PHP와 XML 간의 상호 변환을 실현할 수 있습니다. SimpleXML은 XML 파일의 데이터를 처리하기 위한 PHP 내장 확장입니다. XML 파일을 PHP 개체 또는 배열로 변환하고, PHP 개체 또는 배열을 XML 파일로 변환할 수도 있습니다.

  1. XML 파일을 PHP 배열로 변환

XML 파일을 PHP 배열로 변환하려면 SimpleXML 확장의 simplexml_load_file 함수를 사용해야 합니다. simplexml_load_file 함수는 지정된 경로에서 XML 파일을 읽고 SimpleXMLElement 객체를 반환한 후 SimpleXMLElement 객체를 순회하여 XML 파일의 정보를 PHP 배열로 변환할 수 있습니다.

다음은 XML 파일을 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);

위 코드를 실행하면 출력 결과는 다음과 같습니다.

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. PHP 배열을 XML 파일로 변환

PHP 배열 변환 XML 파일로 변환하려면 배열의 데이터를 XML 구문 규칙에 따라 구성해야 합니다. PHP에서는 SimpleXMLElement 클래스를 사용하여 XML 요소를 만들고 foreach 루프를 사용하여 배열의 데이터를 반복하고 XML 요소에 데이터를 하나씩 추가한 다음 마지막으로 XML 파일을 지정된 위치에 출력하거나 저장할 수 있습니다. SimpleXMLElement 객체의 asXML 메소드를 통해 위치를 확인합니다.

다음은 PHP 배열을 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;

위 코드를 실행하면 출력 결과는 다음과 같습니다.

<?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. PHP와 배열 간 변환

PHP에서는 json_encode를 사용할 수 있습니다. json_decode 함수는 PHP를 배열로 변환하는 데 사용됩니다. json_encode 함수는 PHP의 배열을 JSON 형식의 문자열로 변환하고 변환된 문자열을 반환합니다. json_decode 함수는 JSON 형식의 문자열을 PHP의 배열로 변환합니다.

  1. PHP 배열을 JSON 형식 문자열로 변환

PHP 배열을 JSON 형식 문자열로 변환하려면 json_encode 함수를 사용해야 합니다. json_encode 함수는 PHP의 배열을 JSON 형식의 문자열로 변환하고 JSON 문자열을 나타내는 값을 반환할 수 있습니다.

다음은 PHP 배열을 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;

위 코드를 실행하면 출력 결과는 다음과 같습니다.

[{"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. JSON 형식의 문자열을 PHP 배열로 변환

JSON 변환 형식이 지정된 문자열을 PHP 배열로 변환하려면 json_decode 함수를 사용해야 합니다. json_decode 함수는 JSON 형식의 문자열을 PHP 배열로 변환하고 PHP 배열을 나타내는 값을 반환할 수 있습니다.

다음은 JSON 형식 문자열을 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);

위 코드를 실행하면 출력 결과는 다음과 같습니다.

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 PHP와 XML 배열 간 변환

PHP에서는 SimpleXML 확장과 json_encode/json_decode 함수를 사용하여 PHP를 XML 및 배열로 변환할 수 있습니다. 구체적으로 먼저 XML 파일을 PHP 배열로 변환한 다음 PHP 배열을 JSON 형식 문자열로 변환할 수 있습니다. 마찬가지로 JSON 형식 문자열을 PHP 배열로 변환한 다음 PHP 배열을 다음으로 변환할 수 있습니다. SimpleXMLElement 객체를 만들고 마지막으로 XML 파일을 얻습니다.

다음은 PHP와 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;

위 코드를 실행하면 출력 결과는 다음과 같습니다.

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

Summary

위는 PHP를 XML과 배열로 변환하는 방법입니다. , 매우 간단하고 실용적입니다. 프런트엔드나 백엔드 데이터 전송이나 데이터 처리 여부에 관계없이 실제 필요에 따라 해당 변환을 수행할 수 있습니다. XML과 배열 간 변환 시 불필요한 오류를 방지하려면 데이터의 구조와 형식에 주의해야 합니다.

위 내용은 php+xml과 배열을 서로 변환하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.