Initial commit

This commit is contained in:
Sergio Álvarez 2019-07-18 08:53:55 +02:00
commit e2a2a9eb9b
2 changed files with 120 additions and 0 deletions

1
README.md Normal file
View File

@ -0,0 +1 @@
Simpler than the mechanism of a spoon.

119
index.php Normal file
View File

@ -0,0 +1,119 @@
<?php
// action => label
$buttons = [
'reset' => 'Reset',
'urlencode' => 'URL Encode',
'urldecode' => 'URL Decode',
'b64encode' => 'Base64 Encode',
'b64decode' => 'Base64 Decode',
'htmlencode' => 'HTML Encode',
'htmldecode' => 'HTML Decode',
// 'uuencode' => 'UU Encode',
// 'uudecode' => 'UU Decode',
'qprintencode' => 'Qprint Encode',
'qprintdecode' => 'Qprint Decode',
'hash' => 'Hash',
'hex' => 'Hex',
];
$str = $result = $_GET['str'] ?? '';
$action = $_GET['action'] ?? '';
if ($action == 'reset') {
http_response_code(302);
header("Location: /");
die();
} elseif ($action == 'urlencode') {
$result = urlencode($str)?: $str;
} elseif ($action == 'urldecode') {
$result = urldecode($str)?: $str;
} elseif ($action == 'b64encode') {
$result = base64_encode($str)?: $str;
} elseif ($action == 'b64decode') {
$result = base64_decode($str)?: $str;
} elseif ($action == 'htmlencode') {
$result = htmlentities($str, ENT_QUOTES | ENT_HTML5)?: $str;
} elseif ($action == 'htmldecode') {
$result = html_entity_decode($str, ENT_QUOTES | ENT_HTML5)?: $str;
} elseif ($action == 'uuencode') {
$result = convert_uuencode($str)?: $str;
} elseif ($action == 'uudecode') {
$result = convert_uudecode($str)?: $str;
} elseif ($action == 'hash') {
$result = "Algorithm Time Len Hash\n";
foreach (hash_algos() as $algo) {
$t1 = microtime(true);
$r = hash($algo, $str, false);
$t2 = (microtime(true) - $t1) * 1000;
$result .= sprintf("%-15s %.3f %3d %s\n", $algo, $t2, strlen($r), $r);
}
$result = trim($result);
} elseif ($action == 'hex') {
$result = chunk_split(bin2hex($str), 2, " ");
} elseif ($action == 'qprintencode') {
$result = quoted_printable_encode($str)?: $str;
} elseif ($action == 'qprintdecode') {
$result = quoted_printable_decode($str)?: $str;
}
?><!doctype html>
<html lang="en">
<head>
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-70198-12"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag() { dataLayer.push(arguments) }
gtag('js', new Date());
gtag('config', 'UA-70198-12');
</script>
<meta charset="utf-8">
<title>Encode/Decode everything</title>
<meta name="description" content="Encode/Decode everything, base64, url, html, charset">
<meta name="author" content="Sergio Álvarez <xergio@gmail.com>">
<!-- <link rel="stylesheet" href="https://unpkg.com/normalize.css@8.0.1/normalize.css"> -->
<link rel="stylesheet" href="https://unpkg.com/spectre.css@0.5.8/dist/spectre.min.css">
<style type="text/css">
html, body { height: 100%; }
body { margin: 0; }
/*form { padding: 10px; } */
/*textarea { width: 99%; height: 90vh; } */
textarea.form-input { width: 100%; height: 80vh; font-family: monospace; }
/*.active { font-weight: bold; }*/
.container { padding-top: .4rem; padding-bottom: .4rem; }
</style>
</head>
<body class="bg-gray">
<form method="get">
<div class="container">
<?php foreach ($buttons as $act => $label) { ?>
<button type="submit" name="action" value="<?=$act?>" class="btn<?=($action == $act? ' btn-primary': '')?>"><?=$label?></button>
<?php } ?>
</div>
<div class="container">
<textarea name="str" class="form-input" placeholder="Paste an string here"><?=htmlentities($result, ENT_QUOTES | ENT_HTML5 | ENT_IGNORE)?></textarea>
</div>
</form>
<div class="container text-right">
<small>Contact me via <a href="mailto:xergio@gmail.com">email</a> or <a href="https://twitter.com/xergio">twitter</a>.</small>
</div>
</body>
</html>