11

PHP: incluye una página dentro de otra

24 de Abril de 2009 | Etiquetas: , , | Categoría: PHP

Una de las ventajas al trabajar con archivos .php es la posibilidad de poder insertar una página dentro de otra, me explico:

Hay un menú que va a salir, el mismo, en todas las páginas que comprenden una web. Pues en lugar de copiar y pegar ese menú en todas las páginas (o crearlo desde cero en todas), lo guardamos en una página (da igual la extensión) y llamamos a ese archivo desde todas las páginas en las que queremos que se muestre. De esta forma, con una sola modificación actualizaremos el menú de todas las páginas.

Para hacer esto tenemos dos funciones en php: include () y require().

La forma de trabajar con ellas es la siguiente, la página principal (la que contenga las demás) debe tener extensión .php y el contenido a añadir debe incluirse con los siguientes código:

<?
include 'menu.html';
require ('menu.html');
?>

Aunque pensándolo bien está mal dicho “incluir una página dentro de otra” ya que lo incluimos no es una página en sí, sino una porción de ella, un trozo de código (sin cabeceras ni cuerpo del documento). Algo cómo por ejemplo, esto:

<ul>
<li>Enlace</li>
<li>Enlace</li>
</ul>

La diferencia entre estas dos funciones es que con include cuando ocurra un error en el archivo a procesar el recorrido seguirá haciendose independientemente de ese error, useasé lanzará ese error pero seguirá mostrando el contenido que siga encontrando en la página principal. Por el contrario, require, al encontrar un error detendrá toda la lectura de la página. Yo suelo usar include, aunque aconsejo usar require cuando la página a añadir sea indispensable para el buen funcionamiento / visionado de la principal.

También podéis usar require_once () e include_once (), que incluyen una página pero solamente una vez, así si no te has dado cuenta y la habías incluido ya antes, no te lo duplicará.

Esto es una de las cosas que primero se aprenden en php (por lo menos en mi caso) pero siempre viene bien recordarlas ya que nos darán mucho juego :)

Twittea esto Guardalo en Delicious Compartelo en Facebook

Articulos relacionados

Esta entrada se escribió el Viernes, Abril 24th, 2009 at 22:44 pm bajo la categoría PHP. Puedes suscribirte a los comentarios de esta entrada gracias al RSS feed. Puedes comentar, o realizar un trackback desde tu web.

11 Responses to “PHP: incluye una página dentro de otra”

  1. 1
    g0rka Says:

    Esto fue lo que me hizo dar el paso a php. Recuerdo cuando alguna de mis primeras webs hechas 100% en HTML alcanzaba un número interesante de páginas y modificarlas 1 por 1 era una pesadilla.
    Al principio, la solución fue insertar frames, pero era una auténtica guarrada.

  2. 2
    nnatali Says:

    además de verdad! que rabia me daba a mi tener q modificar lo mismo en todas las páginas.
    Ahora no hay una web que haga que no incluya estas funcioncitas..^^

  3. 3
    Include dinámico « din0saurio Says:

    [...] días leí en el blog de Natalí un artículo sobre PHP básico pero muy interesante. Trataba de como incluír una página dentro de otra usando includes. Fue con este descubrimiento (largos años atrás) cuando me decidí a a prender PHP. Hacer cambios [...]

  4. 4
    juan Says:

    ua preguntita ya que veo que le das al tema… y un include que incluya un fragmento con otro include es legal?

  5. 5
    nnatali Says:

    Hola juan!
    yo siempre lo he tomado por legal, ya que lo que importa ahí es lo que contengan tus includes..

    Un saludo!

  6. 6
    Mauricio Says:

    ¿?Como se puede hacer esto, pero sin que recargue la pagina entera, es decir, que al hacer clic en un vinculo solo recargue la parte del contenido de la pagina, como se hacia con iframes, pero sin recargar la pagina externa que tiene el menu, logo, etc..

  7. 7
    Mauricio Says:

    ..sin recargar implicaria no pasar variables por la url.. algo que tampoco quiero hacer.. Gracias!

  8. 8
    nnatali Says:

    Hola Mauricio!!

    Para eso lo mejor es Ajax, la teoría es crear una función a la que le mandemos una url (el contenido a mostrar) y un nombre (id del div en el que se mostrará), la puedes añadir a un enlace y se realizará la preparga sin recargar la página.
    Con lo que te he comentado supongo que podrás encontrar algo por internet, si no lo consigues avisame y me tomo un poco más de tiempo en explicarte mejor :)

    Un saludo!!

  9. 9
    Mauricio Says:

    muchas gracias, creo que encontre lo que me dijiste, si queres te paso la pagina de donde.. luego lo leo mas detenidamente, pero casi seguro ya entendi. Saludos!

  10. 10
    ksper Says:

    Hola! me interesó mucho esto último que están comentando, de utilizar funciones para no recargar toda la página. Recién me estoy iniciando en php y es super útil el tema de los includes, si puedieran darme una pauta de cómo buscar para aplicar los enlaces en funciones como mencionan se los agradecería.
    Desde ya saludos a todos y gracias.
    Excelente el blog, siempre encuentro cosas útiles.

  11. 11
    nnatali Says:

    Hola ksper!
    Más que con php para recargar partes de la página debes utilizar ajax (javascript), hace unos días escribí un artículo sobre ello:
    Ajax: Aprendiendo a cargar contenido en un div.

    Échale un vistazo a ver si haces una mejor idea del funcionamiento :)

    Saludos!!

Leave a Reply