Kezdőoldal » Számítástechnika » Programozás » PHP mappák listázása és...

PHP mappák listázása és bennük fájl lekérése hogyan?

Figyelt kérdés

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?



2013. nov. 16. 19:41
 1/3 2xSü ***** válasza:

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.

2013. nov. 16. 20:38
Hasznos számodra ez a válasz?
 2/3 A kérdező kommentje:

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>"; }

?>

2013. nov. 16. 20:48
 3/3 2xSü ***** válasza:

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.)

2013. nov. 17. 11:11
Hasznos számodra ez a válasz?

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!