extranet/includes/lib/packer/example-inline.php
2010-05-19 15:52:36 +00:00

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>