将 PHP 多维数组转换为 XML 文件
createXML() 函数:
为了更好的可用性,所有数组到 XML 的转换代码都将组合在一个 PHP 函数中。
'createXML()' 函数将 PHP 多维数组转换为 XML 文件。
数据数组需要作为“createXML()”函数中的参数传递。
'createXML()' 函数使用 DOMDocument 类创建一个 XML 文档,并将 PHP 数组内容插入到这个 XML 文档中。
最后,将 XML 文档保存为指定文件路径中的 XML 文件。
function createXML($data) {
$title = $data['title'];
$rowCount = count($data['users']);
//create the xml document
$xmlDoc = new DOMDocument();
$root = $xmlDoc->appendChild($xmlDoc->createElement("user_info"));
$root->appendChild($xmlDoc->createElement("title",$title));
$root->appendChild($xmlDoc->createElement("totalRows",$rowCount));
$tabUsers = $root->appendChild($xmlDoc->createElement('rows'));
foreach($data['users'] as $user){
if(!empty($user)){
$tabUser = $tabUsers->appendChild($xmlDoc->createElement('user'));
foreach($user as $key=>$val){
$tabUser->appendChild($xmlDoc->createElement($key, $val));
}
}
}
header("Content-Type: text/plain");
//make the output pretty
$xmlDoc->formatOutput = true;
//save xml file
$file_name = str_replace(' ', '_',$title).'_'.time().'.xml';
$xmlDoc->save("files/" . $file_name);
//return xml file name
return $file_name;
}
将 XML 转换为 PHP 关联数组
现在我们将从文件中读取 XML 数据并使用 PHP 将 XML 转换为数组。
- 使用 PHP 中的 file_get_contents() 函数将整个文件读入字符串。
- 使用 PHP 中的 simplexml_load_string() 函数将 XML 字符串转换为对象。
- 使用 json_encode() 函数将对象转换为 JSON。
- 使用 json_decode() 函数将 JSON 数据转换为关联数组。
//xml file path $path = "files/path-to-document.xml"; //read entire file into string $xmlfile = file_get_contents($path); //convert xml string into an object $xml = simplexml_load_string($xmlfile); //convert into json $json = json_encode($xml); //convert into associative array $xmlArr = json_decode($json, true);
print_r($xmlArr);
将 XML 文件转换为以下关联数组示例代码。
Array
(
[title] => Users Information
[totalRows] => 3
[rows] => Array
(
[user] => Array
(
[0] => Array
(
[name] => John Doe
[email] => john@doe.com
)
[1] => Array
(
[name] => Merry Moe
[email] => merry@moe.com
)
[2] => Array
(
[name] => Hellary Riss
[email] => hellary@riss.com
)
)
)
)
PHP 多维数组保存为XML
以下多维数组将使用 PHP 保存为 XML 文件
$data = array(
'title' => 'Users Information',
'users' => array(
array('name' => 'John Doe', 'email' => 'john@doe.com'),
array('name' => 'Merry Moe', 'email' => 'merry@moe.com'),
array('name' => 'Hellary Riss', 'email' => 'hellary@riss.com')
)
);
PHP 数组到 XML 文件的转换
我们只需要使用“createXML()”函数并其中传递数据数组即可将数组转换为 PHP 中的 XML。
echo createXML($data);
示例代码将创建以下 XML 文档。
<?xml version="1.0"?>
<user_info>
<title>Users Information</title>
<totalRows>3</totalRows>
<rows>
<user>
<name>John Doe</name>
<email>john@doe.com</email>
</user>
<user>
<name>Merry Moe</name>
<email>merry@moe.com</email>
</user>
<user>
<name>Hellary Riss</name>
<email>hellary@riss.com</email>
</user>
</rows>
</user_info>
XML(可扩展标记语言)是一种标记语言,它以机器可读和人类可读的格式对文档进行编码。
通常,XML 用于存储和传输数据。
我们可以在 Web 应用程序中以多种方式使用 XML。
如果我们担心数据库大小并希望减少数据库使用,XML 可以从数据库中释放空间。
我们可以将数据存储在 XML 文件中并从 XML 文件中检索数据而不是数据库,而无需连接到数据库。
在本教程中,我们将向我们展示如何将 PHP 关联或者多维数组转换为 XML 并存储在 XML 文件中。
此外,示例代码显示了如何在 PHP 中解析 XML 文件并将 XML 数据转换为数组。
日期:2020-06-02 22:15:26 来源:oir作者:oir
