<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// Dieser Teil des Codes hat nichts mit dem Inhalt des Artikels zu tun,Machen Sie einfach ein Beispiel</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"PHP Beispiel für das Verzeichnistraversal beginnt<br>"</span></span><span>;
</span><span><span class="hljs-meta">?></span></span><span>
<hr>
</span><span><span class="hljs-meta"><?php</span></span><span>
<span class="hljs-comment">/**
* Kombiniert chdir()、opendir() Und readdir() Praktische Beispiele für die Implementierung der Verzeichnistraversal
*
* existieren PHP Mitte,操作dokumentierenUndInhaltsverzeichnis是常见需求,Besonders wenn Sie das Verzeichnis durchqueren müssen。
* chdir() Sie können das aktuelle Arbeitsverzeichnis ändern,opendir() Verwendet, um einen Verzeichnisgriff zu öffnen,
* readdir() 用于逐个读取InhaltsverzeichnisMitte的dokumentieren或子Inhaltsverzeichnis。
*
* Dieser Artikel wird ein Beispiel verabschieden,演示如何Kombiniert这三个函数实现Inhaltsverzeichnis的遍历。
*/</span>
</span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">traverseDir</span></span><span>(</span><span><span class="hljs-params"><span class="hljs-variable">$path</span></span></span><span>) {
</span><span><span class="hljs-comment">// Versuchen Sie zuerst, das Arbeitsverzeichnis zu ändern</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (!</span><span><span class="hljs-title function_ invoke__">chdir</span></span><span>(</span><span><span class="hljs-variable">$path</span></span><span>)) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Nicht in das Verzeichnis wechseln:<span class="hljs-subst">$path</span></span></span><span><br>";
</span><span><span class="hljs-keyword">return</span></span><span>;
}
</span><span><span class="hljs-comment">// Öffnen Sie das aktuelle Verzeichnis</span></span><span>
</span><span><span class="hljs-variable">$handle</span></span><span> = </span><span><span class="hljs-title function_ invoke__">opendir</span></span><span>(</span><span><span class="hljs-string">'.'</span></span><span>);
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$handle</span></span><span> === </span><span><span class="hljs-literal">false</span></span><span>) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Verzeichnishandle kann nicht geöffnet werden<br>"</span></span><span>;
</span><span><span class="hljs-keyword">return</span></span><span>;
}
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Aktuelles Verzeichnis: "</span></span><span> . </span><span><span class="hljs-title function_ invoke__">getcwd</span></span><span>() . </span><span><span class="hljs-string">"<br>"</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Der Inhalt des Verzeichnisses ist wie folgt:<br>"</span></span><span>;
</span><span><span class="hljs-comment">// 遍历InhaltsverzeichnisMitte的dokumentierenUnddokumentieren夹</span></span><span>
</span><span><span class="hljs-keyword">while</span></span><span> ((</span><span><span class="hljs-variable">$entry</span></span><span> = </span><span><span class="hljs-title function_ invoke__">readdir</span></span><span>(</span><span><span class="hljs-variable">$handle</span></span><span>)) !== </span><span><span class="hljs-literal">false</span></span><span>) {
</span><span><span class="hljs-comment">// Spezielle Verzeichnisse ignorieren . Und ..</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$entry</span></span><span> === </span><span><span class="hljs-string">'.'</span></span><span> || </span><span><span class="hljs-variable">$entry</span></span><span> === </span><span><span class="hljs-string">'..'</span></span><span>) {
</span><span><span class="hljs-keyword">continue</span></span><span>;
}
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">is_dir</span></span><span>(</span><span><span class="hljs-variable">$entry</span></span><span>)) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"[Inhaltsverzeichnis] <span class="hljs-subst">$entry</span></span></span><span><br>";
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"[dokumentieren] <span class="hljs-subst">$entry</span></span></span><span><br>";
}
}
</span><span><span class="hljs-title function_ invoke__">closedir</span></span><span>(</span><span><span class="hljs-variable">$handle</span></span><span>);
}
</span><span><span class="hljs-comment">// Beispielanruf:Angenommen, es gibt eine test_dir Inhaltsverzeichnis</span></span><span>
</span><span><span class="hljs-variable">$testPath</span></span><span> = </span><span><span class="hljs-string">'test_dir'</span></span><span>;
</span><span><span class="hljs-title function_ invoke__">traverseDir</span></span><span>(</span><span><span class="hljs-variable">$testPath</span></span><span>);
</span></span>