ホームページ >バックエンド開発 >PHPチュートリアル >phpでxmlとmysqlデータの相互変換を実現する方法、xmlmysql_PHPチュートリアル

phpでxmlとmysqlデータの相互変換を実現する方法、xmlmysql_PHPチュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:10:55789ブラウズ

php、xmlmysqlでxmlとmysqlデータを相互に変換する方法

この記事の例では、PHP で XML と MySQL データを変換する方法を説明します。参考のためにみんなで共有してください。具体的な分析は次のとおりです:

ここでは、xml を mysql に、またはその逆にすばやく変換できる mysql2xml 変換クラスが提供されています。

を参照してください。

mysql2xml.php クラス ファイル。MySQL データのバックアップに使用されます。コードは次のとおりです。

コードをコピーします コードは次のとおりです:
クラス MySQL2XML {
        保護された $conn;
        保護された$result;
        保護された $tables;
        protected $saveFolder = 'datas/';
        
        パブリック関数 __construct($config = NULL) {
                if($config !== NULL && is_array($config)) {
                        $this->connect($config);
                }
        }
        
        パブリック関数 connect($config) {
                $this->conn = mysql_connect($config['host'], $config['username'], $config['password']);
                if($this->conn) {
                        mysql_select_db($config['database']);
                        true を返します。
                }
                false を返します。
        }
        
        パブリック関数 setSaveFolder($folder) {
                if(is_dir($folder)) {
                        $this->saveFolder = rtrim(str_replace("", "/", $folder),'/');
                        true を返します。
                }
                false を返します。
        }
        
        パブリック関数 setTables($tables) {
                if(is_array($tables)) {
                        $this->tables = $tables;
                        true を返します。
                }
                false を返します。
        }
        
        パブリック関数クエリ($query) {
                if(!isset($query) || トリム($query) == '') false を返します。
                $this->result = mysql_query($query);
                if($this->result) は true を返します。
                false を返します。
        }
        
        パブリック関数 toXML() {
                if(!isset($this->tables)) は false を返します。
                foreach($this->tables as $table) {
                        $file = $this->saveFolder.$table.'.xml';
                        $fp = @fopen($file, 'w');
                        if(!$fp) exit('ファイルに書き込めません');
                        fwrite($fp, $this->tableToXML($table));
                        fclose($fp);
                        設定を解除($fp);
                }
                true を返します。
        }
        
        パブリック関数 tableToXML($table) {
                header("コンテンツタイプ:text/xml;charset=utf-8");
                $xml = "nn";
                $fields = $this->getFields($table);
                $datas = $this->getDatas($table);
                $cdata = 配列();
                foreach($datas as $data) {
                        foreach($data as $key => $value)
                                $cdata[$key][] = $value;
                }
                foreach($fields as $element) {
                        $xml .= "tn";
                        foreach($cdata[$element['Field']] as $value) {
                                $xml .= "tt{$value}n";
                        }
                        $xml .= "t
n";
                }
                $xml .= '
';
                $xml を返します。
        }
        
        保護された関数 getFields($table) {
                $query = "{$table} からフィールドを表示";
                $this->クエリ($クエリ);
                $this->fetchAll(); を返す
        }
        
        保護された関数 getDatas($table) {
                $query = "SELECT * FROM {$table}";
                $this->クエリ($クエリ);
                $this->fetchAll(); を返す
        }
        
        保護された関数 fetch() {
                if(is_resource($this->result)) {
                        return mysql_fetch_assoc($this->result);
                }
                false を返します。
        }
        
        保護された関数 fetchAll() {
                if(is_resource($this->result)) {
                        $return = 配列();
                        $行 = NULL;
                        while($row = mysql_fetch_assoc($this->result)) {
                                $return[] = $row;
                        }
                        $return を返す;
                }
                false を返します。
        }
}
?>

使用方法、代償如下:
复制代码代码如下:
$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 プログラムの設計が役立つことを望みます。

http://www.bkjia.com/PHPjc/932476.htmlwww.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/932476.html技術記事 php で xml と mysql データを相互に変換する方法、xmlmysql の本文の例では、php で xml と mysql データを相互に変換する方法を説明しています。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。