- <?php
-
- $treat = false;
- if (isset($_POST['src'])) {
- $script = $_POST['src'];
- if (get_magic_quotes_gpc())
- $script = stripslashes($script);
- $encoding = (int)$_POST['ascii_encoding'];
- $fast_decode = isset($_POST['fast_decode']) && $_POST['fast_decode'];
- $special_char = isset($_POST['special_char'])&& $_POST['special_char'];
-
- require 'class.JavaScriptPacker.php';
- $t1 = microtime(true);
- $packer = new JavaScriptPacker($script, $encoding, $fast_decode, $special_char);
- $packed = $packer->pack();
- $t2 = microtime(true);
-
- $originalLength = strlen($script);
- $packedLength = strlen($packed);
- $ratio = number_format($packedLength / $originalLength, 3);
- $time = sprintf('%.4f', ($t2 - $t1) );
-
- $treat = true;
- }
- ?>
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
- "http://www.w3.org/TR/html4/strict.dtd">
- <html>
- <head>
- <title>JavaScript Packer in PHP</title>
- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
- <style type="text/css">
- .result {
- border: 1px blue dashed;
- color: black;
- background-color: #e5e5e5;
- padding: 0.2em;
- }
- </style>
- <script type="text/javascript">
- function decode() {
- var packed = document.getElementById('packed');
- eval("packed.value=String" + packed.value.slice(4));
- }
- </script>
- </head>
- <body>
- <form action="<?php echo $_SERVER['PHP_SELF']?>" method="post">
- <div>
- <h3>script to pack:</h3>
- <textarea name="src" id="src" rows="10" cols="80"><?php if($treat) echo htmlspecialchars($script);?></textarea>
- </div>
- <!-- <fieldset> -->
- <div>
- <label for="ascii-encoding">Encoding:</label>
- <select name="ascii_encoding" id="ascii-encoding">
- <option value="0"<?php if ($treat && $encoding == 0) echo ' selected'?>>None</option>
- <option value="10"<?php if ($treat && $encoding == 10) echo ' selected'?>>Numeric</option>
- <option value="62"<?php if (!$treat) echo 'selected';if ($treat && $encoding == 62) echo ' selected';?>>Normal</option>
- <option value="95"<?php if ($treat && $encoding == 95) echo ' selected'?>>High ASCII</option>
- </select>
- <label>
- Fast Decode:
- <input type="checkbox" name="fast_decode" id="fast-decode"<?php if (!$treat || $fast_decode) echo ' checked'?>>
- </label>
- <label>
- Special Characters:
- <input type="checkbox" name="special_char" id="special-char"<?php if ($treat && $special_char) echo ' checked'?>>
- </label>
- <input type="submit" value="Pack">
- </div>
- <!-- </fieldset> -->
- </form>
-
- <?php if ($treat) {?>
- <div id="result">
- <h3>packed result:</h3>
- <textarea id="packed" class="result" rows="10" cols="80" readonly="readonly"><?php echo htmlspecialchars($packed);?></textarea>
- <p>
- compression ratio:
- <?php echo $originalLength, '/', $packedLength, ' = ',$ratio; ?>
- <br>performed in <?php echo $time; ?> s.
- </p>
- <p><button type="button" onclick="decode()">decode</button></p>
- </div>
- <?php };//end if($treat)?>
- </body>
- </html>