2012-04-03 33 views

risposta

171
getcwd(); 

or 

dirname(__FILE__); 

or (PHP5) 

basename(__DIR__) 

http://php.net/manual/en/function.getcwd.php

http://php.net/manual/en/function.dirname.php

È possibile utilizzare basename() per ottenere la parte finale del percorso :)

Nel tuo caso, direi che è più probabile cercando di utilizzare getcwd(), dirname(__FILE__) è più utile quando si dispone di un file che deve includere un'altra libreria ed è incluso in un'altra libreria.

Esempio:

main.php 
libs/common.php 
libs/images/editor.php 

nel vostro common.php è necessario utilizzare le funzioni in editor.php, in modo da utilizzare

common.php:

require_once dirname(__FILE__) . '/images/editor.php'; 

main.php

require_once libs/common.php 

In questo modo quando common.php è require'd in main.php, la chiamata di require_once in common.php includerà correttamente editor.php in images/editor.php anziché cercare nella directory corrente in cui viene eseguito il numero main.php.

+4

E 'basename (__ DIR __) 'in PHP 5 – Xeoncross

+0

@Xeoncross grazie per la segnalazione :) –

+0

Questo sono io dando l'intero percorso . C'è un modo per ottenere solo il nome della directory? – Satch3000

11

per esempio

Your Path = /home/serverID_name/www/your_route_Dir/

THIS_is_the_DIR_I_Want

Un soultion che funziona:

$url = dirname(\__FILE__); 
$array = explode('\\\',$url); 
$count = count($array); 
echo $array[$count-1]; 
+3

L'OP sembra aver già accettato una risposta al loro problema. Anche se hai chiaramente aggiunto valore, hai bisogno di sfogare le tue mitragliette qui? – Dutts

+0

http://stackoverflow.com/help/formatting spiegherà come fare le cose ** in grassetto ** evitando l'uso di caps, che hai giustamente sottolineato indica che urla su internet. – Dutts

7

In realtà ho trovato il miglior solutio n è il seguente:

$cur_dir = explode('\\', getcwd()); 
echo $cur_dir[count($cur_dir)-1]; 

se il dir è www \ var \ percorso \ Current_Path

allora questo restituisce Current_path

+3

Attenzione, nei server Linux non usiamo il backslash ma la barra. PHP ha una costante magica per renderlo multipiattaforma, vedi 'PATH_SEPARATOR' – renoirb

8
echo basename(__DIR__); will return the current directory name only 
echo basename(__FILE__); will return the current file name only 
+1

Finché hai PHP 5.3 o superiore –

7

Per ottenere solo il nome della directory dove lo script è stato eseguito:

//Path to script: /data/html/cars/index.php 
echo basename(dirname(__FILE__)); //"cars" 
0

$ myVar = str_replace ('/', '', $ _ SERVER [REQUEST_URI]);

librerie/immagini /index.php risultato: immagini

+0

Questo ha funzionato per me quindi ho votato la persona che ha votato senza alcuna spiegazione. L'overflow dello stack ha alcuni degli utenti più schifati della rete. Boooo Hisssssssssssss – warmwhisky

Problemi correlati