Ik heb een scriptje geschreven voor het uitlezen van een directory, en dat hij deze als was het windows verkenner weergeeft.
De code:
DIT IS DE WERKENDE UITEINDELIJKE CODE
EINDE WERKENDE CODE
Het probleem is dat hij een directory die in een directory staat niet uitleest. Ook niet als ik clearstatcache niet van commentaar voor zie. Wie ziet het probleem??
De code:
DIT IS DE WERKENDE UITEINDELIJKE CODE
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
| <? /* ************************************************** ************************************************** *** Dirtree V1.0 :) *** ************************************************** *** Door: Doniek Franken *** *** Email: d.franken@i-future.nl *** *** Datum: 22-01-02 *** *** Copyright: Gebruik maar wat je wilt *** ************************************************** ************************************************** */ // De javascripts benodigd voor het 'uitklappen' van de dirs echo " <script>"; echo "function expand(element,figuur) { if (element.style.display=='none'){ element.style.display=''; figuur.src='-.gif'; } else{ element.style.display='none'; figuur.src='+.gif'; } }"; // Het 'onthouden' welke span je hebt en hoe de images heten echo " var spannen = new Array; var teller = 0; var figuren = new Array; var figuurteller = 0; function addSpan(spannaam) { spannen[teller] = spannaam; teller++; } function addFigure(figuurnaam) { figuren[figuurteller] = figuurnaam; figuurteller++; } </script>"; // Ach ja, de tekst moet een lettertype hebben he echo "<font face=Arial>"; // De links voor het uitklappen en inklappen van de dirs echo " <a href='javascript:expandAll();'>[img]'-.gif'[/img]</a> All<br> <a href='javascript:collapseAll();'>[img]'+.gif'[/img]</a> All<br><br><br>"; // De functie om de dir uit te lezen function leesDir($dir,$level, $basedir) { // De extensies die je weer wilt geven, je kunt er hier zoveel neerzetten als je // wilt, zorg er alleen wel voor dat de nummering opvolgend is. $extensies[0] = ".html"; $extensies[1] = ".htm"; $extensies[2] = ".php"; $extensies[3] = ".php2"; $extensies[4] = ".php3"; $extensies[5] = ".gif"; // Het openen van de dir $rep = opendir($basedir.$dir); // Het bepalen van het aantal spaties voor het inspringen $voorzetsel = ""; for($tellertje=0;$tellertje<=$level;$tellertje++) { $voorzetsel.="&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;"; } // Het uitlezen van een dir while ($file = readdir($rep)) { // het uitgelezen mag niet gelijk zijn aan .. of aan . (.. verwijst naar // zichzelf en . naar de bovenliggende map, of andersom) if($file != '..' &amp;&amp; $file !='.'){ // controleren of het uitgelezen tekstje een dir is if (is_dir($basedir.$dir."/".$file)){ // als we een dir hebben, alle 'aparte' tekens vervangen // door nix $dirspan = str_replace("/","",$dir); $dirspan = str_replace(" ","",$dirspan); $dirspan = str_replace("^","",$dirspan); $dirspan = str_replace("%","",$dirspan); $dirspan = str_replace("$","",$dirspan); $dirspan = str_replace("#","",$dirspan); $dirspan = str_replace("@","",$dirspan); $dirspan = str_replace("!","",$dirspan); $dirspan = str_replace("&amp;","",$dirspan); $dirspan = str_replace("*","",$dirspan); $dirspan = str_replace("(","",$dirspan); $dirspan = str_replace(")","",$dirspan); $dirspan = str_replace("+","",$dirspan); $dirspan = str_replace("?","",$dirspan); $dirspan = str_replace("'","",$dirspan); $dirspan = str_replace("-","",$dirspan); $dirspan = str_replace("{","",$dirspan); $dirspan = str_replace("}","",$dirspan); $dirspan = str_replace("[","",$dirspan); $dirspan = str_replace("]","",$dirspan); $dirspan = str_replace(":","",$dirspan); $dirspan = str_replace(";","",$dirspan); $dirspan = str_replace("\"","",$dirspan); $dirspan = str_replace("<","",$dirspan); $dirspan = str_replace(">","",$dirspan); $dirspan = str_replace(",","",$dirspan); $dirspan = str_replace("~","",$dirspan); $dirspan = str_replace("`","",$dirspan); $dirspan = str_replace("=","",$dirspan); $dirspan = str_replace("|","",$dirspan); $dirspan = str_replace("\\","",$dirspan); $filespan = str_replace("/","",$file); $filespan = str_replace(" ","",$filespan); $filespan = str_replace("^","",$filespan); $filespan = str_replace("%","",$filespan); $filespan = str_replace("$","",$filespan); $filespan = str_replace("#","",$filespan); $filespan = str_replace("@","",$filespan); $filespan = str_replace("!","",$filespan); $filespan = str_replace("&amp;","",$filespan); $filespan = str_replace("*","",$filespan); $filespan = str_replace("(","",$filespan); $filespan = str_replace(")","",$filespan); $filespan = str_replace("+","",$filespan); $filespan = str_replace("?","",$filespan); $filespan = str_replace("'","",$filespan); $filespan = str_replace("-","",$filespan); $filespan = str_replace("{","",$filespan); $filespan = str_replace("}","",$filespan); $filespan = str_replace("[","",$filespan); $filespan = str_replace("]","",$filespan); $filespan = str_replace(":","",$filespan); $filespan = str_replace(";","",$filespan); $filespan = str_replace("\"","",$filespan); $filespan = str_replace("<","",$filespan); $filespan = str_replace(">","",$filespan); $filespan = str_replace(",","",$filespan); $filespan = str_replace("~","",$filespan); $filespan = str_replace("`","",$filespan); $filespan = str_replace("=","",$filespan); $filespan = str_replace("|","",$filespan); $filespan = str_replace("\\","",$filespan); // het weergeven van het figuurtje, met daarnaast de dir-naam echo $voorzetsel."[img]'+.gif'[/img] &amp;nbsp;&amp;nbsp;".$file."<br>"; // het aanmaken van een span, dit voor het uitklap effect echo "<span id='z$dirspan$filespan' style=\"display:'none'\">"; // het aanmelden van de span, zodat deze later herkent kan worden echo "<script>addSpan(z$dirspan$filespan);</script>"; // Het uitlezen van de huidige dir leesDir($dir."/".$file,$level+1,$basedir); // Het afsluiten van de span echo "</span>"; } // Als het een file betreft else { // De extensie van de file opvragen $extensie = strrchr($file,"."); // Voor elke hierboven gedefinieerde extensie controleren of // de opgevraagde extensie overeenkomt for($tellertje=0;$tellertje<count($extensies);$tellertje++) { if ($extensie == $extensies[$tellertje]) { // Het weergeven van de filenaam. Hier kan zeer makkelijk // een link toegevoegd worden, zodat je gelijk naar // de file kan 'surfen' echo $voorzetsel.$file."<br>"; } // Komt de opgevraagde extensie niet overeen met de gedefinieerde // extensies dan: else { // Hier kun je dan iets doen, of juist niets } } } } } // Het afsluiten van de dir closedir($rep); } // Het beginnen met uitlezen van de dir-structuur // leesdir("",0,De directory waar hij moet beginnen) leesDir("",0,"begindir"); // Javascript functies voor het uitklappen / inklappen van __ALLE__ mappen echo " <script> function expandAll() { for(teller=0;teller<spannen.length;teller++) { if (spannen[teller].style.display=='none'){ spannen[teller].style.display=''; figuren[teller].src='-.gif'; } } } function collapseAll() { for(teller=0;teller<spannen.length;teller++) { if (spannen[teller].style.display!='none'){ spannen[teller].style.display='none'; figuren[teller].src='+.gif'; } } } </script> <br><br><a href='javascript:expandAll();'>[img]'-.gif'[/img]</a> All<br> <a href='javascript:collapseAll();'>[img]'+.gif'[/img]</a> All"; // Het afsluiten van het font-tag echo "</font>"; // De directory-structuur is (als het goed is) weergegeven. // EINDE ?> |
EINDE WERKENDE CODE
Het probleem is dat hij een directory die in een directory staat niet uitleest. Ook niet als ik clearstatcache niet van commentaar voor zie. Wie ziet het probleem??