02. juni 2003 - 18:21Der er
15 kommentarer og 2 løsninger
Alfabetisk liste af filer i hoved og undermapper
Hmmmm, jeg er kørt træt i problemet :o(
Målet er et script der kan: liste alle filer fra biblioteket .php-filen ligger i plus alle andre filer i undermapper til dette bibliotek. Listen skal "kun" bestå af navnene på filerne, ikke bibliotekerne og listen skal være sorteret alfabetisk :o) det sidste er vel bare når man har sat variablen bruge sort-funktion: sort($filliste);
Jeg har kigget mange af mulighederne ud her på eksperten.dk, og alle er gode... men jeg ender altid med et script der sorterer alfabetisk alle filer og mapper i hovedmappen... Men mapper skulle ikke vises, og pågældende filer skulle være alle fra hoved-bib til sub-bibs i sub-bibs i sub-bibs, if ya know what I mean :o)
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
listen skulle være i en pærevælling, så det hele ender ud i en lang lsite af filer sorteret i alfabetisk rækkefølge uden der vises hvilke bibs de ligger i :o)
ohmish => du missede den evigt vigtige sort() (først skal alle filer i et array, men alligevel), da det jo skal være alfabetisk ;) ;) ;)
og måske du skulle lave en stop-klods så den ikke kan køre i det uendelige (ja, nogle har faktisk store harddiske, eller nyder at se hvor meget man kan snyde rekursive funktioner ;)
og husk, exp.dk er alt om viden og dårlig humor, og intet om pæne piger ;)
// now sort your array for display.. // this sort is pretty common for alphabetic or numerical $myFiles = sort($myFiles); foreach($myFiles as $value) { echo "<a href=\"demo_client/$value\">$value</a><br>\n"; }
// now sort your array for display.. // this sort is pretty common for alphabetic or numerical sort($myFiles); reset($myFiles); foreach($myFiles as $value) { echo "<a href=\"demo_client/$value\">$value</a><br>\n"; }
ohmish => nu sagde jeg jo _intet_ om pæne piger... jeg kender i hvert fald ingen pæne piger på exp.dk, som kunne falde for en person bare fordi han kan side 5 timer foran computeren og svaret på spørgsml "hvad lavede du" er "tja... eksperten"!
men husk, PHP er eng. så den vil ikke helt overkomme æ,ø,å osv... og det skal lige bygges ind i din rekursive funktion...
Morten-med-det-alt-for-fede-navn> du har da ret i mange ting. og jeg har os' svaret på nok spørgsmål for nu. men der popper hele tiden noget op i postkassen! men det ska være slut... nu ska jeg ud og finde mig en lækker php-pige der ka sige æææh-ååååh-øøøøh.
Amen, selvfølgelig meget flot i svarer så hutigt osv, men i læser altså ikke nøjagtig min problemløsninge :o(
Jeg ahr selv fundet frem til en sådan løsning, MEN: scriptet skulle endere sortere _ALLE_ filer fra mappen til subdirs fra mappen. Det gælder f.eks. filer i mappen: /hovedbib/sbdir1/subdir2/subdir3
Det gør problemet lidt komplekst da scritet selv skal hitte ud af disse bibs, ogs selvom nogle af dem er der mellemrum i navn osv. Lige så skal scriptet kunne liste filnnavne med æøå og mellemrum. Håber i forstår og vil prøve at pusle med det.
Hov, og listen må ikke indholde navnene på diverse biblioteker, _KUN_ navnene på filerne fra hovedbibliotek og underbibklioteker i en alfabetisk pærrevælling.
... er der parse-error ved: } } } ... da den ene allerede bliver afsluttet lidt før, så jeg har slettet den sidste... ovre det problem. MEN, så er der to nye problemer:
Warning: sort() expects parameter 1 to be array, null given in /.../.../.../liste.php on line 16
Warning: Invalid argument supplied for foreach() in /.../.../.../liste.php on line 19
Linie 16: sort($filer);
Linie 19: foreach($filer AS $key=>$value){
Ang. sort, er det så noget server-halløjsa der skal slåes til?, hvis ja, kna man så ikke gøre det vha. af script i dette tilfælde?
Ang. foreach, hvis ikke funktionen er korrekt og hedder foreach(), hvad hedder den så? Jeg bruger PHP Version 4.3.1
Ang. dine problemer. Jeg har rette lidt i koden og dette virker for mig. Der manglede bla. et return i function listdir($dir) <?php $Files = array(); function listdir($dir) { global $Files; $mappe = opendir($dir) or die ("mappe ikke fundet"); while($fil = readdir($mappe)) { if ($fil != "." && $fil != "..") { if ( is_dir( $dir . $fil ) ) listdir( $dir . $fil ."/");
$filer = listdir("../test/"); // den mappe du vil starte i sort($filer); foreach ($filer as $key => $value) { echo "Key: $key; Value: $value<br>\n"; } ?>
Giv du bare pointne til de 2 andre, det var dem der lavede det hårde arbejde ;) Jeg er bare glad for at kunne hjælpe.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.