biz/diagrams/directory-tree.gif I praksis kan den rekursive funksjonen ikke liste opp alle undermapper i alle nivå i en fei. Jeg vil bruke katalogtreet i den åpnede Tab vinduet for å forklare hvordan rekursiv funksjon navigerer katalogtreet. Det starter med å liste opp alle underkataloger i den øverste katalogen, Dir0. Deretter går den til den nest siste (alfabetisk) underkatalog, som er Dir00. På Dir00, viser den alle underkataloger Dir00. Det vil da flytte til Dir000 katalogen (lengst til venstre - alfabetisk) katalog med håp om notering eventuelle underkataloger der.
Det vil ikke se noen underkataloger i Dir000. Det vil da komme tilbake til Dir00 og gå til Dir001, med håp om notering eventuelle underkataloger i Dir001. Det vil ikke finne noen underkataloger i D001. Det vil da gå til Dir00. På Dir00 siden det har listet opp alle underkataloger Dir00, vil det gå til Dir0. Fra Dir0 vil det gå til Dir01. På Dir01 vil det vise alle underkataloger Dir01. Fra Dir01, vil det gå til Dir010 med håp om notering eventuelle underkataloger som kan være der. Det vil ikke se noen undermappe i Dir010.
Det vil da gå til Dir01 og deretter til Dir011 med håp om å se noen underkataloger der. Det vil ikke se noen underkatalogen der. Det vil da gå tilbake til Dir01 og deretter Dir0. På Dir0 nå, det har gjort alt arbeidet, så det stopper der. Før vi skriver funksjons før vi skrive funksjonen, er det visse ting å ta hensyn til. Vi trenger å vite katalogen, om noen som er forelder til toppen katalogen. Vi skal bruke den til å hindre at rekursiv funksjon fra å gå opp forbi toppen katalogen. PHP komplett kode skriptet vil være i toppen katalogen.
Funksjonen vil ikke bokstavelig liste banene til underkataloger. Det vil sende dem inn i en matrise. Verdiene (stier) i denne matrisen kan deretter sendes til nettleseren. Vi betrakter en situasjon, der den øverste katalogen og dens underkataloger er i en webserver. Webadr