elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recopilación Tutoriales y Manuales Hacking, Seguridad, Privacidad, Hardware, etc


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  ¿Cómo usar include() así?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ¿Cómo usar include() así?  (Leído 2,101 veces)
Cergath


Desconectado Desconectado

Mensajes: 340



Ver Perfil
¿Cómo usar include() así?
« en: 12 Mayo 2015, 01:07 am »

Hola,

Estoy haciendo una plantilla básica para una demo, y tengo múltiples páginas, por lo que necesito ir alternando entre diferentes casos dependiendo de la página que se tenga abierta.

La lógica del asunto es que en la página que tiene los contenidos a incluir (digamos archivo.php), iba como "caso 1: muestra tal, caso 2: muestra tal"... Y en las páginas que incluyen ese archivo, va como "si caso 1, entonces incluir archivo.php caso 1", "si caso 2, entonces incluir archivo.php en caso 2"

Lo del condicional bueno, podría ser cualquier cosa, pero ¿existe un parámetro en el include para incluir solo un caso del archivo?


En línea

xiruko


Desconectado Desconectado

Mensajes: 438


Ver Perfil
Re: ¿Cómo usar include() así?
« Respuesta #1 en: 12 Mayo 2015, 01:53 am »

No te acabo de entender, pero bueno te dejo dos opciones por si es alguna de ellas:

1.

caso_A.php
Código
  1. echo "A!";

caso_B.php
Código
  1. echo "B!";

main.php
Código
  1. $caso = 1;
  2. if ($caso == 1) include('caso_A.php'); else include('caso_B.php'); // se mostrará 'A!'

2.

caso_A.php
Código
  1. echo ($caso == 1) ? 'Caso == 1!' : 'Caso != 1';

main.php
Código
  1. $caso = 1;
  2. include('caso_A.php'); // se mostrará 'Caso == 1!'

Saludos!


En línea

Cergath


Desconectado Desconectado

Mensajes: 340



Ver Perfil
Re: ¿Cómo usar include() así?
« Respuesta #2 en: 12 Mayo 2015, 02:00 am »

Hola,

Oh, es como caso 2... Lo que quiero es ciertamente ahorrar en cantidad de archivos... Por lo que sería caso dos. Necesito es hacer esto:

Incluir ciertos <scripts /> y <link rel="stylesheet" /> en el footer y header (respectivamente) dependiendo de en qué pagina se encuentra.

El condicional es irrelevante, tal vez con $_SERVER['PHP_SELF'] ¿verdad?, pero bueno, lo que necesito saber es cómo puedo crear esto:

Archivo1.php contiene toooodos los casos, es decir, tooodos los scripts y estilos posibles, discriminados por casos, claro está.

index.php, calendario.php, perfil.php, etcétera, que hagan un include() (supongo yo, no sé), de Archivo1.php pero únicament en el caso que le corresponda, ¿es posible?
En línea

xiruko


Desconectado Desconectado

Mensajes: 438


Ver Perfil
Re: ¿Cómo usar include() así?
« Respuesta #3 en: 12 Mayo 2015, 02:12 am »

Sí, claro que es posible. Piensa que el include equivale a copiar-pegar el contenido del archivo incluído en el archivo en el que uses la directiva. Lo más sencillo para lo que pides sería usar un switch con $_SERVER['PHP_SELF'], aunque ten en cuenta que éste devuelve la ruta completa del archivo y no solo su nombre. Por ejemplo, si estás en www.dominio.com/articulos/articulo.php, eso te devolvería articulos/articulo.php.

Y bueno, yo más que incluirlo absolutamente todo en un archivo, haría más bien dos. Un header.php, que tenga los estilos, las meta tags, etc. de cada uno de los demás archivos según un switch, y un footer con más de lo mismo.

Edito: Para decir que separar el contenido en archivos es gratis, y a la hora de depurar suele ser más fácil que encontrarte absolutamente todas las funciones y demás en un solo archivo. Esto que comentas está bien para el header y el footer, pero yo suelo ser más partidario de hacer un archivo para cada cosa (por ejemplo, uno con todas las funciones para enviar distintos tipos de emails, otro para la clase que maneja la BBDD, otro para el ajax de cada sección, etc) más que juntar muchas cosas distintas en el mismo tiesto. Pero bueno, eso ya es gusto personal.

Saludos!
« Última modificación: 12 Mayo 2015, 02:17 am por xiruko » En línea

Cergath


Desconectado Desconectado

Mensajes: 340



Ver Perfil
Re: ¿Cómo usar include() así?
« Respuesta #4 en: 12 Mayo 2015, 02:54 am »

Oh, sí, sí, yo separé eso en dos archivos, como mínimo.

No es un script como tal, sino que cada página llama casi que a un plugin js o estilo diferente, así que tener un archivo para cada uno sería tan complicado que para esa gracia creo páginas estáticas en html, jajaja...

Switch, eso me serviría para cada script o estilo!, pero, ¿cómo hago el include de la página que lo incluye? :xD no tengo idea

Código
  1. if ($_SERVER['PHP_SELF'] == 'index.php') {
  2. include(???incluir script en particular del archivo archivo.php¿¿¿)
  3. }
En línea

poco_digo

Desconectado Desconectado

Mensajes: 8


Ver Perfil
Re: ¿Cómo usar include() así?
« Respuesta #5 en: 12 Mayo 2015, 20:10 pm »

En PHP hay una forma de averiguar desde que script *.php se ha invocado a una funcion.
Esto lo puedes usar para crear condicionales dentro de la función, y tomar decisiones dependiendo del origen de la llamada. Este dato PHP lo guarda en una vairable de sistema y lo usa return para volver al origen de la llamada.

Salu2
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines