Dateien in Verzeichnis sortiert einfügen
Dateien in Verzeichnis sortiert einfügen
am 08.07.2006 18:23:35 von Claudius Hubig
Hallo NG,
lese zwar erst seit einiger Zeit mit, stelle nun aber doch schon eine
erste Frage. Und zwar habe ich ein Verzeichnis ("txt") mit mehreren
Dateien (100.txt, 101.txt, 102.txt etc.). Nun möchte ich all diese
Dateien in meine index.php einfügen. Das geht mit:
$handle=opendir('txt');
while ($file = readdir ($handle)) {
if ($file != "." && $file != "..")
include ("txt/$file");
}
Schön und gut, die Dateien sind drin. Doch in keiner Weise sortiert,
weder nach dem Dateinamen noch nach dem letzten
"Ãnderungsdatum" (festgelegt über touch auf Debian).
Wie kann ich diese Dateien sortieren? Die höchste "Nummer" sollte
zuerst kommen, d. h. in diesem Falle von 102.txt absteigend zu 100.txt
am Schluss.
Leider habe ich mit PHP noch nicht all zu viel Erfahrung und würde mich
deshalb über Antworten besonders freuen.
GrüÃe,
Claudius
--
E-Mail gültig, wird aber nicht gelesen, Post an:
*remove*claudiushubig-entfernen-at+expulser+gmxDOTnet ICQ: 224491597
Jabber: opensource2017@jabber.ccc.de MSN: claudiushubig@passport.com
HTTP: x2017.homelinux.org
Re: Dateien in Verzeichnis sortiert einfügen
am 08.07.2006 18:34:10 von gregor herrmann
On Sat, 8 Jul 2006 18:23:35 +0200, Claudius Hubig wrote:
>
> $handle=opendir('txt');
> while ($file = readdir ($handle)) {
> if ($file != "." && $file != "..")
> include ("txt/$file");
> }
>
>
> Schön und gut, die Dateien sind drin. Doch in keiner Weise sortiert,
Idee:
* In deiner Schleife nicht gleich includen, sondern die Dateinamen in
einem Array speichern.
* Das Array sortieren.
* In einer zweiten Schleife durch dieses Array dann die Dateien mit
include holen.
gregor
--
.''`. http://info.comodo.priv.at/ | gpg key ID: 0x00F3CFE4
: :' : debian: the universal operating system - http://www.debian.org/
`. `' member of https://www.vibe.at/ | how to reply: http://got.to/quote/
`- NP: Tanita Tikaram: Men And Women
Re: Dateien in Verzeichnis sortiert einfügen
am 08.07.2006 19:44:26 von Joerg Behrens
Claudius Hubig schrieb:
> Hallo NG,
>
> lese zwar erst seit einiger Zeit mit, stelle nun aber doch schon eine
> erste Frage. Und zwar habe ich ein Verzeichnis ("txt") mit mehreren
> Dateien (100.txt, 101.txt, 102.txt etc.). Nun möchte ich all diese
> Dateien in meine index.php einfügen. Das geht mit:
>
>
> $handle=opendir('txt');
> while ($file = readdir ($handle)) {
> if ($file != "." && $file != "..")
> include ("txt/$file");
> }
>
>
> Schön und gut, die Dateien sind drin. Doch in keiner Weise sortiert,
> weder nach dem Dateinamen noch nach dem letzten
> "Ãnderungsdatum" (festgelegt über touch auf Debian).
>
> Wie kann ich diese Dateien sortieren? Die höchste "Nummer" sollte
> zuerst kommen, d. h. in diesem Falle von 102.txt absteigend zu 100.txt
> am Schluss.
>
> Leider habe ich mit PHP noch nicht all zu viel Erfahrung und würde mich
> deshalb über Antworten besonders freuen.
$liste = glob('*.txt');
Wie du dann das Array $liste sortierst zeigt dir
http://www.php.net/array . Dort wirst du asort() finden. Die Ausgabe
dann mit foreach().
foreach($liste as $filename){
readfile($filename);
}
Verwende include/require nur dann wenn deine Dateien PHP Code enthalten.
Wenn du nach Datum sortieren willst must du das Verzeichnis auslesen mit
dir() oder opendir() und mit einer der file*time() funktionen die Zeit
(Unix Timestamp) erfragen. Diese Infos speicherst du dann in einem Array
was du dann wiederum sortierst.
Gruss
Joerg
--
TakeNet GmbH http://www.takenet.de
97080 Wuerzburg Tel: +49 931 903-2243
Alfred-Nobel-StraÃe 20 Fax: +49 931 903-3025
Re: Dateien in Verzeichnis sortiert einfügen
am 09.07.2006 10:01:20 von Claudius Hubig
gregor herrmann wrote:
>On Sat, 8 Jul 2006 18:23:35 +0200, Claudius Hubig wrote:
>
>>
>> $handle=opendir('txt');
>> while ($file = readdir ($handle)) {
>> if ($file != "." && $file != "..")
>> include ("txt/$file");
>> }
>>
>>
>> Schön und gut, die Dateien sind drin. Doch in keiner Weise sortiert,
>
>Idee:
>* In deiner Schleife nicht gleich includen, sondern die Dateinamen in
> einem Array speichern.
>* Das Array sortieren.
>* In einer zweiten Schleife durch dieses Array dann die Dateien mit
> include holen.
>
>gregor
Super, geht, danke :)
GrüÃe,
Claudius
--
E-Mail gültig, wird aber nicht gelesen, Post an:
*remove*claudiushubig-entfernen-at+expulser+gmxDOTnet
ICQ: 224491597 Jabber: opensource2017@jabber.ccc.de
MSN: claudiushubig@passport.com HTTP: x2017.homelinux.org
Re: Dateien in Verzeichnis sortiert einfügen
am 09.07.2006 10:03:08 von Claudius Hubig
Joerg Behrens wrote:
>Claudius Hubig schrieb:
>> Hallo NG,
>>
>> lese zwar erst seit einiger Zeit mit, stelle nun aber doch schon eine
>> erste Frage. Und zwar habe ich ein Verzeichnis ("txt") mit mehreren
>> Dateien (100.txt, 101.txt, 102.txt etc.). Nun möchte ich all diese
>> Dateien in meine index.php einfügen. Das geht mit:
>>
>>
>> $handle=opendir('txt');
>> while ($file = readdir ($handle)) {
>> if ($file != "." && $file != "..")
>> include ("txt/$file");
>> }
>>
>>
>> Schön und gut, die Dateien sind drin. Doch in keiner Weise sortiert,
>> weder nach dem Dateinamen noch nach dem letzten
>> "Ãnderungsdatum" (festgelegt über touch auf Debian).
>>
>> Wie kann ich diese Dateien sortieren? Die höchste "Nummer" sollte
>> zuerst kommen, d. h. in diesem Falle von 102.txt absteigend zu 100.txt
>> am Schluss.
>>
>> Leider habe ich mit PHP noch nicht all zu viel Erfahrung und würde mich
>> deshalb über Antworten besonders freuen.
>
>$liste = glob('*.txt');
>
>Wie du dann das Array $liste sortierst zeigt dir
>http://www.php.net/array . Dort wirst du asort() finden. Die Ausgabe
>dann mit foreach().
"rsort" hat für mich besser gepasst.
>foreach($liste as $filename){
> readfile($filename);
>}
>
>
>Verwende include/require nur dann wenn deine Dateien PHP Code enthalten.
>
Brauche ich nicht, es wird einfach nach dem Dateinamen sortiert.
if (strstr($cat, '/') || strstr($cat, ':')) {
die();
}
if (!isset($cat)) {
$cat = txt; }
#Include text files
$dateien = array();
$handle = @opendir($cat);
while ($file = @readdir ($handle)) {
if ($file != "." && $file != "..")
$dateien[] = $file;
}
rsort($dateien);
foreach ($dateien as $value) {
@readfile("$cat/$value");
}
@closedir($handle);
if (!isset($value)) {
echo "Error 404 - (Noch) kein Inhalt
"; }
GrüÃe,
Claudius
--
E-Mail gültig, wird aber nicht gelesen, Post an:
*remove*claudiushubig-entfernen-at+expulser+gmxDOTnet
ICQ: 224491597 Jabber: opensource2017@jabber.ccc.de
MSN: claudiushubig@passport.com HTTP: x2017.homelinux.org