2012-04-03 26 views

Respuesta

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

Puede utilizar basename() llegar a la parte posterior de la ruta :)

En su caso, diría que es muy probable que busca utilizar getcwd(), dirname(__FILE__) es más útil cuando tiene un archivo que necesita incluir otra biblioteca y está incluido en otra biblioteca.

Ej:

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

en su common.php es necesario utilizar funciones en editor.php, por lo que utilizar

common.php:

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

main.php

require_once libs/common.php 

De esa manera cuando common.php es require'd en main.php, la llamada de require_once en common.php incluirá correctamente editor.php en images/editor.php en lugar de intentar buscar en el directorio actual donde se ejecuta main.php.

+4

y 'basename (__ __ DIR)' en PHP 5 – Xeoncross

+0

@Xeoncross gracias por señalarlo :) –

+0

Este soy yo dando toda la ruta . ¿Hay alguna manera de obtener solo el nombre del directorio? – Satch3000

11

Por ejemplo

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

THIS_is_the_DIR_I_Want

Un soultion que funciona:

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

El OP parece haber aceptado una respuesta a su problema. A pesar de que claramente ha agregado valor, ¿necesita ventilar sus furstrations aquí? – Dutts

+0

http://stackoverflow.com/help/formatting explicará cómo hacer que las cosas ** en negrita ** eviten el uso de mayúsculas, lo que con toda razón ha señalado denota gritos en Internet. – Dutts

7

En realidad me pareció la mejor solu n es el siguiente:

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

si su dir es www \ var \ ruta \ CURRENT_PATH

entonces esto devuelve CURRENT_PATH

+3

Tenga cuidado, en los servidores Linux no usamos barras diagonales sino barras diagonales. PHP tiene una constante mágica para hacerlo en plataforma cruzada, vea '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

Siempre que tenga PHP 5.3 o superior –

7

Para obtener únicamente el nombre del directorio donde se ejecutó el script:

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

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

libs/imágenes /index.php resultado: imágenes

+0

Esto funcionó para mí, así que voté la persona que votó sin ninguna explicación. El desbordamiento de pila tiene algunos de los usuarios más pedantes y atormentados de la red. Boooo Hisssssssssssss – warmwhisky

Cuestiones relacionadas