2012-02-23 8 views
7

Czy to Sence zrobić coś podobnego

$dir = realpath(dirname(__FILE__)); 
// or for php 5.3+: 
$dir = realpath(__DIR__) 

Albo magiczne stałych jak DIR i PLIK zawsze zwraca ścieżka bezwzględna, więc realpath jest zbędny?

Odpowiedz

8

Nie potrzebujesz realpath().

Dokumentacja __FILE__:

Pełna ścieżka i nazwa pliku. Jeśli zostanie użyty wewnątrz pliku włączającego, zwrócona zostanie nazwa dołączonego pliku o nazwie . Ponieważ PHP 4.0.2, __FILE__ zawsze zawiera ścieżkę bezwzględną z rozwiązanymi dowiązaniami symbolicznymi, podczas gdy w starszych wersjach zawierała względną ścieżkę w pewnych okolicznościach.

Więc __FILE__ zwraca absolutną ścieżkę =>realpath() niepotrzebny

A jeśli używasz __DIR__:

katalogu pliku. Jeśli zostanie użyty wewnątrz pliku włączającego, zostanie zwrócony katalog z dołączonym plikiem. Jest to odpowiednik nazwy (__FILE__). Ta nazwa katalogu nie ma końcowego ukośnika , chyba że jest to katalog główny. (Dodane w PHP 5.3.0.)

__DIR__ zwraca również ścieżki bezwzględnej ponieważ dirname() nie odciąć absolutną część ścieżki __FILE__ =>realpath() niepotrzebnego

+2

Pamiętaj, że w 'realpath 'jest nadal przydatne w sytuacjach, w których wynikowy' __DIR__' lub '__FILE__' będzie użyty jako przedrostek do identyfikatora URI. Na przykład '$ include = realpath (__ DIR__. '/ Path/to/file');' Jednak jako odpowiedź opisuje użycie realpath wyłącznie z '__FILE__' lub' __DIR__' jest zbędne. – fyrye

Powiązane problemy