reverse_engineer_xml_schema.php

来自「视频监控网络部分的协议ddns,的模块的实现代码,请大家大胆指正.」· PHP 代码 · 共 197 行

PHP
197
字号
<?php// +----------------------------------------------------------------------+// | PHP Version 4                                                        |// +----------------------------------------------------------------------+// | Copyright (c) 1998-2004 Manuel Lemos, Tomas V.V.Cox,                 |// | Stig. S. Bakken, Lukas Smith                                         |// | All rights reserved.                                                 |// +----------------------------------------------------------------------+// | MDB is a merge of PEAR DB and Metabases that provides a unified DB   |// | API as well as database abstraction for PHP applications.            |// | This LICENSE is in the BSD license style.                            |// |                                                                      |// | Redistribution and use in source and binary forms, with or without   |// | modification, are permitted provided that the following conditions   |// | are met:                                                             |// |                                                                      |// | Redistributions of source code must retain the above copyright       |// | notice, this list of conditions and the following disclaimer.        |// |                                                                      |// | Redistributions in binary form must reproduce the above copyright    |// | notice, this list of conditions and the following disclaimer in the  |// | documentation and/or other materials provided with the distribution. |// |                                                                      |// | Neither the name of Manuel Lemos, Tomas V.V.Cox, Stig. S. Bakken,    |// | Lukas Smith nor the names of his contributors may be used to endorse |// | or promote products derived from this software without specific prior|// | written permission.                                                  |// |                                                                      |// | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS  |// | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT    |// | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS    |// | FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE      |// | REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,          |// | INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, |// | BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS|// |  OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED  |// | AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT          |// | LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY|// | WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE          |// | POSSIBILITY OF SUCH DAMAGE.                                          |// +----------------------------------------------------------------------+// | Author: Lukas Smith <smith@backendmedia.com>                         |// +----------------------------------------------------------------------+//// $Id: reverse_engineer_xml_schema.php,v 1.17.4.3 2004/03/10 14:43:28 lsmith Exp $///** * MDB reverse engineering of xml schemas script. * * @package MDB * @category Database * @author  Lukas Smith <smith@backendmedia.com> */echo ('<html><body>');    if(isset($_REQUEST['submit']) && $_REQUEST['file'] != '') {        // BC hack to define PATH_SEPARATOR for version of PHP prior 4.3        if(!defined('PATH_SEPARATOR')) {            if(defined('DIRECTORY_SEPARATOR') && DIRECTORY_SEPARATOR == "\\") {                define('PATH_SEPARATOR', ';');            } else {                define('PATH_SEPARATOR', ':');            }        }        ini_set('include_path', '..'.PATH_SEPARATOR.ini_get('include_path'));        require_once('MDB.php');        @include_once('Var_Dump.php');        MDB::loadFile('Manager');        $dsn = $_REQUEST['type'].'://'.$_REQUEST['user'].':'.$_REQUEST['pass'].'@'.$_REQUEST['host'].'/'.$_REQUEST['name'];        $manager =& new MDB_Manager;        $err = $manager->connect($dsn);        if(MDB::isError($err)) {            $error = $err->getMessage();        } else {            $manager->captureDebugOutput(TRUE);            $manager->database->setOption('log_line_break', '<br>');            if($_REQUEST['action']) {                set_time_limit(0);            }            if($_REQUEST['action'] == 'dump') {                switch ($_REQUEST['dump']) {                    case 'structure':                        $dump_what = MDB_MANAGER_DUMP_STRUCTURE;                        break;                    case 'content':                        $dump_what = MDB_MANAGER_DUMP_CONTENT;                        break;                    default:                        $dump_what = MDB_MANAGER_DUMP_ALL;                        break;                }                $dump_config = array(                    'Output_Mode' => 'file',                    'Output' => $_REQUEST['file']                );                if (class_exists('Var_Dump')) {                    Var_Dump::display($manager->dumpDatabase($dump_config, $dump_what));                } else {                    var_dump($manager->dumpDatabase($dump_config, $dump_what));                }            } else if($_REQUEST['action'] == 'create') {                if (class_exists('Var_Dump')) {                    Var_Dump::display($manager->updateDatabase($_REQUEST['file']));                } else {                    var_dump($manager->updateDatabase($_REQUEST['file']));                }            } else {                $error = 'no action selected';            }            $warnings = $manager->getWarnings();            if(count($warnings) > 0) {                echo('Warnings<br>');                if (class_exists('Var_Dump')) {                    Var_Dump::display($warnings);                } else {                    var_dump($warnings);                }            }            if($manager->options['debug']) {                echo('Debug messages<br>');                echo($manager->debugOutput().'<br>');            }            echo('Database structure<br>');            if (class_exists('Var_Dump')) {                Var_Dump::display($manager->database_definition);            } else {                var_dump($manager->database_definition);            }            $manager->disconnect();        }    }        if (!isset($_REQUEST['submit']) || isset($error)) {        if (isset($error) && $error) {            echo($error.'<br>');        }        echo ('            <form action="reverse_engineer_xml_schema.php">            Database Type:            <select name="type">                <option value="mysql"');                if(isset($_REQUEST['type']) && $_REQUEST['type'] == 'mysql') {echo ('selected');}                echo ('>MySQL</option>                <option value="pgsql"');                if(isset($_REQUEST['type']) && $_REQUEST['type'] == 'mysql') {echo ('selected');}                echo ('>Postgres</option>            </select>            <br />            Username:            <input type="text" name="user" value="'.(isset($_REQUEST['user']) ? $_REQUEST['user'] : '').'" />            <br />            Password:            <input type="text" name="pass" value="'.(isset($_REQUEST['pass']) ? $_REQUEST['pass'] : '').'" />            <br />            Host:            <input type="text" name="host" value="'.(isset($_REQUEST['host']) ? $_REQUEST['host'] : '').'" />            <br />            Databasename:            <input type="text" name="name" value="'.(isset($_REQUEST['name']) ? $_REQUEST['name'] : '').'" />            <br />            Filename:            <input type="text" name="file" value="'.(isset($_REQUEST['file']) ? $_REQUEST['file'] : '').'" />            <br />            Dump:            <input type="radio" name="action" value="dump" />            <select name="dump">                <option value="all"');                if(!isset($_REQUEST['dump']) || $_REQUEST['dump'] == 'all') {echo ('selected');}                echo ('>All</option>                <option value="structure"');                if(isset($_REQUEST['dump']) && $_REQUEST['dump'] == 'structure') {echo ('selected');}                echo ('>Structure</option>                <option value="content"');                if(isset($_REQUEST['dump']) && $_REQUEST['dump'] == 'content') {echo ('selected');}                echo ('>Content</option>            </select>            <br />            Create:            <input type="radio" name="action" value="create" />            <br />            <input type="submit" name="submit" value="ok" />        ');    }    echo ('</form></body></html>    ');?>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?