name info from file__ chdir basename php return parent filepath

info - php path to file



Consigue 2 niveles desde dirname(__FILE__) (7)

Como lo sugiere @geo, aquí hay una función de nombre de directorio mejorada que acepta un segundo parámetro con la profundidad de una búsqueda de nombre de directorio:

/** * Applies dirname() multiple times. * @author Jorge Orpinel <[email protected]> * * @param string $path file/directory path to beggin at * @param number $depth number of times to apply dirname(), 2 by default * * @todo validate params */ function dirname2( $path, $depth = 2 ) { for( $d=1 ; $d <= $depth ; $d++ ) $path = dirname( $path ); return $path; }

Nota: que @todo puede ser relevante.

El único problema es que si esta función está en una inclusión externa (por ejemplo, util.php) no puede usarla para incluir dicho archivo: B

¿Cómo puedo devolver la ruta del archivo actual, solo 2 directorios arriba?

Así que si mi URL del archivo actual está devolviendo theme/includes/functions.php

¿Cómo puedo devolver "tema /"

Actualmente estoy usando

return dirname(__FILE__)



Incluso más simple que dirname(dirname(__FILE__)); está utilizando __DIR__

dirname(__DIR__);

que funciona desde php 5.3 en.


Tarde a la fiesta, pero también puedes hacer algo como abajo, usando /../../ tantas veces como sea necesario para subir los niveles de directorio.

$credentials = require __DIR__ . ''/../App/Database/config/file.php'';

Que es el equivalente a:

$credentials = dirname(__DIR__) . ''/App/Database/config/file.php'';

El beneficio es que evita tener que anidar dirname como:

dirname(dirname(dirname(__DIR__))

Tenga en cuenta que esto se probó en un servidor IIS; no estoy seguro acerca de un servidor Linux, pero no veo por qué no funcionaría.


PHP 7

return dirname(__FILE__, 2);

PHP 4 y superior

return dirname(dirname(__FILE__));

Con PHP7 puede aumentar el árbol de directorios especificando el parámetro de niveles, mientras que PHP pre-7 requerirá un mayor anidamiento de la función dirname .

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


[ web root ] / config.php [ admin ] [ profile ] / somefile.php

¿Cómo puedes incluir config.php en somefile.php? Debe usar dirname con la estructura de 3 directorios del archivo somefile.php actual.

require_once dirname(dirname(dirname(__FILE__))) . ''/config.php''; dirname(dirname(dirname(__FILE__))) . ''/config.php''; # 3 directories up to current file


require_once(dirname(__FILE__) . "/../../functions.php");