IPB

Willkommen, Gast ( Anmelden | Registrierung )

> Bild einfügen mit PHP-Script
Conny
Beitrag 03.02.2008 - 9:28
Beitrag #1


Kommt Zeit, kommt Rat, kommt Conrad!
Gruppensymbol

Gruppe: Mods
Beiträge: 1.169
Mitglied seit: 21.11.2001
Wohnort: Altenkirchen, Westerwald
Mitglieds-Nr.: 42



Moin Gemeinde,

ist es möglich beim laden einer Seite jedesmal wenn die Seite erneut aufgerufen wird ein anderes Titelbild zu laden?

Ich stelle mich das also so vor, daß es einen Ordner mit -sagen wir mal- 20 verschiedene, aber gleich große Bilder gibt.
Jedes mal wenn eine Seite aufgerufen wird sucht sich das Script wahllos -oder nach einem bestimmten Muster- ein Bild aus diesem Ordner aus, welches dann mit geladen wird.

Es geht hier reell um einem Bild im Header-Bereich einer Seite. Der Header ist auf allen Seiten dieser Webseite gleich und wird durch einen PHP-Include in der jeweiligen Seite geladen.
Nun soll sich also in diesem Header das Titelbild beim Aufruf einer nächsten Seite ändern...

Die Seite ist noch in der Entwicklung, eine erste Probe ist dennoch online: KLICK

cu
Conny
Go to the top of the page
 
+Quote Post
 
Start new topic
Antworten
Conny
Beitrag 03.02.2008 - 20:57
Beitrag #2


Kommt Zeit, kommt Rat, kommt Conrad!
Gruppensymbol

Gruppe: Mods
Beiträge: 1.169
Mitglied seit: 21.11.2001
Wohnort: Altenkirchen, Westerwald
Mitglieds-Nr.: 42



Hi,

habe auch mal ein Wenig gesucht, habe auch einiges gefunden, meistens alles zu viel, zu groß, zu viele Features.

Habe dann aber ein Script zusammen 'gestript' bis zur winzig Größe.
Das Ergebnis ist wie folgt:
Ordner anlegen in der die Bilder die gewechselt werden liegen.
Diese Bilder durchnummerieren ( 1.jpg, 2.jpg usw.)
Das Script im gleichen Ordner ablegen und auf der Seite per include aufrufen.

Scriptinhalt ist wie folgt:
QUELLTEXT
<?php

// Zahl der Bilder die sich im Ordner befinden
$total = "3";
$file_type = ".jpg";

// Pfad zum Ordner
$image_folder = "pics/headers";
$start = "1";
$random = mt_rand($start, $total);
$image_name = $random . $file_type;
echo "<IMG SRC=\"$image_folder/$image_name\" ALT=\"$image_name\" />";
?>


Lokal funktioniert es schon mal smile.gif

cu
Conny
Go to the top of the page
 
+Quote Post
Thomas
Beitrag 03.02.2008 - 21:48
Beitrag #3


Nachschlagewerk des Orakels
Gruppensymbol

Gruppe: Mods
Beiträge: 955
Mitglied seit: 29.08.2006
Wohnort: Frankfurt am Main
Mitglieds-Nr.: 6.217



Die einzige Optimierung wäre noch, den Verzeichnisinhalt dynamisch einzulesen, dann könntest du die möglichen Bilder einfach durch die Dateien im Verzeichnis festlegen und müsstest nicht zusätzlich das Skript ändern, wenn du z. B. ein weiteres Bild anzeigen möchtest. Auch wären die Dateinamen wahlfrei.

So wie du es jetzt machst, ist es übrigens egal, wo das Skript liegt, da der Bilderpfad unabhängig vom Skriptpfad festgelegt wird.

Um noch eine neue Idee in den Ring zu werfen: Du könntest das Skript auch das Bild selbst zurückliefern lassen (mittels Dateiauslesen und header()).
Go to the top of the page
 
+Quote Post
Conny
Beitrag 03.02.2008 - 23:29
Beitrag #4


Kommt Zeit, kommt Rat, kommt Conrad!
Gruppensymbol

Gruppe: Mods
Beiträge: 1.169
Mitglied seit: 21.11.2001
Wohnort: Altenkirchen, Westerwald
Mitglieds-Nr.: 42



ZITAT(Thomas @ 03.02.2008 - 21:48) *
Die einzige Optimierung wäre noch, den Verzeichnisinhalt dynamisch einzulesen, dann könntest du die möglichen Bilder einfach durch die Dateien im Verzeichnis festlegen und müsstest nicht zusätzlich das Skript ändern, wenn du z. B. ein weiteres Bild anzeigen möchtest. Auch wären die Dateinamen wahlfrei.

DAS wäre sicherlich eine Optimierung!
Aber da setzt Du bei mir vllt. zuviel voraus blush.gif

ZITAT(Thomas @ 03.02.2008 - 21:48) *
So wie du es jetzt machst, ist es übrigens egal, wo das Skript liegt, da der Bilderpfad unabhängig vom Skriptpfad festgelegt wird.

Ja, ist es auch, der Übersichtlichkeit halber habe ich das für mich so festgelegt, um alles beisammen zu haben.

ZITAT(Thomas @ 03.02.2008 - 21:48) *
Um noch eine neue Idee in den Ring zu werfen: Du könntest das Skript auch das Bild selbst zurückliefern lassen (mittels Dateiauslesen und header()).

huh.gif ?

cu
Conny
Go to the top of the page
 
+Quote Post
Thomas
Beitrag 04.02.2008 - 9:17
Beitrag #5


Nachschlagewerk des Orakels
Gruppensymbol

Gruppe: Mods
Beiträge: 955
Mitglied seit: 29.08.2006
Wohnort: Frankfurt am Main
Mitglieds-Nr.: 6.217



ZITAT(Conny @ 03.02.2008 - 23:29) *
ZITAT(Thomas @ 03.02.2008 - 21:48) *
Die einzige Optimierung wäre noch, den Verzeichnisinhalt dynamisch einzulesen, dann könntest du die möglichen Bilder einfach durch die Dateien im Verzeichnis festlegen und müsstest nicht zusätzlich das Skript ändern, wenn du z. B. ein weiteres Bild anzeigen möchtest. Auch wären die Dateinamen wahlfrei.
DAS wäre sicherlich eine Optimierung!
Aber da setzt Du bei mir vllt. zuviel voraus blush.gif

Also auf die Schnelle:
QUELLTEXT
<script language="php">
  $pth = 'absoluter/Pfad/zu/den/Bildern';
  $img_names = array();
  if ($handle = opendir($pth)) {
    while (FALSE !== ($file = readdir($handle))) {
      if ($file != "." && $file != ".." && !is_dir($pth.'/'.$file) && preg_match('/\\.jpg$/',$file)) {
        $img_names[] = $file;
      }
    }
    closedir($handle);
  }
</script>
So müsstest du alle Dateien aus dem Verzeichnis $pth, die die Endung '.jpg' besitzen, im Array $img_names haben. Du kannst auch mal prüfen, ob die Funktion glob() auf deinen Systemen verfügbar ist, dann ginge es noch einfacher.

ZITAT(Conny @ 03.02.2008 - 23:29) *
ZITAT(Thomas @ 03.02.2008 - 21:48) *
Um noch eine neue Idee in den Ring zu werfen: Du könntest das Skript auch das Bild selbst zurückliefern lassen (mittels Dateiauslesen und header()).
huh.gif ?

Auch auf die Schnelle:
QUELLTEXT
<script language="php">
  $img = [zufällig erzeugter Dateiname];
  header('Content-type: image/jpeg');
  readfile(path_loc($img));
</script>

Dieses Skript kannst du dann direkt im IMG-Tag einbinden:
QUELLTEXT
<img src="pfad/zum/skript/skript.php" alt="Zufallsbild" border="0">

Den Code habe ich mir jetzt mal spontan von der Seele geschrieben wink.gif, es könnten also eventuell noch kleinere Macken drin sein, aber ich denke, die grundsätzlichen Ideen kann man erkennen.
Go to the top of the page
 
+Quote Post
Auge
Beitrag 04.02.2008 - 21:17
Beitrag #6


Anwärter auf W3.org Mitgliedschaft
*****

Gruppe: User
Beiträge: 550
Mitglied seit: 28.11.2001
Wohnort: Berlin Friedrichshain
Mitglieds-Nr.: 107



ZITAT(Thomas @ 04.02.2008 - 9:17) *
QUELLTEXT
<script language="php">
   $img = [zufällig erzeugter Dateiname];
   header('Content-type: image/jpeg');
   readfile(path_loc($img));
</script>

Den Code habe ich mir jetzt mal spontan von der Seele geschrieben wink.gif , es könnten also eventuell noch kleinere Macken drin sein ...

Die größte dürfte sein, dass der Code wegen deiner Umfassung mit <script>...</script> ohne Anpassungen auf den wenigsten Servern laufen wird. Die kompatibelste Angabe, die höchstwahrscheinlich überall funktioniert, ist <?php ... ?>. Benutzt du <script type="text/php">...</script> wirklich im produktiven Einsatz?

Tschö, Auge
Go to the top of the page
 
+Quote Post
Thomas
Beitrag 04.02.2008 - 22:08
Beitrag #7


Nachschlagewerk des Orakels
Gruppensymbol

Gruppe: Mods
Beiträge: 955
Mitglied seit: 29.08.2006
Wohnort: Frankfurt am Main
Mitglieds-Nr.: 6.217



ZITAT(Auge @ 04.02.2008 - 21:17) *
Benutzt du <script type="text/php">...</script> wirklich im produktiven Einsatz?

Nö - ich benutze <script language="php">...</script>. Und nur wenn ich kleine Code-Schnipsel einbinde, auch mal <?php ... ?>. Beides ohne Probleme. Was spricht gegen die erste Variante?
Go to the top of the page
 
+Quote Post

Beiträge in diesem Thema


Reply to this topicStart new topic
1 Besucher lesen dieses Thema (Gäste: 1 | Anonyme Besucher: 0)
0 Mitglieder:

 



RSS Vereinfachte Darstellung Aktuelles Datum: 21.09.2024 - 3:06

taschenkalender
expertise-panel IPS Driver Error

IPS Driver Error

There appears to be an error with the database.
You can try to refresh the page by clicking here