PHP mappák listázása és bennük fájl lekérése hogyan?
PHP nyelven, a "templates" mappában le szeretném kérni a benne lévő mappákat, azokat összegyűjteni lehetőleg egy tömbben és hogy hány van belőle és megnézni van-e bennük egy info.php fájl (lehetőleg a tömb elemein végig menni, ehhez kell a mappák száma).
Ezt hogyan tudnám megcsinálni?
Nem egészen érthető a leírásod, de ha jól értem, valami ilyesmit szeretnél:
$sablonok=array();
$mappalista=glob('templates/*',GLOB_ONLYDIR);
foreach($mappalista as $mappanev) {
if (file_exists($mappanev . '/info.php')) $sablonok[]=$mappanev;
}
Innen már egy count($sablonok) hívással le tudod kérni a tömb elemeinek számát ugye.
Köszönöm! Működik! :)
<?php
$sablonok=array();
$mappalista=glob('custom/templates/content/*',GLOB_ONLYDIR);
foreach($mappalista as $mappanev) {
if (file_exists($mappanev . '/info.php')) $sablonok[]=str_replace("custom/templates/content/","",$mappanev);;
}
for($i = 1; $i <= count($sablonok); $i++)
{ print $sablonok[$i-1]."<br>"; }
?>
Célszerűbb lecserélni egy részletet. Ezt:
$sablonok[]=str_replace("custom/templates/content/","",$mappanev);
erre:
$sablonok[]=basename($mappanev);
Két okból. Egyrészt olvashatóbbá, beszédesebbé válik a kód. Másrészt ha pl. megváltozik az elérési útvonala a sablonoknak, akkor nem kell két helyen is átírni. (Sok esetben az ember ilyenkor elköveti azt a hibát, hogy 3. sorban átírja a glob-nál az elérési útvonalat, lejjebb viszont már nem.)
A másik:
for($i = 1; $i <= count($sablonok); $i++)
{ print $sablonok[$i-1]."<br>"; }
Ha úgyis levonsz az indexből egyet, akkor elve miért nem úgy írod meg ciklust? Így:
for($i = 0; $i < count($sablonok); $i++)
{ print $sablonok[$i]."<br>"; }
Sőt megint rövidebb, frappánsabb, ha itt is foreach-t használsz:
foreach($sablonok as $sablon) {
print $sablon."<br>";
}
(Persze így is jó, ezek csak apróságok.)
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!