php中实现xml与mysql数据相互转换的方法
发布时间:2020-12-13 02:17:54 所属栏目:PHP教程 来源:网络整理
导读:《:php中实现xml与mysql数据相互转换的方法》要点: 本文介绍了:php中实现xml与mysql数据相互转换的方法,希望对您有用。如果有疑问,可以联系我们。 PHP编程 本篇章节讲解php中实现xml与mysql数据相互转换的办法.供大家参考研究.具体分析如下: P
《:php中实现xml与mysql数据相互转换的方法》要点: PHP编程本篇章节讲解php中实现xml与mysql数据相互转换的办法.分享给大家供大家参考.具体分析如下: PHP编程这里提供了一个mysql2xml转换类,可以快速的把xml转换成mysql同时反之也可以把mysql转换成xml,下面看代码. PHP编程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程序设计有所帮助. 《:php中实现xml与mysql数据相互转换的方法》是否对您有启发,欢迎查看更多与《:php中实现xml与mysql数据相互转换的方法》相关教程,学精学透。编程之家 52php.cn为您提供精彩教程。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |