")) {//læst navnet på ovennævnte mappe $ aboveDir = getcwd (); //gå tilbage til aktuelle mappe chdir ($ iCurrDir); } Else {$ aboveDir = ""; } $ DirArr = array (); $ dirArr [] = $ iCurrDir; Søgetræ (); I begyndelsen af udførelsen af koden, den aktuelle mappe er den øverste mappe, hvor scriptet er bosat. Den første sætning får den nuværende øverste mappe sti og tildeler den til variablen, $ iCurrDir. Den getcwd () funktion uden argument returnerer stien til den aktuelle arbejdsmappe. Den forælder mappe til det øverste bibliotek måske eller måske ikke eksisterer.
Dens bane er tildelt variablen, $ aboveDir. Den forælder mappe til toppen mappe ville ikke eksistere, hvis den øverste mappe er rodmappen, hvis det er tilfældet, så værdien af variablen, vil $ aboveDir være "". Den næste kodesegmentet ovenfor tildeler den relevante værdi til $ aboveDir. Efter at du har oprettelsen af array, der vil holde stierne i alle mapper fra toppen biblioteket, nedad. Efter denne skabelse redegørelse, er stien til topniveauet tildelt som det første element i arrayet. Næste i kode, du har et opkald til den rekursive funktion.
Den rekursive funktion er defineret under denne indkaldelse. Den Rekursiv funktion Dette er en skitse af den rekursive funktion: function Søgetræ () {//få navne på alle undermapper i den aktuelle mappe uden stien. //slutte navnene på de undermapper til stien til den aktuelle mappe //og sende de fuldstændige stier af de undermapper til array. //gå til det næste underbibliotek alfabetisk, som du endnu ikke har besøgt. //gå tilbage op en mappe, hvis hver undermappe til den aktuelle mappe //er blevet besøgt. } Der er fire kodesegmenter i rekursiv funktion.
For at liste de undermapper i enhver mappe, at biblioteket skal være den aktuelle mappe. Læs ovenstående funktion omrids. Den første kode segment får navnene uden stierne i den aktuelle mappe. Første gang funktionen kaldes, den ak