hi,
Also mal weiter im Text. Ein bisserl dümmer kann ich sicher noch aussehen. ;-)
Immerhin hast du es zum laufen gekriegt, ist doch schon mal was ;)
$dir = './galerien';
$files = scandir($dir, 1);
/*
Hier wird $_Liste initialisiert, damit später mit dem '.=' dieser Variable Werte angehangen werden
können -- wenn du in der schleife das Punkt vor dem '=' wegmachst, siehst du, was ich meine
*/
$_Liste = '';
/*
Hier sagen wir der Schleife, wie wir das Array gerne hätten
Das ist ein einfaches Array mit jeweils Key und Value, also
array($_Schluessel => $_Wert);
In der Schleife können wir dann bei jedem durchlauf auf jeweils Key und Value zugreifen,
und wenn du eins nicht möchtest, dann lässt du es einfach weg ;)
Foreach sagt Quasi: durchlaufe(Array als Schlüssel und Key)
und so stehen die Werte dann in der Schleife zur verfügung
*/
foreach($files as $_Schluessel => $_Wert) // das muss so bleiben, damit die Schleife arbeiten kann
{
// Die Schlüssel brauchen wir hier nicht, die legt PHP Intern an, damit die Werte
// eindeutig identifizierbar sind
$_Liste .= sprintf('<li><a href="/%s/%2$s">%2$s</a></li>' . "\n"
, $dir // ersetzt %s zwischen den '/'
, $_Wert // ersetzt die zwei '%2$s'
);
}
echo $_Liste;
- $_Liste = ''; gibt es ausschließlich, damit man hinterher $_Liste
nutzen kann? Bewirkt '' irgendwas?
Nein, das bewirkt nichts, die Variable wird lediglich initialisiert -- aber man kann im Script beim echo-Aufuf prüfen, ob Liste Leer ist, wenn ja, dann gibt es eine Fehlermeldung.
- Ich verstehe auch nach x-fachem Lesen des Abschnitts in selfphp nicht,
was $_Schluessel = (oder =>) $_Wert mir sagen sollen/wollen?
Das ist einfach nur eine zuweisung des Wertes zu einem Schlüssel:
array($_Schluessel => $_Wert)
ist Quasi das gleiche wie
array('Name' => 'Malcolm')
Lass dich nit vom '=>' beirren, dass gehört einfach zum Array.
Du kannst auch ein array so schreiben: array('Mann','Frau','Kind','Tier');
- Im Ergebnis habe ich aber vor allem in dem Array jeweils eine
"Nummerierung" (das ist bestimmt mehr als das, aber was?),
Durch die Nummerierung wird jeder Wert im Array identifizierbar, so kannst du auch ohne schleife auf die Werte (sofern dir die Schlüssel bekannt sind) zugreifen, nehmen wir mal als Beispiel:
$_myfirstarray = array(
0 => 'schwarze'
,1 => 'Piste'
,2 => 'Fotograf'
);
echo $_myfirstarray[1]; // gibt 'Piste' aus
wenn ich den Array durch scandir erhalte und ihn nicht händisch vorher herstelle.
Was macht diese "Nummerierung" ...
Die Nummerierung durch scandir() nimmt PHP vor, die ist Ok und gewollt, du musst den Schlüssel nur aus der Schleife raushalten, s. O.
mfg
--