⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 export.php

📁 phpMyAdmin图形界面化操作,我已经配置好了,只要把解要压缩后的文件放到站点下就可以用了
💻 PHP
📖 第 1 页 / 共 2 页
字号:
<?php/* vim: set expandtab sw=4 ts=4 sts=4: *//** * @todo    too much die here, or? * @version $Id: export.php 11626 2008-10-01 20:48:40Z lem9 $ *//** * Get the variables sent or posted to this script and a core script */require_once './libraries/common.inc.php';require_once './libraries/zip.lib.php';require_once './libraries/plugin_interface.lib.php';PMA_checkParameters(array('what', 'export_type'));// Scan plugins$export_list = PMA_getPlugins('./libraries/export/', array('export_type' => $export_type, 'single_table' => isset($single_table)));// Backward compatbility$type = $what;// Check export typeif (!isset($export_list[$type])) {    die('Bad type!');}/** * valid compression methods */$compression_methods = array(    'zip',    'gzip',    'bzip',);/** * init and variable checking */$compression = false;$onserver = false;$save_on_server = false;$buffer_needed = false;if (empty($_REQUEST['asfile'])) {    $asfile = false;} else {    $asfile = true;    if (in_array($_REQUEST['compression'], $compression_methods)) {        $compression = $_REQUEST['compression'];        $buffer_needed = true;    }    if (!empty($_REQUEST['onserver'])) {        $onserver = $_REQUEST['onserver'];        // Will we save dump on server?        $save_on_server = ! empty($cfg['SaveDir']) && $onserver;    }}// Does export require to be into file?if (isset($export_list[$type]['force_file']) && ! $asfile) {    $message = PMA_Message::error('strExportMustBeFile');    $GLOBALS['js_include'][] = 'functions.js';    require_once './libraries/header.inc.php';    if ($export_type == 'server') {        $active_page = 'server_export.php';        require './server_export.php';    } elseif ($export_type == 'database') {        $active_page = 'db_export.php';        require './db_export.php';    } else {        $active_page = 'tbl_export.php';        require './tbl_export.php';    }    exit();}// Generate error url and check for needed variablesif ($export_type == 'server') {    $err_url = 'server_export.php?' . PMA_generate_common_url();} elseif ($export_type == 'database' && strlen($db)) {    $err_url = 'db_export.php?' . PMA_generate_common_url($db);    // Check if we have something to export    if (isset($table_select)) {        $tables = $table_select;    } else {        $tables = array();    }} elseif ($export_type == 'table' && strlen($db) && strlen($table)) {    $err_url = 'tbl_export.php?' . PMA_generate_common_url($db, $table);} else {    die('Bad parameters!');}// Get the functions specific to the export typerequire './libraries/export/' . PMA_securePath($type) . '.php';/** * Increase time limit for script execution and initializes some variables */@set_time_limit($cfg['ExecTimeLimit']);if (!empty($cfg['MemoryLimit'])) {    @ini_set('memory_limit', $cfg['MemoryLimit']);}// Start with empty buffer$dump_buffer = '';$dump_buffer_len = 0;// We send fake headers to avoid browser timeout when buffering$time_start = time();/** * Output handler for all exports, if needed buffering, it stores data into * $dump_buffer, otherwise it prints thems out. * * @param   string  the insert statement * * @return  bool    Whether output suceeded */function PMA_exportOutputHandler($line){    global $time_start, $dump_buffer, $dump_buffer_len, $save_filename;    // Kanji encoding convert feature    if ($GLOBALS['output_kanji_conversion']) {        $line = PMA_kanji_str_conv($line, $GLOBALS['knjenc'], isset($GLOBALS['xkana']) ? $GLOBALS['xkana'] : '');    }    // If we have to buffer data, we will perform everything at once at the end    if ($GLOBALS['buffer_needed']) {        $dump_buffer .= $line;        if ($GLOBALS['onfly_compression']) {            $dump_buffer_len += strlen($line);            if ($dump_buffer_len > $GLOBALS['memory_limit']) {                if ($GLOBALS['output_charset_conversion']) {                    $dump_buffer = PMA_convert_string($GLOBALS['charset'], $GLOBALS['charset_of_file'], $dump_buffer);                }                // as bzipped                if ($GLOBALS['compression'] == 'bzip'  && @function_exists('bzcompress')) {                    $dump_buffer = bzcompress($dump_buffer);                }                // as a gzipped file                elseif ($GLOBALS['compression'] == 'gzip' && @function_exists('gzencode')) {                    // without the optional parameter level because it bug                    $dump_buffer = gzencode($dump_buffer);                }                if ($GLOBALS['save_on_server']) {                    $write_result = @fwrite($GLOBALS['file_handle'], $dump_buffer);                    if (!$write_result || ($write_result != strlen($dump_buffer))) {                        $GLOBALS['message'] = PMA_Message::error('strNoSpace');                        $GLOBALS['message']->addParam($save_filename);                        return false;                    }                } else {                    echo $dump_buffer;                }                $dump_buffer = '';                $dump_buffer_len = 0;            }        } else {            $time_now = time();            if ($time_start >= $time_now + 30) {                $time_start = $time_now;                header('X-pmaPing: Pong');            } // end if        }    } else {        if ($GLOBALS['asfile']) {            if ($GLOBALS['output_charset_conversion']) {                $line = PMA_convert_string($GLOBALS['charset'], $GLOBALS['charset_of_file'], $line);            }            if ($GLOBALS['save_on_server'] && strlen($line) > 0) {                $write_result = @fwrite($GLOBALS['file_handle'], $line);                if (!$write_result || ($write_result != strlen($line))) {                    $GLOBALS['message'] = PMA_Message::error('strNoSpace');                    $GLOBALS['message']->addParam($save_filename);                    return false;                }                $time_now = time();                if ($time_start >= $time_now + 30) {                    $time_start = $time_now;                    header('X-pmaPing: Pong');                } // end if            } else {                // We export as file - output normally                echo $line;            }        } else {            // We export as html - replace special chars            echo htmlspecialchars($line);        }    }    return true;} // end of the 'PMA_exportOutputHandler()' function// Defines the default <CR><LF> format. For SQL always use \n as MySQL wants this on all platforms.if ($what == 'sql') {    $crlf = "\n";} else {    $crlf = PMA_whichCrlf();}$output_kanji_conversion = function_exists('PMA_kanji_str_conv') && $type != 'xls';// Do we need to convert charset?$output_charset_conversion = $asfile && $cfg['AllowAnywhereRecoding']    && isset($charset_of_file) && $charset_of_file != $charset    && $type != 'xls';// Use on the fly compression?$onfly_compression = $GLOBALS['cfg']['CompressOnFly'] && ($compression == 'gzip' || $compression == 'bzip');if ($onfly_compression) {    $memory_limit = trim(@ini_get('memory_limit'));    // 2 MB as default    if (empty($memory_limit)) {        $memory_limit = 2 * 1024 * 1024;    }    if (strtolower(substr($memory_limit, -1)) == 'm') {        $memory_limit = (int)substr($memory_limit, 0, -1) * 1024 * 1024;    } elseif (strtolower(substr($memory_limit, -1)) == 'k') {        $memory_limit = (int)substr($memory_limit, 0, -1) * 1024;    } elseif (strtolower(substr($memory_limit, -1)) == 'g') {        $memory_limit = (int)substr($memory_limit, 0, -1) * 1024 * 1024 * 1024;    } else {        $memory_limit = (int)$memory_limit;    }    // Some of memory is needed for other thins and as treshold.    // Nijel: During export I had allocated (see memory_get_usage function)    //        approx 1.2MB so this comes from that.    if ($memory_limit > 1500000) {        $memory_limit -= 1500000;    }    // Some memory is needed for compression, assume 1/3    $memory_limit /= 8;}// Generate filename and mime type if neededif ($asfile) {    $pma_uri_parts = parse_url($cfg['PmaAbsoluteUri']);    if ($export_type == 'server') {        if (isset($remember_template)) {            PMA_setCookie('pma_server_filename_template', $filename_template);        }        $filename = str_replace('__SERVER__', $GLOBALS['cfg']['Server']['host'], strftime($filename_template));    } elseif ($export_type == 'database') {        if (isset($remember_template)) {            PMA_setCookie('pma_db_filename_template', $filename_template);        }        $filename = str_replace('__DB__', $db, str_replace('__SERVER__', $GLOBALS['cfg']['Server']['host'], strftime($filename_template)));    } else {        if (isset($remember_template)) {            PMA_setCookie('pma_table_filename_template', $filename_template);        }        $filename = str_replace('__TABLE__', $table, str_replace('__DB__', $db, str_replace('__SERVER__', $GLOBALS['cfg']['Server']['host'], strftime($filename_template))));    }    // convert filename to iso-8859-1, it is safer    if (!(isset($cfg['AllowAnywhereRecoding']) && $cfg['AllowAnywhereRecoding'] )) {        $filename = PMA_convert_string($charset, 'iso-8859-1', $filename);    } else {        $filename = PMA_convert_string($convcharset, 'iso-8859-1', $filename);    }    // Grab basic dump extension and mime type    $filename  .= '.' . $export_list[$type]['extension'];    $mime_type  = $export_list[$type]['mime_type'];    // If dump is going to be compressed, set correct encoding or mime_type and add    // compression to extension    $content_encoding = '';    if ($compression == 'bzip') {        $filename  .= '.bz2';        // browsers don't like this:        //$content_encoding = 'x-bzip2';        $mime_type = 'application/x-bzip2';    } elseif ($compression == 'gzip') {        $filename  .= '.gz';        // Needed to avoid recompression by server modules like mod_gzip.        // It seems necessary to check about zlib.output_compression        // to avoid compressing twice        if (!@ini_get('zlib.output_compression')) {            // On Firefox 3, sending this content encoding corrupts the .gz            // (as tested on Windows and Linux) but detect GECKO 1.9            if (! (PMA_USR_BROWSER_AGENT == 'GECKO' && PMA_USR_BROWSER_VER == '1.9')) {                $content_encoding = 'x-gzip';            }            $mime_type = 'application/x-gzip';        }    } elseif ($compression == 'zip') {        $filename  .= '.zip';        $mime_type = 'application/zip';    }}// Open file on server if neededif ($save_on_server) {    $save_filename = PMA_userDir($cfg['SaveDir']) . preg_replace('@[/\\\\]@', '_', $filename);    unset($message);    if (file_exists($save_filename) && empty($onserverover)) {        $message = PMA_Message::error('strFileAlreadyExists');        $message->addParam($save_filename);    } else {        if (is_file($save_filename) && !is_writable($save_filename)) {            $message = PMA_Message::error('strNoPermission');            $message->addParam($save_filename);        } else {            if (!$file_handle = @fopen($save_filename, 'w')) {                $message = PMA_Message::error('strNoPermission');                $message->addParam($save_filename);            }        }    }    if (isset($message)) {        $GLOBALS['js_include'][] = 'functions.js';        require_once './libraries/header.inc.php';        if ($export_type == 'server') {            $active_page = 'server_export.php';            require './server_export.php';        } elseif ($export_type == 'database') {            $active_page = 'db_export.php';            require './db_export.php';        } else {            $active_page = 'tbl_export.php';            require './tbl_export.php';        }        exit();    }}/** * Send headers depending on whether the user chose to download a dump file * or not */

⌨️ 快捷键说明

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