Aktueller Standort: Startseite> Neueste Artikel> Wenn die Funktion PHP RealPath und DirName zusammen verwendet wird, wie kann man den absoluten Pfad zum Verzeichnis, in dem sich die Datei befindet, genau erhalten?

Wenn die Funktion PHP RealPath und DirName zusammen verwendet wird, wie kann man den absoluten Pfad zum Verzeichnis, in dem sich die Datei befindet, genau erhalten?

gitbox 2025-10-01
<span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// Nichts mit dem Inhalt des Artikels zu tunPHPCodebeispiel</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Dies ist ein nicht verwandter TeilPHPCode,Wird verwendet, um die Artikeltrennung zu demonstrieren。"</span></span><span>;
</span><span><span class="hljs-meta">?&gt;</span></span><span>

&lt;hr&gt;

PHPIn Dateioperationen,Oft müssen Sie den absoluten Weg zum Verzeichnis erreichen, in dem sich die Datei befindet,Für nachfolgende Lesen oder Schreibvorgänge。`</span><span><span class="hljs-title function_ invoke__">realpath</span></span><span>()`Und`</span><span><span class="hljs-title function_ invoke__">dirname</span></span><span>()`Sie sind zwei sehr praktische Funktionen in dieser Art von Szenario,Sie haben jeweils ihre eigenen Verwendung,但搭配使用可以更加精确Und安全地获取文件路径。

</span><span><span class="hljs-comment">### 1. `dirname()`Funktion</span></span><span>

`</span><span><span class="hljs-title function_ invoke__">dirname</span></span><span>()`Das übergeordnete Verzeichnis, das verwendet wurde, um den Dateipfad zu erhalten。Die grundlegende Nutzung ist wie folgt:

```php
</span><span><span class="hljs-variable">$filePath</span></span><span> = </span><span><span class="hljs-string">"/var/www/html/index.php"</span></span><span>;
</span><span><span class="hljs-variable">$dirPath</span></span><span> = </span><span><span class="hljs-title function_ invoke__">dirname</span></span><span>(</span><span><span class="hljs-variable">$filePath</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$dirPath</span></span><span>; </span><span><span class="hljs-comment">// Ausgabe: /var/www/html</span></span><span>
</span></span>

Wenn der Pfad mehrstufige Verzeichnisse enthält, können Sie die zurückgegebene Hierarchie durch den zweiten Parameter angeben:

 <span><span><span class="hljs-variable">$dirPath</span></span><span> = </span><span><span class="hljs-title function_ invoke__">dirname</span></span><span>(</span><span><span class="hljs-variable">$filePath</span></span><span>, </span><span><span class="hljs-number">2</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$dirPath</span></span><span>; </span><span><span class="hljs-comment">// Ausgabe: /var/www</span></span><span>
</span></span>

Beachten Sie, dass DirName () einen relativen Pfad oder das Parsen -übergeordnete Verzeichnis im ursprünglichen Pfad zurückgibt, wodurch nicht überprüft wird, ob der Pfad wirklich existiert.

2. RealPath () Funktion

RealPath () wird verwendet, um den Weg in einen absoluten Weg zu analysieren und die symbolische Verbindung zu analysieren . und .. , während sie überprüfen, ob der Weg tatsächlich existiert. Beispiele sind wie folgt:

 <span><span><span class="hljs-variable">$path</span></span><span> = </span><span><span class="hljs-string">"./test/../index.php"</span></span><span>;
</span><span><span class="hljs-variable">$absolutePath</span></span><span> = </span><span><span class="hljs-title function_ invoke__">realpath</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-variable">$absolutePath</span></span><span>; </span><span><span class="hljs-comment">// Ausgabe绝对路径,Zum Beispiel: /var/www/html/index.php</span></span><span>
</span></span>

Wenn der Pfad nicht existiert, gibt RealPath () false zurück.

3.. Verwenden Sie es, um den absoluten Pfad zum Verzeichnis zu erhalten, in dem sich die Datei befindet

Um sicherzustellen, dass der erhaltene Verzeichnispfad sowohl genau als auch absolut ist, können Sie die beiden kombinieren:

 <span><span><span class="hljs-variable">$file</span></span><span> = </span><span><span class="hljs-string">"./test/../index.php"</span></span><span>;
</span><span><span class="hljs-variable">$absoluteDir</span></span><span> = </span><span><span class="hljs-title function_ invoke__">dirname</span></span><span>(</span><span><span class="hljs-title function_ invoke__">realpath</span></span><span>(</span><span><span class="hljs-variable">$file</span></span><span>));
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$absoluteDir</span></span><span>; </span><span><span class="hljs-comment">// Ausgabe: /var/www/html</span></span><span>
</span></span>

Der Prozess hier ist:

  1. RealPath ($ file) konvertiert den Dateipfad in den realen absoluten Pfad.

  2. DirName () erhält dann das übergeordnete Verzeichnis vom absoluten Pfad.

Diese Methode kann sicherstellen, dass der Verzeichnispfad, den Sie erhalten , ein absoluter Weg ist und Fehler vermeiden, die durch den relativen Pfad verursacht werden können.

4. Verwenden Sie Szenarien

  • Wenn Sie Dateien dynamisch laden oder Dateien enthalten, müssen Sie sicherstellen, dass der Pfad korrekt ist.

  • Speichern Sie das Protokoll und speichern Sie die Datei in demselben Verzeichnis wie die Skriptdatei.

  • Vermeiden Sie die Pfadverwirrung, wenn Sie über Plattformen hinweg bereitstellen.

5. Zusammenfassung

  • DirName () : Holt das übergeordnete Verzeichnis und kann die Hierarchie angeben.

  • RealPath () : Parvert in einen absoluten Weg, der wirklich existiert.

  • Gekoppelte Verwendung: Verwenden Sie zuerst RealPath (), um sicherzustellen, dass der Pfad wirklich existiert, und verwenden Sie dann DirName (), um das Verzeichnis zu erhalten, in dem er sich befindet.

Diese Nutzungskombination ist eine der Best Practices für die Bearbeitung von Dateipfaden in PHP -Projekten.

 <span><span><span class="hljs-comment">// 尾部示例Code</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Ende des Artikelbeispiels"</span></span><span>;
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>