obtener name file__ chdir basename absoluto php dirname

name - php path to file



php cómo subir un nivel en dirname(__ FILE__) (8)

Para PHP <5.3 use:

$upOne = realpath(dirname(__FILE__) . ''/..'');

O en PHP 5.3+ use:

$upOne = realpath(__DIR__ . ''/..'');

Tengo una estructura de carpetas de la siguiente manera:

mydomain.com ->Folder-A ->Folder-B

Tengo una cadena de la base de datos que es ''../Folder-B/image1.jpg'', que apunta a una imagen en Folder-B.

Dentro de una secuencia de comandos en la Carpeta-A, estoy usando dirname ( FILE ) para obtener el nombre del archivo y obtengo mydomain.com/Folder-A . Dentro de este script, necesito obtener una cadena que diga ''mydomain.com/Folder-B/image1.jpg . Lo intenté

$path=dirname(__FILE__).''/''.''../Folder-B/image1.jpg'';

Esto aparece como mydomain.com%2FFolder-A%2F..%2FFolder-B%2Fimage1.jpg

Esto es para un botón de compartir en Facebook, y esto no logra obtener la imagen correcta. ¿Alguien sabe como obtener el camino correctamente?

Edición: espero obtener una url >>> mydomain.com% 2FFolder-B% 2Fimage1.jpg


Para Quien, se desactiva con el entorno de alojamiento compartido y aún existe la posibilidad de tener PHP actual menos de 7.0. Quién no tiene nombre de dirname( __FILE__, 2 ); Es posible usar lo siguiente.

function dirname_safe($path, $level = 0){ $dir = explode(DIRECTORY_SEPARATOR, $path); $level = $level * -1; if($level == 0) $level = count($dir); array_splice($dir, $level); return implode($dir, DIRECTORY_SEPARATOR).DIRECTORY_SEPARATOR; } print_r(dirname_safe(__DIR__, 2));


Podrías usar la función dirname de PHP. <?php echo dirname(__DIR__); ?> <?php echo dirname(__DIR__); ?> . Eso le dará el nombre del directorio principal de __DIR__ , que almacena el directorio actual.


Prueba esto

dirname(dirname( __ FILE__))

Edición: se eliminó "./" porque no es la sintaxis correcta. Sin ella, funciona perfectamente.


Puedes usar realpath para eliminar partes innecesarias:

// One level up echo str_replace(realpath(dirname(__FILE__) . ''/..''), '''', realpath(dirname(__FILE__))); // Two levels etc. echo str_replace(realpath(dirname(__FILE__) . ''/../..''), '''', realpath(dirname(__FILE__)));

En Windows también reemplaza / con / si es necesario en la URL.



Un nivel más arriba, he usado:

str_replace(basename(__DIR__) . ''/'' . basename(__FILE__), '''', realpath(__FILE__)) . ''/required.php'';

o para php <5.3:

str_replace(basename(dirname(__FILE__)) . ''/'' . basename(__FILE__), '''', realpath(__FILE__)) . ''/required.php'';


Yo uso esto, si hay una ruta absoluta (este es un ejemplo):

$img = imagecreatefromjpeg($_SERVER[''DOCUMENT_ROOT'']."/Folder-B/image1.jpg");

Si hay una imagen para mostrar, esto es suficiente:

echo("<img src=''/Folder-B/image1.jpg''>");