Thread: [adminer-svn] SF.net SVN: adminer:[1063] branches/binary_compile
Database management in a single PHP file
Brought to you by:
jakubvrana
From: <jak...@us...> - 2009-09-03 10:46:58
|
Revision: 1063 http://adminer.svn.sourceforge.net/adminer/?rev=1063&view=rev Author: jakubvrana Date: 2009-09-03 10:46:50 +0000 (Thu, 03 Sep 2009) Log Message: ----------- Remove base64 encoding of binary files Modified Paths: -------------- branches/binary_compile/adminer/include/bootstrap.inc.php branches/binary_compile/compile.php Modified: branches/binary_compile/adminer/include/bootstrap.inc.php =================================================================== --- branches/binary_compile/adminer/include/bootstrap.inc.php 2009-09-03 10:40:34 UTC (rev 1062) +++ branches/binary_compile/adminer/include/bootstrap.inc.php 2009-09-03 10:46:50 UTC (rev 1063) @@ -19,7 +19,7 @@ header("Expires: " . gmdate("D, d M Y H:i:s", time() + 365*24*60*60) . " GMT"); if ($_GET["file"] == "favicon.ico") { header("Content-Type: image/x-icon"); - echo base64_decode("compile_file('../adminer/favicon.ico', 'base64_encode');"); + ?>compile_file('../adminer/favicon.ico');<? } elseif ($_GET["file"] == "default.css") { header("Content-Type: text/css"); ?>compile_file('../adminer/default.css', 'minify_css');<?php @@ -29,11 +29,11 @@ } else { header("Content-Type: image/gif"); switch ($_GET["file"]) { - case "plus.gif": echo base64_decode("compile_file('../adminer/plus.gif', 'base64_encode');"); break; - case "cross.gif": echo base64_decode("compile_file('../adminer/cross.gif', 'base64_encode');"); break; - case "up.gif": echo base64_decode("compile_file('../adminer/up.gif', 'base64_encode');"); break; - case "down.gif": echo base64_decode("compile_file('../adminer/down.gif', 'base64_encode');"); break; - case "arrow.gif": echo base64_decode("compile_file('../adminer/arrow.gif', 'base64_encode');"); break; + case "plus.gif": ?>compile_file('../adminer/plus.gif');<? break; + case "cross.gif": ?>compile_file('../adminer/cross.gif');<? break; + case "up.gif": ?>compile_file('../adminer/up.gif');<? break; + case "down.gif": ?>compile_file('../adminer/down.gif');<? break; + case "arrow.gif": ?>compile_file('../adminer/arrow.gif');<? break; } } exit; Modified: branches/binary_compile/compile.php =================================================================== --- branches/binary_compile/compile.php 2009-09-03 10:40:34 UTC (rev 1062) +++ branches/binary_compile/compile.php 2009-09-03 10:46:50 UTC (rev 1063) @@ -196,7 +196,8 @@ function compile_file($match) { global $project; - return call_user_func($match[2], file_get_contents(dirname(__FILE__) . "/$project/$match[1]")); + $return = file_get_contents(dirname(__FILE__) . "/$project/$match[1]"); + return ($match[2] ? call_user_func($match[2], $return) : $return); } $project = "adminer"; @@ -227,7 +228,7 @@ $file = str_replace('<?php echo $LANG; ?>', $_COOKIE["adminer_lang"], $file); } $file = str_replace('<script type="text/javascript" src="editing.js"></script>' . "\n", "", $file); -$file = preg_replace_callback("~compile_file\\('([^']+)', '([^']+)'\\);~", 'compile_file', $file); // integrate static files +$file = preg_replace_callback("~compile_file\\('([^']+)'(?:, '([^']+)')?\\);~", 'compile_file', $file); // integrate static files $replace = 'h(preg_replace("~\\\\\\\\?.*~", "", $_SERVER["REQUEST_URI"])) . "?file=\\1&version=' . $VERSION; $file = preg_replace('~\\.\\./adminer/(default\\.css|functions\\.js|favicon\\.ico)~', '<?php echo ' . $replace . '"; ?>', $file); $file = preg_replace('~\\.\\./adminer/((plus|cross|up|down|arrow)\\.gif)~', '" . ' . $replace, $file); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jak...@us...> - 2009-09-03 10:52:50
|
Revision: 1064 http://adminer.svn.sourceforge.net/adminer/?rev=1064&view=rev Author: jakubvrana Date: 2009-09-03 10:52:43 +0000 (Thu, 03 Sep 2009) Log Message: ----------- Use \x7F-\XFF in variables Modified Paths: -------------- branches/binary_compile/compile.php branches/binary_compile/todo.txt Modified: branches/binary_compile/compile.php =================================================================== --- branches/binary_compile/compile.php 2009-09-03 10:46:50 UTC (rev 1063) +++ branches/binary_compile/compile.php 2009-09-03 10:52:43 UTC (rev 1064) @@ -132,7 +132,7 @@ arsort($short_variables); foreach (array_keys($short_variables) as $number => $key) { - $short_variables[$key] = short_identifier($number, implode("", range('a', 'z')) . '_' . implode("", range('A', 'Z'))); // could use also numbers and \x7f-\xff + $short_variables[$key] = short_identifier($number, implode("", range('a', 'z')) . '_' . implode("", range('A', 'Z')) . implode("", range("\x7F", "\xFF"))); // could use also numbers } $set = array_flip(preg_split('//', '!"#$&\'()*+,-./:;<=>?@[\]^`{|}')); Modified: branches/binary_compile/todo.txt =================================================================== --- branches/binary_compile/todo.txt 2009-09-03 10:46:50 UTC (rev 1063) +++ branches/binary_compile/todo.txt 2009-09-03 10:52:43 UTC (rev 1064) @@ -11,7 +11,7 @@ Offer enum and set items in search - whisperer Use event $intervals + microseconds in relative date functions ? Column and table names auto-completition in SQL textarea -? Aliasing of built-in functions can save 7 KB, function minification can save 7 KB, substitution of repetitive $a["a"] can save 4 KB, substitution of $_GET and friends can save 2 KB, remove of base64_decode() + using chars 127-255 in minification can save 1 KB, JS packer can save 1 KB, not enclosing HTML attribute values can save 1.2 KB +? Aliasing of built-in functions can save 7 KB, function minification can save 7 KB, substitution of repetitive $a["a"] can save 4 KB, substitution of $_GET and friends can save 2 KB, JS packer can save 1 KB, not enclosing HTML attribute values can save 1.2 KB ? AJAX editing - select page has all data to display edit form Editor: This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jak...@us...> - 2009-09-03 12:11:31
|
Revision: 1067 http://adminer.svn.sourceforge.net/adminer/?rev=1067&view=rev Author: jakubvrana Date: 2009-09-03 12:11:19 +0000 (Thu, 03 Sep 2009) Log Message: ----------- Join LZW functions Modified Paths: -------------- branches/binary_compile/adminer/include/lang.inc.php branches/binary_compile/compile.php Modified: branches/binary_compile/adminer/include/lang.inc.php =================================================================== --- branches/binary_compile/adminer/include/lang.inc.php 2009-09-03 11:42:27 UTC (rev 1066) +++ branches/binary_compile/adminer/include/lang.inc.php 2009-09-03 12:11:19 UTC (rev 1067) @@ -16,10 +16,11 @@ 'zh-tw' => '繁體中文', // http://tzangms.com ); -function lzw_codes($binary) { +function lzw_decompress($binary) { + // convert binary string to codes $dictionary_count = 256; $bits = 8; // ceil(log($dictionary_count, 2)) - $return = array(); + $codes = array(); $rest = 0; $rest_length = 0; for ($i=0; $i < strlen($binary); $i++) { @@ -27,7 +28,7 @@ $rest_length += 8; if ($rest_length >= $bits) { $rest_length -= $bits; - $return[] = $rest >> $rest_length; + $codes[] = $rest >> $rest_length; $rest &= (1 << $rest_length) - 1; $dictionary_count++; if ($dictionary_count > (1 << $bits)) { @@ -35,10 +36,8 @@ } } } - return $return; -} - -function lzw_decode($codes) { + + // decompression $dictionary = range("\0", "\xFF"); $return = ""; foreach ($codes as $i => $code) { @@ -57,7 +56,7 @@ function lang_read($binary) { $return = array(); - foreach (explode("\n", lzw_decode(lzw_codes($binary))) as $val) { + foreach (explode("\n", lzw_decompress($binary)) as $val) { $return[] = (strpos($val, "\t") ? explode("\t", $val) : $val); } return $return; Modified: branches/binary_compile/compile.php =================================================================== --- branches/binary_compile/compile.php 2009-09-03 11:42:27 UTC (rev 1066) +++ branches/binary_compile/compile.php 2009-09-03 12:11:19 UTC (rev 1067) @@ -17,25 +17,23 @@ return ($match[1] && $match[4] ? $s : "$match[1]'" . add_apo_slashes($s) . "'$match[4]"); } -// based on http://whoyouknow.co.uk/uni/datacompression/lzw.php -function lzw_encode($string) { +function lzw_compress($string) { + // compression $dictionary = array_flip(range("\0", "\xFF")); $word = ""; - $return = array(); + $codes = array(); for ($i=0; $i <= strlen($string); $i++) { $x = $string[$i]; if (strlen($x) && isset($dictionary[$word . $x])) { $word .= $x; } elseif ($i) { - $return[] = $dictionary[$word]; + $codes[] = $dictionary[$word]; $dictionary[$word . $x] = count($dictionary); $word = $x; } } - return $return; -} - -function lzw_binary($codes) { + + // convert codes to binary string $dictionary_count = 256; $bits = 8; // ceil(log($dictionary_count, 2)) $return = ""; @@ -104,7 +102,7 @@ foreach ($translation_ids as $val) { $s .= (is_array($val) ? implode("\t", $val) : $val) . "\n"; } - $return .= add_apo_slashes(lzw_binary(lzw_encode(substr($s, 0, -1)))) . "'); break;\n"; + $return .= add_apo_slashes(lzw_compress(substr($s, 0, -1))) . "'); break;\n"; } return "\$translations = &\$_SESSION['translations'][\$LANG];\nif (!\$translations) {\n\tswitch (\$LANG) {\n$return\t}\n}\n"; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |