volver una servidor saber ruta raiz otra obtener nombre indicar entrar directorio desde como carpeta archivo absoluta php public-html

php - una - ¿Cómo obtener la ruta absoluta a la carpeta public_html?



saber directorio servidor php (9)

¿Dónde está el archivo que estás ejecutando? Si está en su carpeta html pública, puede hacer echo dirname(__FILE__);

$_SERVER[''DOCUMENT_ROOT'']

devoluciones

/usr/local/apache/htdocs/

hay una manera de conseguir

/home/user/public_html/

El problema es que tengo que escribir un script que puede estar en la carpeta public_html o en una subcarpeta de la carpeta public_html. El script debe guardar los archivos cargados en una carpeta dentro del directorio public_html (por ejemplo, imágenes). En otras palabras, digamos que mi archivo es test.php y que la ruta es

/home/user/public_html/test/test.php.

Y hay una carpeta

/home/user/public_html/images

donde los archivos cargados a través de test.php tienen que ser guardados. No sé dónde se ejecutará el archivo test.php. Por ejemplo puede estar en el camino.

/home/user/public_html/test/another-dir/test.php

¿Cómo obtengo la ruta a la carpeta de imágenes sin saber dónde estará el archivo test.php?


Asumamos que show_images.php está en images carpeta y que la raíz del sitio es public_html , por lo que:

echo dirname(__DIR__); // prints ''/home/public_html/'' echo dirname(__FILE__); // prints ''/home/public_html/images''


Con la función preg_replace para encontrar una ruta absoluta desde __FILE__ usted puede encontrar fácilmente con cualquier usuario local. Aquí corto mi código:

$ path_image_you_want = preg_replace (''# / public_html /([^/◆+?)/.*#'', ''/ public_html / $ 1 / images ", __FILE__ );


Cuando quiera cualquier tipo de información de configuración, puede usar phpinfo() .


Esto es super viejo, pero lo encontré y esto funcionó para mí.

<?php //Get absolute path $path = getcwd(); //strip the path at your root dir name and everything that follows it $path = substr($path, 0, strpos($path, "root")); echo "This Is Your Absolute Path: "; echo $path; //This will output /home/public_html/ ?>


Por curiosidad, ¿por qué no usas la url para dicha carpeta?

http://www.mysite.com/images

Suponiendo que la carpeta nunca cambie de ubicación, esa sería la forma más fácil de hacerlo.


También puedes usar dirname en dirname para llegar a donde quieres estar.

Ejemplo de uso:

Para Joomla, los módulos siempre se instalarán en /public_html/modules/mod_modulename/

Entonces, desde dentro de un archivo dentro de la carpeta del módulo, para llegar a la raíz de instalación de Joomla en cualquier servidor, podría usar: $path = dirname(dirname(dirname(__FILE__)));

Lo mismo ocurre con Wordpress, donde los complementos están siempre en wp-content/plugins/

Espero que esto ayude a alguien.



ponga cualquier archivo en los directorios que quería encontrar, en este caso, coloque ''root'' en public_html

/home/user/public_html/root <- note that ''root'' is not a folder (you can use root.txt if u want)

Y usa esta función.

function findThis($get){ $d = ''''; for($i = 0; $i < 20; $i++){//this will try 20 times recursively on upper folder if(file_exists($d.$get)){ return $d; }else{ $d.="../"; } } }

y obtén el valor llamándolo

$pathToRoot = findThis(''root'');

Y volverá, por ejemplo el directorio del script php es

/home/user/public_html/test/another-dir/test.php

por lo que el $ pathToRoot será

$pathToRoot => "../../../"

¿Es este el que quieres?