本文实例讲述了php中实现xml与mysql数据相互转换的方法。分享给大家供大家参考。具体分析如下:
这里提供了一个mysql2xml转换类,可以快速的把xml转换成mysql同时反之也可以把mysql转换成xml,下面看代码.
mysql2xml.php类文件,用于备份MySQL数据的,代码如下:
<?php class MySQL2XML { protected $conn; protected $result; protected $tables; protected $saveFolder = 'datas/'; public function __construct($config = NULL) { if($config !== NULL && is_array($config)) { $this->connect($config); } } public function connect($config) { $this->conn = mysql_connect($config['host'], $config['username'], $config['password']); if($this->conn) { mysql_select_db($config['database']); return true; } return false; } public function setSaveFolder($folder) { if(is_dir($folder)) { $this->saveFolder = rtrim(str_replace("\", "/", $folder),'/'); return true; } return false; } public function setTables($tables) { if(is_array($tables)) { $this->tables = $tables; return true; } return false; } public function query($query) { if(!isset($query) || trim($query) == '') return false; $this->result = mysql_query($query); if($this->result) return true; return false; } public function toXML() { if(!isset($this->tables)) return false; foreach($this->tables as $table) { $file = $this->saveFolder.$table.'.xml'; $fp = @fopen($file, 'w'); if(!$fp) exit('Can not write file'); fwrite($fp, $this->tableToXML($table)); fclose($fp); unset($fp); } return true; } public function tableToXML($table) { header("content-type:text/xml;charset=utf-8"); $xml = "<?xml version="1.0" encoding="utf-8" ?>n<datas>n"; $fields = $this->getFields($table); $datas = $this->getDatas($table); $cdata = array(); foreach($datas as $data) { foreach($data as $key => $value) $cdata[$key][] = $value; } foreach($fields as $element) { $xml .= "t<fields name="{$element['Field']}" type="{$element['Type']}" null="{$element['Null']}" key="{$element['Key']}" default="{$element['Default']}" extra="{$element['Extra']}">n"; foreach($cdata[$element['Field']] as $value) { $xml .= "tt<data>{$value}</data>n"; } $xml .= "t</fields>n"; } $xml .= '</datas>'; return $xml; } protected function getFields($table) { $query = "SHOW FIELDS FROM {$table}"; $this->query($query); return $this->fetchAll(); } protected function getDatas($table) { $query = "SELECT * FROM {$table}"; $this->query($query); return $this->fetchAll(); } protected function fetch() { if(is_resource($this->result)) { return mysql_fetch_assoc($this->result); } return false; } protected function fetchAll() { if(is_resource($this->result)) { $return = array(); $row = NULL; while($row = mysql_fetch_assoc($this->result)) { $return[] = $row; } return $return; } return false; } } ?>
<?php $xml = new MySQL2XML(array('host'=>'localhost', 'username'=>'root', 'password'=>'', 'database'=>'mysql')); $xml->setTables(array('wp_term_relationships','wp_terms'));//设置备份的表 $xml->setSaveFolder('datas/');//保存备份文件的文件夹 $xml->toXML();//备份开始 ?>
希望本文所述对大家的php程序设计有所帮助。
本文向大家介绍php实现xml与json之间的相互转换功能实例,包括了php实现xml与json之间的相互转换功能实例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了php实现xml与json之间的相互转换功能。分享给大家供大家参考,具体如下: 用php实现xml与json之间的相互转换: 相关函数请查看php手册。 一、参考xml如下 二、xml转换成json 利用simplexml 三
本文向大家介绍php变量与数组相互转换的方法(extract与compact),包括了php变量与数组相互转换的方法(extract与compact)的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了php变量与数组相互转换的方法。分享给大家供大家参考,具体如下: 在php中数组与变量相互转换我们可使用到extract或compact函数,这里就来给大家分析一下这两个函数的用法。 compa
本文向大家介绍Python 16进制与中文相互转换的实现方法,包括了Python 16进制与中文相互转换的实现方法的使用技巧和注意事项,需要的朋友参考一下 Python中编码问题:u'\xe6\x97\xa0\xe5\x90\x8d' 类型的转为utf-8的解决办法 相信小伙伴们遇到过类似这样的问题,python2中各种头疼的转码,类似u'\xe6\x97\xa0\xe5\x90\x8d' 的编码
本文向大家介绍PHP实现的数组和XML文件相互转换功能示例,包括了PHP实现的数组和XML文件相互转换功能示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了PHP实现的数组和XML文件相互转换功能。分享给大家供大家参考,具体如下: 最近搞微信支付,微信服务器返回的都是XML文件,所以需要转换成数组,才会便于操作,好了话不多说,直接上代码: 1. XML转数组 用法示例: 运行结果: 2.
本文向大家介绍C#中使用JSON.NET实现JSON、XML相互转换,包括了C#中使用JSON.NET实现JSON、XML相互转换的使用技巧和注意事项,需要的朋友参考一下 官方 JSON.NET 地址 http://james.newtonking.com/pages/json-net.aspx XML TO JSON JSON TO XML DEMO:JSON TO XML
本文向大家介绍Java实现String与StringBuilder相互转换,包括了Java实现String与StringBuilder相互转换的使用技巧和注意事项,需要的朋友参考一下 String类型是Java中的一个类,它用来表示一组字符。 Java中的字符串是不可变的,一旦创建,就不能更改字符串的值。 由于字符串是不可变的,因此如果您尝试重新分配字符串的值。它的引用将指向新的String对象,