init_input(); } private function init_input() { $pma_post = ["export_type" => "database", "export_method"=> "quick", "quick_or_custom"=> "quick", "what"=> "sql", "structure_or_data_forced"=> "0", "output_format"=> "sendit", "filename_template" =>"@DATABASE@", "charset"=> "utf-8","compression"=> "none", "codegen_structure_or_data"=> "data", "codegen_format"=> "0", "sql_include_comments"=> "something", "sql_compatibility"=> "NONE", "sql_structure_or_data"=> "structure_and_data", "sql_create_table"=> "something", "sql_auto_increment"=> "something", "sql_create_view"=> "something", "sql_procedure_function"=> "something", "sql_create_trigger"=> "something", "sql_backquotes"=> "something", "sql_type"=> "INSERT", "sql_insert_syntax"=> "both", "sql_max_query_size"=> "50000", "sql_hex_for_binary"=> "something", "sql_utc_time"=> "something"]; $_POST = array_merge($_POST,$pma_post); } public function export() { //revise phpmyadmin/export.php, this mha_export is a revised version of it. include 'mha_export.php'; global $dump_buffer; return $dump_buffer; } } class PhpMAExport { var $PMA = null; public function __construct($tables,$db,$username ,$password ) { $this->PMA = new PMA_stuff($tables,$db,$username ,$password); } private function optimize($dump_string){ /*\-\-.*\n ''*/ /*\n\n \n*/ ///**/ '' //$dump_string = preg_replace("~\n--.*\n~", "", $dump_string); $statements = explode(";\n", $dump_string); $res['create'] = []; $res['data'] =[]; $res['alter'] = []; foreach ($statements as $sql ) { //$sql = preg_replace("~\n~", "", $sql); // if( strpos($sql,'\n') ===0 || strpos($sql,'--') ===0 ){ // continue; // } // else if(strpos($sql,'INSERT') !== FALSE){ $res['data'][] = $sql; }elseif(strpos($sql,'CREATE') !== FALSE ){ /*CREATE TABLE */ //extract table name $pos1 = strpos($sql, '`'); $pos2 = strpos($sql, '`', $pos1 + 1); if(strpos($sql,'Database:')){ $pos1 = strpos($sql, '`',$pos2 + 1); $pos2 = strpos($sql, '`', $pos1+1); } //$res['create'][] = 'DROP TABLE IF EXISTS ' . substr($sql, 13,strpos($sql,'(')-13).'; ' ; $res['create'][] = 'DROP TABLE IF EXISTS ' . substr($sql, $pos1,$pos2-$pos1).'`; ' ; $res['create'][] = $sql; }elseif(strpos($sql, 'ALTER') !== FALSE){ $res['alter'][] = $sql; } } return $res; } function export(){ $dump_buffer = $this->PMA->export(); return $this->optimize($dump_buffer); } }