Hier ist ein kleiner Trick, um Banner auf Ihrer Website zu randomisieren. Ein bisschen schnell und schmutzig. Es muss auf einer PHP-Seite laufen, damit es funktioniert.
Zuerst müssen wir auf Ihrem Server einen Ordner einrichten, in dem die Bilder abgelegt werden. Wir müssen die Bilder fortlaufend benennen, zum Beispiel mypicture1.jpg, mypicture2.jpg und mypicture3.jpg und so weiter.
Der nächste Schritt ist die Bearbeitung Ihres Banner-Codes auf Ihrer Website, um den Speicherort Ihrer neuen Bilddateien widerzuspiegeln. Wenn Sie zuvor…
<img src="//www.yoursite.com/random_images_folder_path/mypicture.jpg" />
Es würde sich verwandeln in…
<img src="//www.yoursite.com/random_images_folder_path/mypicture<?php
echo(mt_rand(1,3)); ?>.jpg">
MT_Rand ist eine PHP-Funktion, die von einer ersten Zahl bis zu einer bestimmten Zahl randomisiert. In unserem Beispiel von 1 bis 3. Sie können sie beliebig hoch setzen, je nachdem, wie viele Bilder Sie haben (da Sie nicht das randomisieren können, was Sie nicht haben).
Sie könnten dieses Bild auch in eine PHP-Datei legen, vielleicht mypicture.php genannt, und es in Ihren Bannerbereich einfügen. Auf diese Weise müssen Sie es nur an einer Stelle ändern.
Öffnen Sie also eine neue Textdatei und geben Sie den obigen Code für zufällige Bilder ein. Speichern Sie die Textdatei mit der Erweiterung .php auf Ihrem Server. Fügen Sie dann den folgenden Code in Ihren Bildbereich ein.
<?php include("http://www.yoursite.com/mypicture.php"); ?>
Sie müssen auch keine absoluten Pfade verwenden. Ich habe dies der Kürze und Einfachheit halber getan.
Das war alles dazu. Ich hoffe, das hilft jemandem.
Dieser Beitrag wurde von Chris St. Amand verfasst. Chris ist seit 8 Jahren freiberuflicher Webdesigner und -entwickler.
Als PHP-„Noob“ war das wirklich nützlich für mich, danke!
Chris
Schön und einfach – ich wollte schon immer eine Seite mit rund 100 Bildern in zufälliger Reihenfolge anzeigen lassen, aber ich habe es nie herausgefunden. Das Problem ist, dass ich keine Bilder mehr als einmal anzeigen möchte.
Ich dachte darüber nach, die Bilder in eine Datenbank zu laden und sie dann zu durchlaufen, um sicherzustellen, dass sie in zufälliger Reihenfolge, aber immer noch eindeutig sind, aber das scheint ein komplizierter Weg zu sein, etwas relativ Einfaches zu tun.
Irgendwelche Ideen?
@Rich: Meinst du eine Diashow-ähnliche Präsentation?
Diese Technik randomisiert das Bild nur beim Laden der Seite und ändert es nur bei einem Seiten-Reload. Wenn Sie sicherstellen möchten, dass sie mit dieser Technik nicht dasselbe zufällige Bild erhalten, müssten Sie die von ihnen gesehenen Bilder in einem Cookie verfolgen, Ihr zufälliges Bild mit dieser Liste abgleichen und dann ein neues generieren, wenn es einen Konflikt gibt. Denken Sie auch daran, den Cookie zu löschen, sobald er 99 Bildreferenzen enthält.
Ich bin hier aber natürlich kein Experte, das könnte eine dumme Art sein, es zu tun. Es ist nur das Erste, woran ich gedacht habe =)
Ich freue mich, dass die Leute es hilfreich fanden. Dies ist möglicherweise nur der erste Artikel in einer Reihe von Artikeln zu diesem Thema. Wer weiß :)
MT_Rand ist angeblich eine bessere Funktion als nur RAND. Ich habe gelesen, dass RAND oft dasselbe Bild wieder anzeigt, auch wenn Sie 100 Bilder haben. Aber MT_Rand ist wirklich zufällig.
http://us.php.net/rand
http://us.php.net/manual/en/function.mt-rand.php
Netter Trick
@Rich: Ich weiß nicht, wie gut deine PHP-Kenntnisse sind, aber es ist nicht so schwer.
Zuerst musst du alle deine Bilder in ein Array packen
$pictures_array = new Array('picture1.jpg', 'picture2.jpg', '...');und jetzt, da du die Anzahl der anzuzeigenden Bilder kennst, kannst du mit einer einfachen for-Schleife arbeiten
for($i=0; $i";
unset($pictures_array[$random_key])
}
Ich hoffe, das hat dir geholfen :)
o.O
Jetzt sehe ich dumm aus, da ein Teil des Codes, den ich geschrieben habe, aus irgendeinem Grund „gestohlen“ wurde
Das ist definitiv nicht die sauberste Methode, aber wenn es funktioniert, dann funktioniert es!
Toller Artikel – aber warum ist er „unsauber“? Er erfüllt seinen Zweck!
Ich denke, Chris S. nennt es „unsauber“, nur weil es nicht sehr dynamisch ist. Wenn sich die Anzahl der Bilder ändert oder die Dateinamen der Bilder, müssen Sie in den Code gehen und manuell Dinge ändern. Es gibt einige ausgefallene Methoden, die die Dateinamen aus einem Ordner lesen und zufällige Bilder von dort anzeigen können, was viel weniger schnell und weniger unsauber ist.
Aber ich stimme zu, dies ist eine sehr einfache und effektive Methode für zufällige Bilder, ich werde sie sicher bald irgendwo einsetzen!
Warum nicht eine PHP-Datei für background-image in CSS festlegen? Solange Sie eine feste Breite/Höhe eingestellt haben, wird es wie erwartet gerendert. Dann könnten Sie stattdessen eine Klasse/ID für ein Element verwenden, anstatt überhaupt das img-Tag zu verwenden.
Weil Sie das in Ihrer Konfiguration einrichten müssen. Es funktioniert nicht auf allen Servern, wenn Sie eine PHP-Erweiterung als Bild verwenden.
Sie können dies auch verwenden, um Stile in CSS zu randomisieren. So etwas wie
http://granimpetu.com/articulos/estilos-aleatorios-con-css-y-php/
Ah, sehr clever, Horacio!
Schön und einfach, liebe es. Tolle Arbeit, Chris, das war wirklich nützlich für mich!
Nachdem ich Horatios Kommentar gelesen habe, frage ich mich nun, ob wir dieses PHP für Divs mit Bildern und Text oder sogar für .css-Dateien verwenden können? Bitte schauen Sie sich jontangerine.com an, um weitere Beweise dafür zu finden, dass dies möglich ist. Ich habe Jon eine E-Mail geschickt, aber er hat mich an einen Freund von ihm verwiesen, von dem ich noch keine Antwort erhalten habe. Jede Idee wäre toll! Danke