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()