PHP - Indicar todas las rutas en un fichero

 
Vista:
sin imagen de perfil
Val: 58
Ha aumentado su posición en 2 puestos en PHP (en relación al último mes)
Gráfica de PHP

Indicar todas las rutas en un fichero

Publicado por Marta (39 intervenciones) el 27/07/2013 01:24:26
Buenas,
Me estoy liando con las rutas y me gustaría conocer la opinión de alguien que sepa más php que yo, cosa que no cuesta demasiado.
A la hora de incluir un fichero, a veces cuesta saber si hay que retroceder un nivel, dos, .... añadiendo puntos (../../). No me gusta y es problemático.
Mi intención es indicar las rutas de los directorios en un fichero e irlo incluyendo a las páginas, si bien me funcionan las imágenes, css, ... los includes o requires, no.

El fichero contiene lo siguiente:
1
2
3
4
5
6
7
$dir = "localhost/fincamps/";
	$dirIncludes = "localhost/fincamps/includes/";
	$dirImatges = "localhost/fincamps/imatges/";
	$dirLibs = "localhost/fincamps/libs/";
	$dirClass = "localhost/fincamps/class/";
	$dirCss = "localhost/fincamps/css/";
	$dirJs = "localhost/fincamps/js/";


Lo en intentando con $_SERVER["HTTP_HOST"] o $_SERVER["DOCUMENT_ROOT"]. Pero no funciona.
Me gustaría si alguien puede indicarme si voy por el buen camino o debería definir las rutas de otra forma.

Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Indicar todas las rutas en un fichero

Publicado por xx (4 intervenciones) el 27/07/2013 05:13:31
Bueno la forma en que yo lo hago y sin problemas es la siguiente, suponiendo que tu proyecto este en project y dentro de este este img carpeta con las imagenes, js carpeta con javascript de validaciones, lib con algunos archivos php de configuracion y objetos y funciones comunes
\project
\lib
\js
\img

en los archivos php dentro de \project require_once( 'lib/config.php' );
<img src='img/imagen.jpg'>
<script ... src='js/archivo.js'> y recuerda utiliza / y no \ que en windows funciona pero al transportarlo a servidores linux te daran un dolor de cabeza.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 58
Ha aumentado su posición en 2 puestos en PHP (en relación al último mes)
Gráfica de PHP

Indicar todas las rutas en un fichero

Publicado por Marta (39 intervenciones) el 27/07/2013 10:27:05
Muy buenas y gracias por tu respuesta. Vengo de la programación de ASP y estoy reescribiendo esta web que tantos dolores de cabeza me da. En ASP siempre me refería a los directorios tal como tu me indicas. Pero te pondré un ejemplo de lo que me pasa, ya que yo no encuentro solución.

Mi proyecto tiene la siguiente estructura. En el directorio raíz tengo un index.php que
deriva a un directorio o otro dependiendo del idioma.
Por lo tanto la estructura es así:
index.php
/idioma
/class
/libs
/js
/images
/includes

Dentro del fichero idioma/index.php quiero incluir el favicon que se encuentra en la carpeta images.
He probado las siguientes posibilidades, funciona la 4, cuando yo creo que debería funcionar la 2.
1.-
1
<link rel="shortcut icon" href="imatges/favicon.ico" />

apunta a:
1
localhost/dominio/idioma/index/images/favicon.ico


2.-
1
<link rel="shortcut icon" href="/imatges/favicon.ico" />

apunta a:
1
localhost/images/favicon.ico


3.-
1
<link rel="shortcut icon" href="../imatges/favicon.ico" />

apunta a:
1
localhost/dominio/idioma/images/favicon.ico


4.-
1
<link rel="shortcut icon" href="../../imatges/favicon.ico" />

apunta a:
1
localhost/dominio/images/favicon.ico


La última opción es la que realmente apunta al directorio donde se encuentra el icono.

No sé si es debido al uso del fichero .htaccess, pero a mi modo de entender debería de funcionar 2.

El fichero .htaccess es el siguiente y está dentro de la carpeta idioma.

1
2
3
4
5
6
7
RewriteEngine On
Options +FollowSymLinks
RewriteRule ^oportunitats/(.*)$		oportunitats.php?lng=$1 [L]
RewriteRule ^taxacions/(.*)$		taxacions.php?lng=$1 [L]
RewriteRule ^empresa/(.*)$		empresa.php?lng=$1 [L]
RewriteRule ^serveis/(.*)$              serveis.php?lng=$1 [L]
RewriteRule ^contacte/(.*)$		contacte.php?lng=$1 [L]


No tiene nada que ver con la duda, pero te lo explico. Me dirás que no tiene sentido el parámetro lng (idioma), cuando estoy ya dentro de la carpeta. La web la he encontrado así. Cuando me funcione, en lugar de idioma, será la carpeta base del proyecto y luego sí tendrá sentido el idioma.

Muchas gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Indicar todas las rutas en un fichero

Publicado por xx (4 intervenciones) el 29/07/2013 21:15:12
Que tal, bueno disculpa mi inexperiencia pero no tengo muchos conocimientos basado en la configuración de los .htaccess se para que son pero no lo he estudiado aun, pero prometo hacerlo en la brevedad, lo que si puedo contarte estas cosas:

No deberias utiliar posicionamiento o direccionamiento absoluto es decir eso de localhost o dominio deberia estar en una constante o varible global o session, puesto que si cambias de servidor deberias rectificar toooooodo tu codigo con el nuevo nombre o direccion IP de tu servidor.

No entiendo mucho sobre tu codigo pero por ejemplo al momento de ejecturarse un script php por ejemplo como tu dices idioma/index.php el directorio predeterminado pasa a ser precisamente dominio/idioma y si dentro de ese script tu refieres a un archivo de nivel superior (carpeta padre) deberias referirte a el con ../ (dos puntos y barra).

./ (dot slash) ->apunta al directorio actual
../ (dot dot slash) ->apunta al directorio padre
.../ (dot dot dot slash) ->apunta al directorio padre del padre jejeje y asi sucesivamente

entonces para tu caso dominio/idioma/index.php para tener un link, creo seria algo asi

<link rel="shortcut icon" href="../images/favicon.ico" />

obs: podrias investigar sobre estas funciones, dirname(), basename(), realpath(), parse_url() y lo utilizas con un trigger_error para que te muestre en que directorio esta en un determinado script donde tienes dudas.


Ahora si quieres utilizar direccionamiento absoluto deberias tener en una constante por ejemplo

__LOCALHOST__ -> "localhost" o "127.0.0.1"
__DOMAIN__ -> "dominio" o "carpeta padre o de proyecto"

echo "<link rel=... href='http://" . __LOCALHOST__ ."/". __DOMAIN__ ."/". "images/favicon.ico"' />"

saludos, ojala alguien pueda hechar mas luces al tema, yo tambien estoy viniendo de otros paradigmas y soy nuevo en PHP, pero me gusta y estoy dandole pelea.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar