• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Bild "austauschen"

MarcoNeo

Neues Mitglied
Gut dann fangen wir mal an!
Ich habe folgendes Problem:
Ich möchte, per Zufall, ein bild ainzeigen lassen (das ist ja noch nicht schwer!)
Aber jetzt kommt das was ich nicht lösen kann:
Ich möchte das Bild in einem Forum anzeigen lassen (also BBcode)
Bin schon soweit:
PHP:
<?php

$Verzeichnis = "images";
 
if($Verzeichniszeiger = opendir($Verzeichnis))
{
    while($Datei = readdir($Verzeichniszeiger))
    {
        if(!is_dir($Datei))
        {
            $Dateien[] = $Datei;
        }
    }

    closedir($Verzeichniszeiger);
}

echo $Dateien[rand(0, count($Dateien)-1)];
?>

Also im "Images" lagernde Bilder werden durch zufall ausgegeben!

jetzt möchte ich das dieses bild seperat abgespeichert wird und das bild lass ich dann anzeigen (also nach meiner überlegung währe da ein cronejob von nöten oder?)

Als beispiel: http://jjgb.de/other/Minimaster/bild (ich weis zwar nicht wie er das gemacht hat aber genau das will ich auch haben!!!)

Danke im Vorraus (MarcoNeo)
 
Ich würds anders machen, sollten eigentlich auch die meisten Server unterstützen.

Duschreibst ganz normal dein PHP Script, was nach Zufall ein Bild ausgibt und zwar direkt, wenn man die PHP Datei öffnet. Sollte nicht sonderlich schwer sein.

So, nun hast du eine PHP Datei, die aussieht, als sei sie ein Bild. Damit nun auch noch Foren kapieren, dass du dort ein Bild, anstelle einer PHP Datei hast, musst du die mod_rewrite nutzen. Damit kannst du sagen, dass alle Aufrufe auf mein_bild.png z.B. auf mein_bild.php gehen, in der Adresszeile aber weiterhin noch "example.org/ordner/mein_bild.png" steht.

Dafür legst du dir eine .htaccess Datei im Ordner an, wo auch die PHP Datei liegt und schreibst folgendes rein

Code:
RewriteEngine on
RewriteRule mein_bild.png$ mein_bild.php

Somit wird eigentlich immer das PHP Script aufgerufen, was auch immernoch seine volle Funktionalität beinhaltet. Das heißt, du kannst immernoch irgendwelche Randombilder ausgeben.

Tipps hierfür:
- header("Content-Type: image/png");
- PHP: imagepng - Manual
 
Ich habe es schon mit der Mod_Rewrite methode ausprobiert:
HTML:
RewriteEngine on
RewriteRule (.*)\.jpg$ index.php
das bild wird ausgegeben (Browser) aber lässt sich nicht in Foren anzeigen!
Ich werde es jetzt mal mit der Methode probieren die du geschrieben hast (obwohl es ja eigentlich das gleiche ist, du nur direkt eine bestimmte Bild Datei angibst)
Deswegen muss ich ja ein bild haben was ich direkt angeben kann und sich halt nur serverseitig (bsp. alle 5 minuten) ändert!
 
Habe jetzt was interessantes gefunden! Das ganze als Header an den Browser zu schicken! Doch leider funktioniert das iwie nicht -.-

PHP:
<?php
$verzeichnis = opendir('images') ;
$bilder = array();
while($datei = readdir($verzeichnis)) {
//Dateiendung rausfiltern
if($datei != '.' && $datei != '..') {
$endung = substr( strrchr($datei,'.') ,1);
if ($endung == 'gif' || $endung == 'png' || $endung == 'jpg' || $endung == 'jpeg')
$bilder[] = $datei;
}
}
closedir($verzeichnis);
srand ();
$key = array_rand($bilder);
$size = getimagesize($bilder[$key]);
header("Content-type: ".$size['mime']);
echo readfile($bilder[$key]);
?>
 
Is auch nochn kleiner Fehler drin. Nimm das:

PHP:
<?

$dirname = "images"; // hier editieren

$verzeichnis = opendir($dirname) ;
$bilder = array();

while($datei = readdir($verzeichnis)) {
	if($datei != '.' && $datei != '..') 
		$endung = substr(strrchr($datei, '.'), 1);
	
	if ($endung == 'gif' || $endung == 'png' || $endung == 'jpg' || $endung == 'jpeg')
		$bilder[] = $dirname."/".$datei;
	
}

closedir($verzeichnis);
$key = array_rand($bilder);
$size = getimagesize($bilder[$key]);
header("Content-type: ".$size['mime']);
echo readfile($bilder[$key]);

?>
 
hallo!

hab diesen beitrag bei ner googlesuche gefunden... genau sowas will ich auch machen: ein bild auf das man überall verlinken kann, was sich aber jedesmal ändert.

so hab jetzt den korrigierten code von snoopy in eine php geschrieben (ohne irgendwas anderes)

dann hab ich modrewrite genutzt

RewriteEngine on
RewriteRule mein_bild.png$ mein_bild.php (mit meinen namen natürlich)

sooo:

funktioniert auch soweit. bild kann angesteuert werden, auch in nem forum und es wird auch getauscht. aber: manchmal wird auch einfach ne 0 angezeigt... wie rutscht die dazwischen?! also die kommt natürlich auch nur zufällig manchmal aber das muss ja nicht sein...

und geht das auch, dass das bildchen automatisch ein link ist? also das man da noch was in die php reinschreibt (sodass man im forum dem bild nich extra noch nen link zuordnen muss) also geht ja natürlich über das hinaus was ein bild kann... aber es ist ja eigentlich auch ne php ;)

cool wenn mir jemand weiterhelfen könnte
 
Zurück
Oben