Computerhilfen.de
Design und Entwicklung => Webmaster Forum & Hilfe => Thema gestartet von: Fabian Weber am 09.09.06, 12:58:37
-
HAllo zusammen... ich habe schonmal wegen diesem script gefragt aber diesesmal geht es um was anderes ...
wie kann ich bei diesem script:
<?php
$bilder=array("bild1.jpg","bild2.jpg","bild3.jpg");
mt_srand ((double)microtime()*1000000);
$zahl = mt_rand(0,(count($bilder) - 1));
echo "<img src=\"Bilder/".$bilder[$zahl]."\" width=\"200\" und height=\"150\">";
?>
statt dass ich jede bildurl angeben muss
$bilder=array("bild1.jpg","bild2.jpg","bild3.jpg");
ein Ordner angeben, bei dem alle bilder dazugehören sollten?
-
Hi |
Einfach mit chdir() ins betreffende Verzeichnis (http://www.computerhilfen.de/fachbegriffe-v-Verzeichnis.html) wechseln und dann mit glob() den Verzeichnisinhalt in ein Array einlesen.
greez 8)
JoSsiF
-
AH thanks
sorry da ich ein anfänger bin... könnte mir jemand den script posten? greez
-
Nehmen wir an, die Bilder liegen auf dem Server (http://www.computerhilfen.de/fachbegriffe-s-Server.html) im Unterverzeichnis images:
chdir('images');
$bilder = glob('*');
Wenn alles jpg-Dateien im Verzeichnis (http://www.computerhilfen.de/fachbegriffe-v-Verzeichnis.html) liegen, kannst du '*' auch mit 'jpg' ersetzen und dadurch vermeiden, dass typfremde Dateien mit ins Array geladen werden.
greez 8)
JoSsiF
-
sorry wenn ich aufrege aber würde es so stimmen:
<?php
chdir('images');
$bilder = glob('*');
mt_srand ((double)microtime()*1000000);
$zahl = mt_rand(0,(count($bilder) - 1));
echo "<img src=\"/images".$bilder[$zahl]."\" width=\"200\" und height=\"150\">";
?>
-
Denn bei mir zeigt es so eine Fehlermeldung an...
-
Ja und wie lautet die Fehlermeldung?
-
Ah sorry diese Frage war ein bisschen dumm ich habe das Verzeichnis (http://www.computerhilfen.de/fachbegriffe-v-Verzeichnis.html) nicht von images zu Bilder ersetzt
-
Nuja, passiert ;)
Wenn's dann geht, isses ja ok.
-
Aber hier habe ich nochmals ein Problem: ich möchte angeben wie Viele Bilder sich im Ordner befinden :
(Der ganze script mit dem zufallsbilder-script)
<?php
chdir("Bilder");
$bilder = glob('*');
mt_srand ((double)microtime()*1000000);
$zahl = mt_rand(0,(count($bilder) - 1));
echo "Es sind <b>$zahl</b> Bilder in diesem Ordner";
?></p>
<p><?php
chdir("Bild");
$bilder = glob('*');
mt_srand ((double)microtime()*1000000);
$zahl = mt_rand(0,(count($bilder) - 1));
echo "<img src=\"http://fabian.aweb.ch/monzuel/Bilder/".$bilder[$zahl]."\" width=\"200\" und height=\"150\">";
?><br />
Ordner zwei <br />
<?php
chdir("Bild");
$bilder = glob('*');
mt_srand ((double)microtime()*1000000);
$zahl = mt_rand(0,(count($bilder) - 1));
echo "In diesem Ordner sind <b>$zahl</b> Bilder";
?>
jetzt kommen Fehlermeldungen ( siehe fabian.aweb.ch/monzuel/test.php (http://fabian.aweb.ch/monzuel/test.php))
wie bekomme ich diese weg?
-
Oh je, das kann nichts werden... ;D
Bevor ich dir jetzt im Einzelnen erkläre, was warum und wie nicht funktioniert, hier das geänderte Skript:
<?php
chdir("Bilder");
$bilder = glob('*');
$nBilder = count($bilder);
echo "Es sind <b>$nBilder</b> Bilder in diesem Ordner";
?></p>
<p><?php
mt_srand ((double)microtime()*1000000);
$zahl = mt_rand(0,(count($bilder) - 1));
echo "<img src=\"http://fabian.aweb.ch/monzuel/Bilder/".$bilder[$zahl]."\" width=\"200\" und height=\"150\">";
?><br />
Ordner zwei <br />
<?php
echo "In diesem Ordner sind <b>$nBilder</b> Bilder";
?>
Und wie immer gibt's an dieser Stelle die obligatorische Standpauke von mir, dass du dich mit den Grundlagen der Sprache auseinandersetzen solltest, wenn du sie des öfteren einzusetzen gedenkst. ;)
greez 8)
JoSsiF
-
hehe besten dank, nur was habe ich dasmal wieder falsch gemacht?
<?php
chdir("Bilder");
$bilder = glob('*');
$nBilder = count($bilder);
mt_srand ((double)microtime()*1000000);
$zahl = mt_rand(0,(count($bilder) - 1));
echo "<img src=\"http://fabian.aweb.ch/monzuel/Bilder/".$bilder[$zahl]."\" width=\"200\" und height=\"150\">";
?><br />
Ordner eins <br />
<?php
echo "In diesem Ordner sind <b>$nBilder</b> Bilder";
?> </p>
<p>
<?php
chdir("pics");
$pics = glob('*');
$npics = count($pics);
mt_srand ((double)microtime()*1000000);
$zahl = mt_rand(0,(count($pics) - 1));
echo "<img src=\"http://fabian.aweb.ch/monzuel/Bilder/".$pics[$zahl]."\" width=\"200\" und height=\"150\">";
?><br />
Ordner eins <br />
<?php
echo "In diesem Ordner sind <b>$nBilder</b> Bilder";
?>
hmm... also ich möchte nämlich zwei Zufallsbilder untereinander machen (bei denen die Bilder jeweils von einem anderen Ordner stammen) denn ich möchte nicht zweimal das selbe Bild haben ;D man merkt ... ich bin ein Anfänger ;D ???
-
also bei mir sieht es jetzt so aus:
<?php
chdir("Bilder");
$bilder = glob('*');
$nBilder = count($bilder);
mt_srand ((double)microtime()*1000000);
$zahl = mt_rand(0,(count($bilder) - 1));
echo "<img src=\"http://fabian.aweb.ch/monzuel/Bilder/".$bilder[$zahl]."\" width=\"200\" und height=\"150\">";
?><br />
Ordner zwei <br />
<?php
echo "In diesem Ordner sind <b>$nBilder</b> Bilder";
?> </td>
<td> </td>
</tr>
<tr>
<td width="40"><img src="mm_spacer.gif" alt="" width="40" height="1" border="0" /></td>
<td width="110" id="sidebar" class="smallText">
<p>
<?php
chdir("images");[/color]
$bilder = glob('*');
$nBilder = count($bilder);
mt_srand ((double)microtime()*1000000);
$zahl = mt_rand(0,(count($bilder) - 1));
echo "<img src=\"http://fabian.aweb.ch/monzuel/pics/".$bilder[$zahl]."\" width=\"200\" und height=\"150\">";
?><br />
Ordner zwei <br />
<?php
echo "In diesem Ordner sind <b>$nBilder</b> Bilder";
?>
nur... er hat Probleme damit, dass zwei mal chdir() vorkommt Siehe hier! (http://fabian.aweb.ch/monzuel/test.php)
-
Hast du dir schonmal die Fehlermeldung angeschaut? "No such file or directory" steht da. Man könnte meinen, dass der Verzeichniswechsel mit chdir() nicht erfolgreich war ;D
Zudem: beim 2. Versuch mit chdir() wechselst du ins Verzeichnis (http://www.computerhilfen.de/fachbegriffe-v-Verzeichnis.html) "images" (was an dieser Stelle scheinbar nicht existiert) und willst dann aber Bilder aus einem Verzeichnis (http://www.computerhilfen.de/fachbegriffe-v-Verzeichnis.html) "pics" ausgeben. Da stellt sich die Sinnfrage.
Nur mal als Hinweis am Rande: wenn du in ein Verzeichnis (http://www.computerhilfen.de/fachbegriffe-v-Verzeichnis.html) wechselst, dann bleibt während der Ausführungs des Skripts der Zeiger in diesem Verzeichnis. (http://www.computerhilfen.de/fachbegriffe-v-Verzeichnis.html) Wenn also "images" auf der selben Ebene liegt wie "Bilder" (vgl. Windows (http://www.computerhilfen.de/fachbegriffe-w-Windows.html) Explorer), dann musst du natürlich erstmal wieder aus "Bilder" rausgehen (mit chdir('..');).
-
Aha Thanks jetzt funzts!
;D
-
Euh! noch eine Frage... hat zwar nichts mit diesem Thama zu tun aber wie kann ich einen html (http://www.computerhilfen.de/fachbegriffe-h-HTML.html) code in einem php code ausgeben?
if ()
{
(html-code)
}
-
Du könntest just for fun mal einen Blick auf dein bisheriges Skript werfen, da wird das nämlich schon gemacht!! ::)