Foros del Web » Programando para Internet » PHP »

<base> pero en PHP

Estas en el tema de <base> pero en PHP en el foro de PHP en Foros del Web. Hola gente mi problema es el siguiente, tengo llamados include pero necesito cambiarle la base, para que me lea las rutas a partir de un ...
  #1 (permalink)  
Antiguo 27/08/2010, 08:14
 
Fecha de Ingreso: enero-2008
Mensajes: 179
Antigüedad: 16 años, 3 meses
Puntos: 0
Pregunta <base> pero en PHP

Hola gente mi problema es el siguiente,

tengo llamados include pero necesito cambiarle la base, para que me lea las rutas a partir de un directorio que yo le espesifique. para html existe el:

<base href"www.mipagina.com/" />

pero como seria para PHP???

(el objetivo de esto es si estamos en mipagina.com/articulos/articulo.php si dentro de este archivo ago un include("precio.php") y este archivo precio se encuentra en la raiz de la pagina va a tirar error, ya se que la solucion seria hacer include("../archivo.php") pero no es solo un archivo sino que son muchos llamados y se me simplificaria todo si pudiese cambiar la base)

saludosss!!!!
  #2 (permalink)  
Antiguo 27/08/2010, 08:19
 
Fecha de Ingreso: enero-2010
Mensajes: 491
Antigüedad: 14 años, 3 meses
Puntos: 12
Respuesta: <base> pero en PHP

Espero esto te sirva.

define('JPATH_BASE', dirname(__FILE__) );
define( 'DS', DIRECTORY_SEPARATOR );
define( 'PS', '/');

$parts = explode( DS, JPATH_BASE );

// reconocemos en que servidor nos encontramos
if(explode(PS,$_SERVER['PHP_SELF']) <> ''){
$proy = explode(PS,$_SERVER['PHP_SELF']);
$proy = $proy[1];
}
$base = 'http:' . PS . PS . $_SERVER['SERVER_NAME'] . PS . $proy . PS; // servidor con dominio

a mi me funciona bien
  #3 (permalink)  
Antiguo 27/08/2010, 09:56
 
Fecha de Ingreso: enero-2008
Mensajes: 179
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: <base> pero en PHP

hola wilmer30 muy buno el codigo voy a guardarlo ;)

pero no resulve mi problema, porque tendria que modificar todos los incluides agrandole la variable $base delante de la ruta que se encuentre sentenciada.

por eso puse el ejemplo de la ertiqueta base, porque cuando se hacen todas las llamadas a los archivos css, a las imagenes, archivos js, etc, modifica el indice de donde se busca.. por ejemplo si yo estoy en /productos/archivo.html y dentro de este archivo hay una llamada a una imagen que esta en el mismo nivel que productos, inicialmente va a dar error pero si pnes la etiqueta base y le sentencias la ruta de dicho nivel va a aparecer la imagen.. esto es posible con PHP? o si o si le tengo que poner una varable a todos los includes???

saludos y garciasssss
  #4 (permalink)  
Antiguo 27/08/2010, 10:00
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: <base> pero en PHP

puedes usar simplemente ./ruta/del/archivo ... ¿no?

el ./ equivale al DOCUMENT_ROOT configurado en nuestro servidor, que es precisamente la raíz de nuestros documentos web...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 27/08/2010, 11:33
 
Fecha de Ingreso: enero-2008
Mensajes: 179
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: <base> pero en PHP

gracias pateketrueke buena solucion tambien

pero entonces si o si voy a tener que modificar todas las rutas que tengo? no hay una forma para que se refiera a otro nivel sin tocar la ruta? es decir con un codigo atras que generalize a todos? es posible? talves no lo sea o sea una funcion de php perdida XD

gracias y saludoss!!
  #6 (permalink)  
Antiguo 27/08/2010, 11:37
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: <base> pero en PHP

no, en realidad no es tan mágico como un cree... pues PHP no tiene porque adivinar nuestras rutas, eso es algo que deberías pensar con mas calma...

quizá algo que facilite en PHP es un autoloader, pero resulta siendo el mismo dilema... aún así hay que especificar al menos una ruta... ¡no esperemos a que PHP nos lea la mente!

y así fue... te sugiero que mejor hagas de forma limpia las cosas, si tienes ordenados tus archivos mejor aún...

Código PHP:
require_once './includes/funciones.php';
require_once 
'./modulos/inicio.php';

readfile('./ruta/del/archivo.txt');
// etc... 
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 27/08/2010, 11:41
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: <base> pero en PHP

Revisa la información de set_include_path
en la Documentacion de PHP

saludos!
__________________
More about me...
~ @rhyudek1
~ Github
  #8 (permalink)  
Antiguo 27/08/2010, 13:06
 
Fecha de Ingreso: enero-2010
Mensajes: 491
Antigüedad: 14 años, 3 meses
Puntos: 12
De acuerdo Respuesta: <base> pero en PHP

comparto con pateketrueke.

deberías generarte una costante de la base de tu proyecto y usar esa base para enlazar a cuarquier archivo en el transcurso de tu proyecto, por ejemplo Joomla define de esta manera sus constantes:

Código PHP:
define'JPATH_SITE',            JPATH_ROOT );
define'JPATH_CONFIGURATION',     JPATH_ROOT );
define'JPATH_ADMINISTRATOR',     JPATH_ROOT.DS.'administrator' );
define'JPATH_XMLRPC',         JPATH_ROOT.DS.'xmlrpc' );
define'JPATH_LIBRARIES',         JPATH_ROOT.DS.'libraries' );
define'JPATH_PLUGINS',        JPATH_ROOT.DS.'plugins'   );
define'JPATH_INSTALLATION',    JPATH_ROOT.DS.'installation' );
define'JPATH_THEMES'       ,    JPATH_BASE.DS.'templates' );
define'JPATH_CACHE',            JPATH_BASE.DS.'cache'); 
Donde JPATH_ROOT es la base del proyecto y todos los arvhivos hacen referencia primero a esta base y a la carpeta donde puede encontrase el JS, CSS, imágen, MP3, etc., creo que es una forma ordenada de desarrollo de sistemas web
  #9 (permalink)  
Antiguo 27/08/2010, 16:05
 
Fecha de Ingreso: enero-2008
Mensajes: 179
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: <base> pero en PHP

si pero lo que estoy haciendo no es un "proyecto" jaja es una pagina de propiedades con un pequeño ABM, pero de todas formas lo voy a tener en cuenta para trabajos grandes..

en si lo que quetria era que la ruta de todos los includes se cambien sin que las toque osea con algo antes, pero no hjajajaj hay que meter mano ^^

gracias por los comentarios.. hasta la prox

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:45.