Funkcia scandir() vráti pole obsahujúceho súbory a adresáre v definovanom adresári. Argumentom je cesta k adresáru v podobe reťazca a voliteľným argumentom spôsob zoradenia. Ten môže mať hodnoty 0 alebo 1. Výsledok funkcie scandir() je možné spracovať napríklad cez cyklus foreach.Príklad: Definovanie zoradenia výsledku. | $result = scandir("./", 1); |
|
Pre aktuálny adresár slúži reťazec "./". Pre adresár o úroveň vyššie od aktuálneho nastavenia v adresárovej štruktúre je určený reťazec "../". Vo väčšine prípadov sa používa relatívna cesta, vďaka ktorej je projekt ľahšie premiestniteľný. Reťazce "./" a "../" vyjadrujú relatívnu cestu. Výhodou funkcie scandir() je fakt, že nie je potrebné používať handler, teda zbytočné príkazy pre získanie súborov a adresárov. Pre zistenie či položka v poli výsledkov je adresár alebo súbor slúži funkcia is_dir(). Príklad: Výpis súborov a adresárov v aktuálnom adresári. | $files = scandir("./"); | | foreach ($files as $file) { | if ($file != "." && $file != "..") { | echo $file . (is_dir($file) ? " (directory)" : " (file)") . "<br>"; | } | } |
|
V prípade, že sa nemení zoradenie súborov cez voliteľný parameter, je možné na odstránenie znaku pre aktuálny adresár . a znakov pre adresár o úroveň vyššie .., ktoré sú súčasťou výstupu funkcie scandir(), použiť funkciu array_splice(). Príklad: Aplikovanie funkcie array_splice() na výstup funkcie scandir(). | $files = scandir("./"); | array_splice($files, 0, 2); | | foreach ($files as $file) { | echo $file . (is_dir($file) ? " (directory)" : " (file)") . "<br>"; | } |
|
Uvedený zápis funkcie array_splice() odstráni z poľa $files prvé dva prvky, ktoré obsahujú znaky (. a ..).Funkcia scandir() nie je súčasťou verzie PHP 4, ale je platná až od verzie PHP5. Preto ak chce programátor pracovať s funkciou scandir(), musí mať nainštalované PHP minimálne vo verzii 5.