将 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