<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>
SelfCode encoder und decoder
</title>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
<meta name="author" content="Georg Land">
<meta name="keywords" content="Selfcode, encode, decode, encodieren, decodieren, Selfhtml, Selfhtml aktuell">
<meta name="date" content="2007-11-17T">
<link rel="stylesheet" type="text/css" href="selfcode.css">
<script type="text/javascript">
function pruef()
{
for(h = 0; document.forms['encode'].elements[h]; ++h)
{
if(document.forms['encode'].elements[h].checked == true)
return true;
}
alert('Bitte wenigstens eine Angabe machen!');
return false;
}
</script>
</head>
<body>
<span id="tc">2433</span>
<h1>SelfCode en- und decoder <span id="version">v2.0</span></h1>
<?php
$nam = array(
'sh' => 'SelfHTML',
'fo' => 'SelfHTML Forum',
'ch' => 'SelfChat',
'rl' => 'SelfHTML Treffen',
'br' => 'Lieblingsbrowser',
'n4' => 'Netscape 4',
'ie' => 'Internet Explorer',
'mo' => 'Mozilla',
'va' => 'Validator',
'js' => 'JavaScript',
'de' => 'Frames/Tabellen/CSS (Design-Elemente)',
'zu' => 'Zugänglichkeit',
'fl' => 'Flash',
'ss' => 'Serverseitige Sprachen',
'ls' => 'Lieblingssprache'
);
$erk = array(
'sh' => array(
'}' => 'Ich bin Stefan Münz',
')' => 'Developer.',
'|' => 'Featureartikelschreiber.',
'(' => 'Ich habe nichts damit zu tun.'
),
'fo' => array(
'}' => 'Ich bin unter den Top-10. Mein Leben besteht im wesentlichen aus dem Forum. Mein monatliches Schreibaufkommen ist mit einem Berufsjournalisten vergleichbar.',
')' => 'Ich bin regelmäßiger Poster.',
'|' => 'Ich komme gelegentlich und habe ein ausgewogenes Fragen-Antwort-Verhältnis.',
'(' => 'Wenn ich Hilfe brauche, dann sicher nicht da.',
'{' => 'Alles Idioten, Newbiehasser, Standardfetischisten, E-Mobber.',
'§' => 'Ich komme nur, um meine Erfolge bei Gericht feiern zu lassen.',
'#' => 'ANTWORTN ABA SChNELL!!!11',
'~' => 'Reiner Menscheleiposter.'
),
'ch' => array(
'}' => 'Ich bin 24 Stunden im Chat. Ich habe kein Leben.',
')' => 'Regelmäßiger Besucher, AOP.',
'|' => 'Gelegentlich.',
'(' => 'Mir kommen die Leute etwas unfreundlich vor.',
'{' => 'Chatter sind verwirrte Kick-Fanatiker, die für das Forum zu blöd sind.',
']' => 'Nur bei den Eröffnungsfeierlichkeiten oder wenn eine Arthur-P-Abwehr koordiniert wird.',
'#' => 'Ich bin Terrorkröte.',
'°' => 'Ich bin regelmäßiger Besucher, aber keiner will mir AOP geben.',
'~' => 'Warum habe ich eigentlich einen AOP, wenn ich doch nie da bin?',
'?' => 'Es gibt einen SelfChat?'
),
'rl' => array(
'}' => 'Ich war fast immer dabei.',
')' => 'Regelmäßiger Besucher.',
'|' => 'Ein oder zwei Besuche.',
'(' => 'Noch nie dort.',
'°' => 'Leider hatte ich noch nie Zeit.',
'?' => 'Es gibt Treffen?'
),
'br' => array(
'$' => 'IE-Benutzer',
'>' => 'Gecko (Mozilla, etc.)',
'<' => 'Opera.',
'^' => 'Mozilla und Opera.',
'&' => 'Je nach Bedarf.',
'µ' => 'Links, Lynx, etc.',
']' => 'Quelltextleser.',
'\\' => 'Konqueror.',
'~' => 'andere.',
'?' => 'Duscholux.'
),
'n4' => array(
'}' => 'Netscape 4 ist die große Liebe meines Lebens. Ich schicke den Entwicklern zu ihren Geburtstagen Blumen. Ich heule bei den neuesten Statistiken.',
')' => 'Ich benutze ihn, weil er immer noch der beste ist. Dieses primitive Bashing ist nur lächerlich.',
'|' => 'Ich muss ihn gelegentlich benutzen, weil er immer noch besser als IE ist. Die Webmaster kann ich zwar verstehen, aber nett finde ich es nicht.',
'(' => 'Netscape 4 ist ein Horror.',
'{' => 'Benutzer dieses Browsers sind Wirtschaftsschädlinge, Verrückte oder Rechthaber. Netscape 4 sollte baldestmöglich behördlich verboten werden. Meine Seiten lassen diesen Schrott automatisch abstürzen.',
'°' => 'Besonders erfreut bin ich nicht, aber ich muss eben die Seiten anpassen.',
'#' => 'SCHEIßBRAUSER!!!11',
'~' => 'Dieser Religionskrieg ist doch lächerlich.',
'&' => 'Eine optimale Version sollte keiner erwarten, aber man sollte diesen Browser berücksichtigen.',
'?' => 'Netwas?'
),
'ie' => array(
'}' => 'Ich bin absoluter Fan. Ich habe alle Sicherheitseinstellungen minimiert und vollstes Vertrauen. Ich liebe Microsoft. Alternative Browser sind nur für anarchistische Idioten.',
')' => 'Ich benutze den Internet Explorer, weil er der beste Browser ist.',
'|' => 'Ich benutze ihn ohne irgendwelche Hintergedanken.',
'(' => 'Ein schlechter Browser.',
'{' => 'Dieses Stück Programmcode ist gemeingefährlich. Jeder, der so etwas wissentlich verbreitet, ist ein potentieller Schwerverbrecher.',
'%' => 'Der Marktanteil ist - gemessen an der Qualität - nicht gerechtfertigt und gefährlich.'
),
'mo' => array(
'}' => 'Mozilla hat mein Leben verändert.',
')' => 'Mozilla ist der beste Browser.',
'|' => 'Nicht schlecht, aber Opera ist besser.',
'(' => 'Definitiv kein guter Browser.',
'{' => 'Gutmensch-Browser für weltfremde Spinner.',
'?' => 'Es heißt »Godzilla«.'
),
'va' => array(
'}' => 'Der Validator ist mein Gott.',
')' => 'Ich versuche, nur valide zu schreiben.',
'|' => 'Nach Möglichkeit.',
'(' => 'Warum sollte ich valide schreiben?',
'{' => 'Vorschriftenfanatiker, alle.',
'?' => 'Valiwas?'
),
'js' => array(
'}' => 'JavaScript und DHTML sind die besten Erfindungen seit HTML und jede Seite sollte ein aufklappbares DHTML-Menü haben.',
')' => 'JavaScript ist cool.',
'|' => 'Man kann viel sinnvolles mit JavaScript machen, man kann es aber auch mißbrauchen.',
'(' => 'JavaScript wird zu oft missbraucht, daher ist eher davon abzuraten.',
'{' => 'JavaScript ist doch sowieso nur etwas für Klicki-Bunti-Webmons^Wmaster'
),
'de' => array(
'>' => 'CSS-Fanatiker. Tabellen sind böse, Frames gemeingefährlich.',
']' => 'CSS!',
'[' => 'Tabellen aus Bequemlichkeit.',
'<' => 'Tabellen aus Überzeugung.',
'/' => 'Framefreund',
'µ' => 'Design? Da bin ich dagegen.',
'?' => 'Keine Ahnung.'
),
'zu' => array(
'}' => 'Alle Webmaster sollten dazu verpflichtet werden, die UNO sollte es zum Menschenrecht machen.',
')' => 'Wichtiges Ziel.',
'|' => 'Sicher überlegenswert.',
'(' => 'Naja...',
'{' => 'Unsinn. Hauptsache, ich kann es sehen.',
'$' => 'Mein Kunde bezahlt eben nicht dafür.',
']' => 'Ich bin Chräcker Heller. Meine Meinung lässt sich nicht in einem Satz zusammenfassen.'
),
'fl' => array(
'}' => 'Die Lösung aller Probleme!',
')' => 'Elegantes und effektives Werkzeug.',
'|' => 'Es gibt viele sinnvolle Einsatzmöglichkeiten.',
'(' => 'Flash-Skeptiker.',
'{' => 'Ich hasse Flash. Es hat im Web nichts verloren, weg damit.'
),
'ss' => array(
'}' => 'Ich programmiere Online-Shops in zwei Stunden.',
')' => 'Guter Programmierer.',
'|' => 'Ich kann kleinere Probleme lösen, bin aber kein Experte.',
'(' => 'Ich kann aber kaum programmieren',
'{' => 'Ich kenne immerhin den Begriff.',
'?' => 'Was ist denn das schon wieder?'
),
'ls' => array(
'>' => 'Perl (alles andere ist sowieso Kindergarten)',
']' => 'Perl.',
'[' => 'PHP.',
'<' => 'PHP, Perl ist etwas für hochnäsige Angeber.',
'$' => 'ASP.',
'µ' => 'Assembler.',
'/' => 'JSP.',
'\\' => 'Coldfusion.',
'~' => 'andere.',
'&' => 'Je nach Bedarf.',
'#' => 'HTML.',
'?' => 'Ähm...'
)
);
if(!isset($_GET['quelltext'])) // Tritt ein, wenn kein Quelltext angezeigt werden soll
{
echo '
<h2>Decodieren</h2>
';
if(!isset($_GET['decodieren']))
{
echo ' <form action="selfcode.php?decodieren" id="decode" method="POST">
<input type="text" name="code" size="80" id="code"> <input type="submit" value="Decodieren!">
</form>
';
} else {
$code = trim(((!empty($_POST['code'])) ? $_POST['code'] : $_GET['decodieren'])); // Entfernen der leerzeichen am Anfang und Ende
echo 'Jetzt auch möglich: Übergabe des Selfcodes via Adresszeile (z.B.: <a href="selfcode.php?decodieren=sh:( fo:|">selfcode.php?decodieren=sh:( fo:|</a>)!<br>';
if(empty($code)) // Tritt ein, wenn Selfcode leer
{
echo 'Ungültiger Selfcode!';
} else {
$zcode = preg_split('°\s+°is', $code); // Code, der Angezeigt wird
$code = preg_split('°\s+°is', strtolower($code)); // Code mit dem weitergearbeitet wird (wird zu Kleinbuchstaben gemacht)
echo '
<dl>';
foreach($code as $ausg) // Überprüft, ob in gesplitteten Arrayteilen etwas richtiges dabei ist
{
if(isset($nam[substr($ausg, 0, 2)]))
{
$wahr = true;
break;
}
$wahr = false;
}
echo ($wahr === false) ? '<dt>Ungültiger Selfcode!</dt>' : ''; // Wenn nichts richtig ist
for($h = 0; isset($code[$h]); ++$h) // Ausgabe der Selfcodeteile in Definition-List
{
echo '
<dt>
'.((isset($nam[substr($code[$h], 0, 2)])) ? $nam[substr($code[$h], 0, 2)] : '<span style="color:red;font-weight:bold;">Unbekannter Selfcode-Teil</span>:').' <span class="selfcode">'.htmlspecialchars(preg_replace('°\\\\+°', '\\', $zcode[$h])).'</span>
</dt>
<dd style="margin-top:3px;">
'.((isset($erk[substr($code[$h], 0, 2)][substr($code[$h], -1)]) ? $erk[substr($code[$h], 0, 2)][substr($code[$h], -1)] : '<span style="color:red;">Beschreibung unbekannt!</span>')).'
</dd>
';
if(isset($code[$h+1]))
{
echo ' <dt>
<hr>
</dt>
';
}
}
}
echo ' </dl>
<a href="selfcode.php">Zurück</a>
';
}
echo '
<h2>Encodieren</h2>
';
if(!isset($_GET['encodieren'])) // Wenn nicht encodiert werden soll
{
$haupt = array('Community' => array('sh', 'fo', 'ch', 'rl'),
'Browser' => array('br', 'n4', 'ie', 'mo'),
'Religion' => array('va', 'js', 'de', 'zu', 'fl'),
'Serverseitige Sprachen' => array('ss', 'ls')); // Hauptarray für Legends
echo ' <form action="selfcode.php?encodieren" onSubmit="return pruef()" name="encode" id="encode" method="POST">';
foreach($haupt as $name => $ausg) // Erstellen der Auswahlmöglichkeiten
{ // Haupt-Fieldsets
echo '
<fieldset class="haupt">
<legend class="haupt">
'.$name.'
</legend>
';
foreach($ausg as $ausg2) // Fieldsets eines Einzelbereiches
{
echo '
<fieldset>
<legend>
'.$nam[$ausg2].'
</legend>
<ul>';
$h = 0;
foreach($erk[$ausg2] as $name3 => $ausg3) // Auswahlmöglichkeiten
{
echo '
<li>
<input type="radio" id="'.$ausg2.$h.'" name="'.$ausg2.'" value=":'.$name3.'"><label for="'.$ausg2.$h.'"> '.$ausg3.'</label>
</li>';
++$h;
}
echo '
</ul>
</fieldset>';
}
echo '
</fieldset>';
}
echo '
<input type="submit" value="Encodieren!"> <input type="reset" value="Zurücksetzen!">
</form>';
} else { // Wenn encodiert werden soll
if(!empty($_POST)) // Sobald nur eines nicht leer ist...
{
foreach($_POST as $name => $ausg) // Zusammenstellen des Selfcodes
{
$ges[$name] = (!empty($ausg)) ? $name.$ausg.' ' : '';
}
$ges = trim(implode($ges));
echo ' Dein SelfCode: <span class="selfcode">'.preg_replace('°\\\\+°', '\\', $ges).'</span>
<br>
<a href="selfcode.php">Zurück</a>
';
} else { // Wenn nichts angekreuzt wurde
echo ' Bitte mindestens eine Angabe machen. <a href="selfcode.php">Zurück</a>
';
}
}
} elseif(isset($_GET['quelltext'])) { // Wenn Quelltext ausgelesen werden soll
$quell_s = file_get_contents('selfcode.php');
$quell_c = file_get_contents('selfcode.css');
// Anfang Syntaxhighlighting
$tags = '(abbr|acronym|address|applet|base|basefont|bdo|big|blockquote|body|br|button|caption|center|cite|code|colgroup|col|dd|del|dfn|dir|div|dl|dt|em|fieldset|font|form|frameset|frame|h1|h2|h3|h4|h5|h6|head|hr|html|iframe|img|input|ins|isindex|kbd|label|legend|i|link|li|map|menu|meta|noframes|noscript|object|ol|optgroup|option|param|pre|p|samp|script|select|small|span|strike|strong|style|sub|sup|table|tbody|td|textarea|tfoot|area|thead|th|title|q|s|tr|tt|u|b|ul|a|var)'; // Alle Tags
$quell_s = str_replace('<br />', '', highlight_string($quell_s, true));
$quell_s = preg_replace('°(<|>)°', '<span style="color:red;">$1</span>', $quell_s); // < und > werden rot
$quell_s = preg_replace('°<span style="color:red;"><</span>'.$tags.'([^<>]*)<span style="color:red;">></span>°is', '<span style="color:red;"><</span><span style="color:blue;text-decoration:underline;">$1</span>$2<span style="color:red;">></span>', $quell_s); // Anfangs-Tags werden blau
$quell_s = preg_replace('°<span style="color:red;"><</span><span style="color:blue;text-decoration:underline;">'.$tags.'</span>([^<>]*)<span style="color:red;">></span>°is', '<span style="color:red;"><</span><span style="color:blue;text-decoration:underline;">$1</span><span style="color:#AAF;">$2</span><span style="color:red;">></span>', $quell_s); // Atrribute werden hellblau
$quell_s = preg_replace('°"(.*)"°is', '"<span style="color:#CCF;border-bottom:1px dashed #CCF;">$1</span>"', $quell_s); // Attributwerte werden noch heller
$quell_s = preg_replace('°<span style="color:red;"><</span>/'.$tags.'<span style="color:red;">></span>°is', '<span style="color:red;"><</span><span style="color:blue;border-bottom:1px dotted blue;">/$1</span><span style="color:red;">></span>', $quell_s); // End-Tags werden blau
$quell_s = preg_replace('°<span style="color:red;">></span>(.*)<span style="color:red;"><</span>°is', '<span style="color:red;">></span><span style="color:black;">$1</span><span style="color:red;"><</span>', $quell_s); // Inhalt wird orange
$quell_s = preg_replace('°<span style="color:red;"><</span>!--(.*)--<span style="color:red;">></span>°is', '<span style="color:gray;"><!--$1--></span>', $quell_s); //Kommentare werden Grau
// Ende Syntaxhighlighting
echo '
<h2>Quelltext - selfcode.php</h2>
<div class="quelltext">
<pre><code>'.$quell_s.'</code></pre>
</div>
<h2>Quelltext - selfcode.css</h2>
<div class="quelltext">
<pre>'.$quell_c.'</pre>
</div>';
}
?>
<div style="text-align:center;">© beim glan (2007) | Nach Selfcode Version 1.0 | Ein herzliches Dankeschön an Patrick Andrieu<?php if(!isset($_GET['quelltext'])) echo ' | <a href="selfcode.php?quelltext">Quelltext</a>'; if($_GET) echo ' | <a href="selfcode.php">zurück</a>'; ?></div>
</body>
</html>
<!--
Scripts- & Design-Copyright beim glan
Hintergrundbild Copyright bei SelfHTML e.V.
Dieses Script darf kopiert werden, es sollte aber mein Nickname (glan) mit erwähnt werden.
-->