Die Random-Signatur - Printable Version +- z0r Forums (https://board.z0r.de) +-- Forum: Deutsch (https://board.z0r.de/forumdisplay.php?fid=1) +--- Forum: Dies und Das (https://board.z0r.de/forumdisplay.php?fid=5) +--- Thread: Die Random-Signatur (/showthread.php?tid=2480) |
Die Random-Signatur - SunRed - 19-09-2012 Hallo Community, ich wollte mal mein kleines php-Script posten, mit dem meine Signatur hier um Forum läuft Vll. haben sich schon mal welche gefragt, ob es möglich ist, eine Signatur zu erstellen, die ein zufälliges Bilder anzeigt, wenn man die Seite lädt. Alles was man dazu benötigt ist ein PHP-tauglicher Webspace im Internet, sei es bei irgendeinem Freehoster. ** Vorbereitung ** Zuerst fängt man an sich eine Textdatei zu erstellen. In jede Zeile fügt man den Direktink zum jeweiligen Bild ein, welches später in der Signatur angezeigt werden kann. Diese datei speichert man dann als z.B "sigs.txt" ab. Diesen Namen solltet ihr beibehalten, da ihr den gleich noch braucht. Ein Beispiel für die Text-Datei findest du unter dem fertigen Script. ** Der Code ** Ihr erstellt eine Datei z.b mit dem Namen "random.php" Am besten könnt ihr die Datei in einem Editor wie Notepad bearbeiten. Um die Datei in php auszulesen benötigt ihr die Funktion file(). Dieses speichert man dann in eine Variable wie hier: PHP Code: $file = file('sigs.txt'); // die sigs.txt (Wo eure Bilder drinne sind) liegt im selbem Ordner wie die random.php Da die Ausgabe von file() in einem Array erfolgt geben wir nun wie folgt das Array mit der Array-Schleife foreach() aus: PHP Code: $i = 0; Dies finde ich ist nützlich, wenn man Zeilen auslassen möchte bzw. auskommetieren möchte innerhalb der Text-Datei. Danach wird das zufällige Bild ermittelt, das ausgegeben werden soll: PHP Code: $r = rand(0, ($i-1)); Die Funktion rand() macht somit nichts anderes als einen zufälligen Wert zwischen der ersten und zweiten Zahl auszugeben. Den Wert zum dazugehörigem Key speichern wir dann in einer einfachen Variable: PHP Code: $pic = $im[$r]; Im Folgenden kürzen wir den Link (String) nochmal um 1 Zeichen, wenn es nicht die letzte Zeile in der Textdatei ist, da im String der Zeilenumbruch hinten noch auftaucht, den wir entfernen müssen, da er das Bild sonst später nicht findet. PHP Code: if($pic != end($im)) $pic = substr($pic, 0, -1); Zum Schluss leiten wir den Browser noch auf das Bild um, indem wir Informationen an den header senden. PHP Code: header('Location: '.$pic); ** Fertiges Script ** PHP Code: <?php Ein Beispiel für die Text-Datei könnte sein: Code: http://www.imgbox.de/users/SunRed/Pics/born_yes.gif Die zweite Zeile wird in diesem Fall ignoriert/auskommentiert. Nachdem ihr es via FTP o.ä. hochgeladen habt, könnt ihr das ganze im Forum via bbCodes z.b mit Code: [img]http://deinedomain.de/random.php[/img] Code: <img src="http://deinedomain.de/random.php"> Natürlich müsst ihr eure Domain/Subdomain nehmen, die auf euren Webspace verleitet mit dem jeweiligen Dateinamen der PHP-Datei und eventuellem Pfad. Anmerkung: Ich weiß, es ist zwar kein schwieriges und langes Script, aber für php-Anfänger, die eine "etwas andere" Signatur wollen durchaus nützlich. Dafür habe ich es auch etwas ausführlicher erklärt. MfG, SunRed RE: Die Random-Signatur - GTAzoccer - 05-08-2014 Warum seh ich das eigentlich erst jetzt? Schöne Idee. Jetzt weiß ich auch, woher ich die Idee für meine eigene Signatur her hab. Ich wusste doch, so etwas ähnliches hatte schon mal jemand vorgestellt. Nur ists bei mir kein Random, sondern es geht nach Tageszeit (MEZ/MESZ). Mein Skript ist allerdings nicht öffentlichkeitstauglich da keine externe Konfigurations-txt geparsed wird. ^^ Im <img>-Tag eine *.php, statt einer Grafik anzugeben scheint den Browser ja nicht zu stören solange am Ende der Umleitung(en) eine Grafik präsentiert wird, oder? Du selbst, wie auch ich, nutzen ja nicht direkt die PHP Datei in der Anfrage URI. Vllt ists ja noch eine Erwähnung wert, wie man mit einer .htaccess Datei die Anfrage von einer nicht existierenden sig.gif auf die PHP umleitet. Ich vermisse bei dir noch Header Angaben zum Caching. Die letztendliche Grafik darf (und sollte!) ja natürlich im Cache landen, die sich immer wieder ändernde Umleitung aber nicht. PHP Code: header('Pragma: no-cache'); Dann noch eine Kleinigkeit zu deinem HTTP-Statuscode: 302 ist nicht mehr so gern gesehen. Wenn er auf Fremdinhalte verweist, bewirkt er URL-Hijacking. Ich selbst zieh mich aus der Affäre, indem sich die genutzten Grafiken alle auch direkt auf meinem Webspace befinden. |