+ HTML: Alphabetisch Ordnen (Liste)
Andavos
- php
Hallo,
ich lese ein Verzeichnis mit folgenden Script aus:
<?php
echo "
<form action=?was=edit&nun=ausgabe method=post>
<select name=id>";
$verzeichnis = dir(".");
$endung = ".php";
while($datei = $verzeichnis->read()) {
if(substr($datei,strlen($endung)*(-1)) == $endung) {
echo "<option value=$datei>$datei";
}
}
$verzeichnis->close();
echo "
</select>
<input type=Submit value=Edit>
</form>";
?>
(Ich weiß nicht ob er so Perfekt ist)
Die Ausgabe (die namen der Dateien) werden dann in so einer Liste ausgegeben (so wie das bei Themenbereich: ist, wenn man was neues Schreibt).
Aber kann ich diese Liste Alphabetisch ordnen? Denn bei mir ist das nicht so.
z.B. wenn die Datei mit C anfängt, dann sind ein paar Dateien ganz oben und ein paar ganz unten.
Aber wie kann man das Aplhabetisch Ordnen.
Hab im Archiv/Manuel leider nichts gefunden
MFG
Andavos
Hallo,
entweder du hast im falsche Manuel anchgeguckt oder nicht richtig oder auch nuur einfach überlesen.
Egal, ich hab da bei selfphp was ausfindig gemacht was dir weiter helfen könnte: http://www.selfphp.info/funktionsreferenz/array_funktionen/sort.php
Tschau
Tobias
Hallo,
wie soll ich dass denn dort einbaun?
<?php
echo "
<form action="?was=edit&nun=ausgabe" method="Post">
<select name="id">";
$verzeichnis = dir(".");
$endung = ".php";
while($datei = $verzeichnis->read()) {
if(substr($datei,strlen($endung)*(-1)) == $endung) {
sort($datei);
echo "<option value=$datei>$datei";
}
}
$verzeichnis->close();
echo "
</select>
<input type=Submit value=Edit>
</form><br><hr><br>";
?>
geht leider nicht
MFG
Andavos
Hallo,
<?php
echo "
<form action="?was=edit&nun=ausgabe" method="Post">
<select name="id">";$verzeichnis = dir(".");
$endung = ".php";
while($datei = $verzeichnis->read()) {
if(substr($datei,strlen($endung)*(-1)) == $endung) {
sort($datei);echo "<option value=$datei>$datei";
}
}
$verzeichnis->close();echo "
</select>
<input type=Submit value=Edit>
</form><br><hr><br>";
?>
Ich hab mich mit dem auslesen von Ordnern noch nicht beschäftigt. Aber ich würde so rangehen.
- in einer while-Schleife alle Dateinamen auslesen und diese in ein _ARRAY_ packen.
- auf dieses Array sort() anwenden (wenn du dir die erklärung dazu richtig durchgelesen hast, wüsstest du, dass man die Methode ein Array als übergabeparameter erwarten)
- Ausgabe mittels for-Schleife
Tschau
Tobias
Hallo,
nur noch die Frage wie ich die Dateinamen in ein Array bekomme.
Mit echo geht das ja nicht.
P.S. Hab mich damit auch noch nicht wirklich beschäftigt (Dateienauslesen)
MFG
Andavos
hi,
nur noch die Frage wie ich die Dateinamen in ein Array bekomme.
Mit echo geht das ja nicht.
gut, dass du das schon mal erkannt hast ;-)
while(...)
{
$meinarray[] = $aktueller_wert;
}
durch die eckigen klammern ohne index weiss php, dass es ein neues element ins array einfügen soll.
gruss,
wahsaga
<?php
$d = dir("./");
$x = new array();
while($entry=$d->read()) {
$x[] = $entry;
}
$d->close();
foreach($d as $datei){
echo "<option value=$datei>$datei</option>";
}
?>
selber denken/lesen macht schlau:
http://www.php.net/get/php_manual_de.chm/from/a/mirror
Hallo,
da kommt immer eine Fehlermeldung:
Parse error: parse error, unexpected T_ARRAY, expecting T_STRING or T_VARIABLE or '$' in /home/www/htdocs/rpgcommunity.de/clanwissen/kommentar_admin.php on line 148
Zeile 148 ist : $x = new array();
Script:
$d = dir("./");
$x = new array();
while($entry=$d->read()) {
$x[] = $entry;
}
$d->close();
foreach($d as $datei){
echo "<option value=$datei>$datei</option>";
}
hast du ne idee was daran falsch ist?
MFG
Andavos
Zeile 148 ist : $x = new array();
hast du ne idee was daran falsch ist?
ja, peinliche panne: das "new" muss raus, hab ich grad mit javascript verwechselt. *schäm*
$x = array();
man könnte es auch weglassen, ist aber kein sauberer stil
Hallo,
erstmal danke für deine Hilfe.
Aber so leit es mir auch tut:
Es geht nicht :(
In der Liste steht dann:
./
Resource id #5
Weißt du was jetzt falsch ist?
Script:
$d = dir("./");
$x = array();
while($entry=$d->read()) {
$x[] = $entry;
}
$d->close();
foreach($d as $datei){
echo "<option value=$datei>$datei</option>";
}
MFG
Andavos
Es geht nicht :(
oops, jetzt muss ich mich aber echt entschuldigen:
natürlich soll er nicht das verwenden, was dir() in $d zurückgibt, sondern die dateinamen, die in $x stehen.
dabei musst du aber noch die beiden einträge "." und ".." herausfiltern... ;-)
das da
|
foreach($x as $datei){
echo "<option value=$datei>$datei</option>";