jam Posted October 19, 2005 Report Share Posted October 19, 2005 Man ir folderis ar failiem 1-blabla_22.txt 2-blabla_33.txt 3_bum_4.txt utt Kods, lai attīrītu faila nosaukumus no .txt, aizvietotu _ ar ' ' un sākumu novāktu nost, izskatās šādi: $dir = "f:\\txt\\"; if ($handle = opendir($dir)) { while (false !== ($file = readdir($handle))) { if ($file != "." && $file != "..") { $plname = substr($file, 0, strrpos($file, '.')); $plname = substr($plname, strrpos($plname, '-')+1); $plname = strtoupper(strtr($plname, "_", " ")); $file_no_ext = substr($file, 0, strrpos($file, '.')); ?> <a href="/<?=$file_no_ext;?>/"><?=$plname;?></a></br> <? $myarray = file($dir.$file); echo $myarray[0].'<br>'; echo $myarray[1].'<br>'; echo $myarray[2]; } } } Jautājums: Vajag lai šo pāri palikušo stringu sortēšana notiek pēc tiem priekšā novietotā cipara, tb 'blabla 22' ir pirmais, 'blabla_33' ir otrais utt. fja readdir īsti tā nedara, kā rakstīts manuālī The filenames are returned in the order in which they are stored by the filesystem. Link to comment Share on other sites More sharing options...
Roze Posted October 19, 2005 Report Share Posted October 19, 2005 Failu saraksts ir jāiegāž masīvā un pēc tam ar sort() http://lv.php.net/sort vai arī glob() http://lv.php.net/glob dara jau pats to... Fiksi uzmetot kodu (pārējos repleisus ganjau pats pieliksi): <? $in = glob("*.txt"); // vai attieciigi tev glob("f:/txt/*.txt"); foreach($in as $v) { echo str_replace('.txt','',$v).'<br/>'; } ?> p.s. fja readdir īsti tā nedara, kā rakstīts manuālīThe filenames are returned in the order in which they are stored by the filesystem. failsistēmā faili nestorējas alfabētiskā secībā, bet gan pēc citiem principiem.. Link to comment Share on other sites More sharing options...
jam Posted October 20, 2005 Author Report Share Posted October 20, 2005 mja, viss jau forši kārtojas, bet faili tiek sakārtoti šādi: 1-brr_201s 10-brr_601me 11-brr_606m 12-baa_606mex 13-bee_606_m 14-buu_606_mehl 2-sii_101r 3-naa_101rx 4-saa_102 :( Link to comment Share on other sites More sharing options...
Roze Posted October 20, 2005 Report Share Posted October 20, 2005 Nu balstoties uz stringu tā arī kārtos. Risinājumi: 1) pie failu izveides ja iespējams 1 aizstāj ar 01, 02 (tb lai būtu vienāds sākuma skaitļa ciparu skaits) tad būs 01_fails.txt 02_fails. .. 10_fails.. 2) ielasot masīva var atdalīt x_ un izveidot $mas[x][fails] un pēc tam jau ar ksort($mas,SORT_NUMERIC); Link to comment Share on other sites More sharing options...
jam Posted October 20, 2005 Author Report Share Posted October 20, 2005 vot pats nevarēju par tik vnk risinajumu aizdomaties :) Link to comment Share on other sites More sharing options...
Recommended Posts