Jump to content
php.lv forumi

sakārtot pēc faila nosaukuma


jam

Recommended Posts

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

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

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

×
×
  • Create New...