89 lines
3.0 KiB
PHP
89 lines
3.0 KiB
PHP
<?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>
|