getcwd
getcwd()
Zwraca ścieżkę do bieżącego folderu roboczego, od którego liczą się ścieżki względne. Zmienić go można funkcją chdir().
Przykłady
$original = getcwd();
var_dump(is_dir($original)); // bool(true)
// zmiana folderu roboczego
chdir(sys_get_temp_dir());
file_put_contents("garth-wzgledny.txt", "x");
// ścieżka względna wskazuje teraz do folderu plików tymczasowych
var_dump(is_file(sys_get_temp_dir() . "/garth-wzgledny.txt")); // bool(true)
unlink("garth-wzgledny.txt");
chdir($original);
var_dump(getcwd() === $original); // bool(true)
// pewna ścieżka niezależna od folderu roboczego
// require __DIR__ . "/funkcje.php";
Na co uważać
- Folder roboczy zależy od tego, jak skrypt został uruchomiony. W sieci to zwykle folder głównego skryptu, w cronie albo w wierszu poleceń folder, z którego uruchomiono polecenie. Ścieżki względne prowadzą wtedy gdzie indziej.
- Ścieżki do własnych plików buduj więc z __DIR__, nie względnie.
- Dołączony plik (include) ma ten sam folder roboczy co główny skrypt, nie własny.
- W funkcjach zarejestrowanych przez register_shutdown_function() folder roboczy może być inny niż w trakcie skryptu.
Powiązane funkcje:
dirname()
realpath()
is_dir()
chdir()