好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

php中实现xml与mysql数据相互转换代码 - php高级应用

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();          } //开源代码phpfensi测试数据                      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中实现xml与mysql数据相互转换代码 - php高级应用的详细内容...

  阅读:42次