Seite 4 von 5

Verfasst: 27.09.2006 17:57
von Xwitz
Ersetze "die view.php" durch "ein view.php", ein beliebiger anderer Name tut es auch, d.h. die Datei muß angelegt werden. Hauptsache am Ende wird sie da wo das Bild erscheinen soll verlinkt.

Ich wollte den Code gerade testen. Und werde den Beitrag hier dann gegebenenfalls editieren.

EDIT: Das was erst die Rettung war (der Verzeichniswechsel) war jetzt der Fehler. Also:
Eine Datei, z.B. mit dem Namen view.php, und mit folgendem Inhalt kommt in das Verzeichnis in dem die Verzeichnisse mit den Bildern drin liegen. Der Speicherort ist zwingend dieses Verzeichnis.

Code: Alles auswählen

<?php
         //Welche Bildendungen sollen erkannt werden? 
         $endungen = array("gif","jpg","jpeg","png","bmp"); 
          
          
         /****** Bilder auslesen ******/ 
         $bilder = array(); 
chdir ("."); 
$verz = opendir("."); 
while($uverz = readdir($verz)) 
{ 
if($uverz != "." && $uverz != ".." &&  is_dir($uverz)) 
{ 
$averz = opendir($uverz); 
while($datei = readdir($averz)) 
{ 
if($datei != "." && $datei != "..") 
            { 
            $datei_endung = substr( strrchr($datei,".") ,1); 
          
            //Ist die Datei-Endung in dem Array vorhanden? 
            if(in_array($datei_endung,$endungen)) 
              { 
              $datei = $uverz."/".$datei; 
              $bilder[] = $datei; 
              } 
            } 
         } 
closedir($averz); 
}} 
closedir($verz); 
          
         //Zufälliges Bild wählen 
         srand ((double) microtime() * 10000000); 
         $key = array_rand($bilder); 
          
         //Bild ausgeben: 

$endung = substr( strrchr($bilder[$key],".") ,1);
if ($endung == "jpg"){$endung = "jpeg";}
$name = substr( strrchr($bilder[$key],"/") ,1);

header("Content-Type: image/$endung");
header("Content-Disposition: attachment; filename=$name");
readfile ($bilder[$key]); 

?>
Es muß nichts angepaßt werden.

Da wo das Bild angezeigt werden soll kommt

Code: Alles auswählen

<img src="http://www.bilderdomain.de/verzeichnis/view.php" alt="">
rein. Der Pfad und eventuell der Name (view.php) muß angepaßt werden. Jetzt stimmt auch der Name beim Speichern.

PS: Den mimetype (frage mich jetzt nicht was das ist -> google.de) jpg und bmp gibt es nicht. Für jpg muß jpeg gesetzt werden (das macht der code oben) aber für bmp habe ich bei selfhtml keinen mimetype gefunden.

Laut wikipedia sollte das mit bmp aber mit den meisten Programmen so, wie es der code jetzt macht, funktionieren.
http://de.wikipedia.org/wiki/Grafikformat

War's das?

PPS: Was man vielleicht noch erwähnen sollte, die Variante zeigt auch Bilder an, die in einem Verzeichnis liegen, das mit einer .htaccess "geschützt" ist (solange die view.php nicht schon gesperrt ist, dann geht gar nix).

Verfasst: 28.09.2006 20:10
von Andavos
Ja, das wäre schön und gut, allerdings akzeptiert der einfache Webspace kein PHP, was kann man da mchen?

Verfasst: 28.09.2006 23:03
von Xwitz
Andavos hat geschrieben:was kann man da mchen?
:roll: Der eine man kann sich die ganze Arbeit, den Code zu schreiben, sparen und der andere man kann (oder auch nicht) mehr oder weniger manuell ein Array mit den Pfaden zu den Bildern erstellen und da wo php läuft einbauen.

Verfasst: 29.09.2006 10:30
von killerbees19
Nettes Script, ich habe das bei meiner Fotoseite etwas einfacher gelöst:

Code: Alles auswählen

<?php
$anzahlschnell = ceil(count(glob('*.jpg'))-1);
srand(microtime()*1000000);
$zufall = rand(0,$anzahlschnell);
?>

HTML-Teil.....

<img border="1" src="foto-<?php echo $zufall; ?>.jpg" alt="">
Dafür muss man nur Fotos mit den Namen foto-0.jpg oder andere Zahlen in den Ordner legen. Dafür muss man halt darauf achten, wie man die Bilder tauft :wink:

Aber das andere Script ist super, muss ich auch mal ausprobieren :grin:


MfG Christian

Verfasst: 29.09.2006 15:52
von Andavos
Is schon ok, gibt es auch eine Möglichkeit, eine Seite, z.B bilder.php zu machen, und wenn man die Ruft, werden automatisch alle Bilder in einem Verzeichnis aufgerufen?

Also so:

Verzeichnis/bild.png


Es wären dann noch mehr Bilder in dem Verzeichnis...

Und dann sollte, ohne das man etwas tun muss an der Seite, die Bilder erscheinen die in dem Verzeichnis gespeichert sind?

Verfasst: 29.09.2006 18:26
von Xwitz
Ja.

Verfasst: 01.10.2006 09:54
von Andavos
Äh, ja, und wie denn?

Verfasst: 01.10.2006 11:00
von Xwitz
Mit einer Schleife.

http://tut.php-q.net/

Verfasst: 01.10.2006 16:51
von Andavos
Ich kann das nicht! :cry:

Verfasst: 01.10.2006 17:09
von Xwitz
Dann lerne es, ich habe es auch nicht anders gemacht. Das was Du brauchst, kannst Du Dir locker selber aneignen.

http://tut.php-q.net/grundlagen.html Soweit bist Du vermutlich schon.
http://tut.php-q.net/schleifen.html Schleifen
http://tut.php-q.net/array.html Das wirst Du vermutlich auch noch brauchen.

Wenn Du einen Code hast der nicht funktioniert kannst Du immer noch fragen.