| 
<?php
// Form to encode/decode text dinamicaly
 require_once(dirname(__FILE__).'/ascii85.class.php');
 
 $form = get_form();
 $result = isset($_POST['submit']) ? '<pre id="result">'.get_result().'</pre>' : '';
 
 header('Content-type: text/html; charset=UTF-8');
 echo <<<HTML
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 <html>
 <head>
 <title>Example of ASCII85 Class usage</title>
 <style type="text/css" rel="stylesheet"><!--
 form { border: 1px outset #CCCCCC; padding: .5em 1em; width: 25em; }
 label { vertical-align: top; }
 pre { border: 1px solid #000000; padding: .5em; }
 #result { border: 1px outset #CCCCCC; margin-top: 1em; padding: .5em; }
 --></style>
 </head>
 <body>
 
 <h1>Try it!</h1>
 {$form}
 {$result}
 
 </body>
 </html>
 HTML;
 
 
 /**
 * Create a form
 */
 function get_form() {
 if (isset($_POST['submit'])) {
 $value      = htmlentities($_POST['value'], ENT_COMPAT, 'UTF-8');
 $op_method1 = ($_POST['method'] == 'encode') ? ' selected="selected"' : '';
 $op_method2 = ($_POST['method'] == 'decode') ? ' selected="selected"' : '';
 $op_variation1 = ($_POST['variation'] == ascii85::BASIC)   ? ' selected="selected"' : '';
 $op_variation2 = ($_POST['variation'] == ascii85::ADOBE)   ? ' selected="selected"' : '';
 $op_variation3 = ($_POST['variation'] == ascii85::BTOA)    ? ' selected="selected"' : '';
 $split_pos = round(abs($_POST['split_pos']));
 } else {
 $value = '';
 $op_method1 = '';
 $op_method2 = '';
 $op_variation1 = '';
 $op_variation2 = '';
 $op_variation3 = '';
 $op_variation4 = '';
 $split_pos = '80';
 }
 $op1 = ascii85::BASIC;
 $op2 = ascii85::ADOBE;
 $op3 = ascii85::BTOA;
 
 return <<<HTML
 <form method="post" action="test.php">
 <p>
 <label for="value">Value:</label>
 <textarea id="value" name="value" cols="30" rows="5" >{$value}</textarea>
 </p>
 <p>
 <label for="method">Method:</label>
 <select id="method" name="method">
 <option value="encode"{$op_method1}>Encode</option>
 <option value="decode"{$op_method2}>Decode</option>
 </select>
 </p>
 <p>
 <label for="variation">Variation:</label>
 <select id="variation" name="variation">
 <option value="{$op1}"{$op_variation1}>Basic</option>
 <option value="{$op2}"{$op_variation2}>Adobe</option>
 <option value="{$op3}"{$op_variation3}>BTOA</option>
 </select>
 </p>
 <p>
 <label for="split_pos">Split Position:</label>
 <input type="text" id="split_pos" name="split_pos" value="{$split_pos}" />
 </p>
 <p>
 <input type="submit" name="submit" value="Submit" />
 </p>
 </form>
 HTML;
 }
 
 /**
 * Process form
 */
 function get_result() {
 if ($_POST['method'] == 'encode') {
 return ascii85::encode($_POST['value'], $_POST['variation'], $_POST['split_pos']);
 } elseif ($_POST['method'] == 'decode') {
 try {
 return ascii85::decode($_POST['value'], $_POST['variation']);
 } catch (Exception $e) {
 return 'Error '.$e->getCode().': '.$e->getMessage();
 }
 } else {
 return 'Undefined method "'.htmlentities($_POST['method']).'"';
 }
 }
 
 |