2011-03-11 30 views
7

¿Hay alguna manera de convertir una URL web en la ruta absoluta del sistema de archivos (independiente del sistema operativo)?Convertir URL a la ruta del sistema de archivos

Por ejemplo: Tengo un URL /images/test.jpg (http://www.example.com/images/test.jpg) y tengo que conseguir:

  • `c: \ ruta \ a \ Webroot \ imágenes \ test.jpg`` en Windows,
  • /var/path/to/webroot/images/test.jpg en Linux.

¿Alguna forma de hacer esto en PHP?

Respuesta

5
$str = "/images/test.jpg"; 
$str = realpath("." . $str); 
+1

La idea es buena, pero debes eliminar el '/' inicial o poner un '.' delante de él. – Lekensteyn

+0

Muchas gracias, funciona. Por supuesto, tengo que usar el '.' solo si mi archivo php está en el directorio webroot, si está en un subdirectorio o si necesito' ..' – salgua

+2

El enlace manual http://php.net/manual/en/function .realpath.php –

3

Esto le dará /images/test.jpg:

$path = str_replace($_SERVER['DOCUMENT_ROOT'], '', $path) 

Dónde $_SERVER['DOCUMENT_ROOT'] le da el directorio raíz del documento en virtud del cual el script actual se está ejecutando.

Cuestiones relacionadas