Posso ottenere il percorso del file PHP originariamente chiamato all'interno di un file incluso?

StackOverflow https://stackoverflow.com/questions/139794

  •  02-07-2019
  •  | 
  •  

Domanda

Diciamo che abbiamo index.php ed è memorizzato in / home / user / public / www e index.php chiama il class Foo- > bar () dal file inc / app / Foo.class.php .

Vorrei che la funzione bar nella classe Foo ottenga una sospensione del percorso / home / user / public / www in questo caso & # 8212; Non voglio usare una variabile globale, passare una variabile, ecc.

È stato utile?

Soluzione

Questo non ti porterebbe più facilmente alla directory dello script in esecuzione?

$dir=dirname(

Questo non ti porterebbe più facilmente alla directory dello script in esecuzione?

<*>SERVER["SCRIPT_FILENAME"])

Altri suggerimenti

Puoi usare debug_backtrace per guardare il percorso di chiamata e ottenere il file che chiama questa funzione.

Un breve esempio:

class Foo {
  function bar() {    
   $trace = debug_backtrace();
   echo "calling file was ".$trace[0]['file']."\n";
  }
}

getcwd () ottiene la directory di lavoro corrente

Può essere modificato per una serie di motivi da moduli di terze parti, include o persino il proprio codice emettendo un chdir () .

debug_backtrace () come suggerito Devon è la risposta che stai cercando.

Trovato. getcwd ().

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top