Methodenaufrufe in PHP caseinsensitiv

4 Kommentare

Vor einigen Tagen entdeckt und immer noch von diesem „Feature“ verblüfft. :)
Ohne große Worte:

class FOO{
    function bar($msg){
        echo $msg;
    }
}

$f = new foo();
$f->Bar("lol"); //Ausgabe: lol
Advertisements

RE: kleinste Blogsoftware der Welt

Hinterlasse einen Kommentar

Der PHP Gangsta hat in einem Beitrag dazu aufgefordert, die kleinste Blogsoftware der Welt in PHP zu bauen. Damit das ganze „geregelt“ abläuft, gab es ein paar Vorgaben.
Anfangs hielt ich es für eine lustige Idee und hatte schon ein paar Vorstellungen wie ich zB Code schön wieder verwenden kann usw., aber nachdem ich mich damit ein bisschen auseinander gesetzt habe und mir Lösungen wie die von Oli angeschaut hab, ist mir fast schlecht geworden. ;)

So was ist vielleicht eine schöne historische Übung: „Warum war PHP nochmal so unbeliebt? .. Ach ja.. man kann damit geile Scheiße bau’n. :)“
oder eine „wie sollte ich niemals Code schreiben“-Übung. Hehe.

Eigentlich geht es aber bei so einem Contest nicht darum so effizient wie möglich „Software“ zu schreiben, sondern viel mehr darum, wie man einzelne Vorgänge mit so wenig Zeichen wie möglich realisiert. Also wie kann ich mit einer Zeile Code Daten abspeichern oder ein Formular generieren.
Aber sowas wie „Sicherheit“ mit so wenig Zeichen wie möglich zu regeln… da würde ein gutes, hart-codiertes Passwort schon stören:

if($p==p)/*...*/

:D .. zu geil .. ich hab es gleich weggelassen.. bei mir besteht die „Sicherheit“ darin, dass ein beliebiger Name für das „admin Skript“ verwendet werden kann (z.B. meinKompliziertesPassword.php) und die Parameter stimmen müssen.

Naja, OK, mein Code ist stark an Olis Code angelehnt, weshalb für 80% davon die Lorbeeren an ihn gehen sollten.
Bzgl. Formular hatte ich ursprünglich die Idee das mit printf() zu lösen, aber das hat die ganze Sofware so arg aufgebläht. x)

Die entscheidende Idee von mir ist das Abspeichern der Daten in die „index.htm“… der Dateiname hat zwar mehr Zeichen, aber man muss sich nicht mehr um die Ausgabe kümmern, sondern nur noch um das hinzufügen der Daten.

Hier also „meine“ 143 Byte (Zeilenumbrüche müssen dafür entfernt werden):

<?
extract($_GET);
$i='><input name';
if($a)echo"<form$i=t$i=c$i type=submit>";
$d=date('r');
if($t)fputs(fopen('index.htm','a'),"<hr>$t($d)<p>$c");

Man könnte noch 4 Anführungszeichen weglassen, dann wären es 139 Zeichen und man könnte es in einen Tweet verpacken. :)
Viel Spaß!

PS: Ich war etwas erschrocken, als ich kurz danach an meinem „Produktivcode“ saß und mir Gedanken in den Kopf kamen, wie ich das noch kürzer schreiben könnte. Hilfe!