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

$_SERVER['DOCUMENT_ROOT'] 

devoluciones

 /usr/local/apache/htdocs/ 

hay una manera de obtener

 /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. La secuencia de comandos debe guardar los archivos cargados en una carpeta dentro del directorio public_html (decir imágenes). En otras palabras, digamos que mi archivo es test.php y la ruta a él 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 la ruta

 /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?

algo que encontré hoy, después de leer esta pregunta y continuar en mi googlesurf:

https://docs.joomla.org/How_to_find_your_absolute_path

  

funciona para mi

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

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

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

Siempre que desee cualquier tipo de información de configuración, puede usar phpinfo() .

ponga cualquier archivo en los directorios que deseaba 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 dir de php es

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

por lo que $ pathToRoot será

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

¿Es este el que quieres?

Por curiosidad, ¿por qué no utilizas la URL de dicha carpeta?

http://www.misitio.es/imágenes

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

con la función preg_replace para encontrar la ruta absoluta desde __FILE__ que puede encontrar fácilmente con cualquier usuario doméstico. Aquí corto mi código:

$ path_image_you_want = preg_replace (‘# / public_html /([^/]+?)/.*#’, ‘/ public_html / $ 1 / images “, __FILE__ );

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

  

También puede usar dirname en dirname para llegar a donde quiere 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 siempre están en wp-content/plugins/

Espero que esto ayude a alguien.