Hola Foreros!
Les vengo a traer un "pequeño" tutorial sobre el uso de la función include() de php.
Ayer le comenté a un usuario que podía usar este tipo de función para no tener que cambiar el mismo texto en todos los archivos, como por ejemplo, la barra de copyright.
En Php, tenemos dos formas de hacer "recursión" a un archivo externo (en otras palabras, leerlo), podemos bien usar funciones como fopen() y copiar lineas, o utilizar las funciones de inclusión: require() y include().
A pesar de que fopen() tiene usos mucho mayores, el uso de include() podría permitirnos sin complicaciones, realizar nuestra propia plantilla.
¿Porqué include y no require?
Es una pregunta importante, la diferencia principal radica en que si hay algún error, include() continúa mostrando una advertencia, y require() se detiene con un error total. Aunque en versiones anteriores esta diferencia era más grave.
Voy a explicarles como funciona include(), por cuestiones de practicidad y que hasta ahora no me produjo problemas.
Mediante include(), podemos insertar en cualquier parte de nuestro documento, otro archivo externo, ya sea .php, .txt, .htm, etc.. Recomiendo encarecidamente, que al momento de incluir los archivos, estos tengan extensión .php, no importa si el contenido es texto llano o tiene formato.
Pregunta 1:
¿Por qué mi archivo "info.php" no se incluye dentro de "miarchivo.html"?
Porque tu servidor no lo soporta, o está desactivado, normalmente se permite solo hacer un include() en archivos .php.
Solución: cambia la extensión de "miarchivo" a "miarchivo.php", es algo molesto a la hora de cambiar los links de todo el sitio, pero si continuas leyendo te darás cuenta que vas a poder hacerlo en "todo el sitio a la vez".
Pregunta 2:
¿Debo incluir sólo archivos .php?
No, pero es aconsejable, ya que incluyendo archivos .php, puedes dentro de ellos realizar tareas, como otro include().
Pregunta 3:
Escribí todo el script, en extensión .php pero no se incluye, ¿Por qué?
Lo más probable es que estés haciendo las pruebas en local, recuerda que php sólo funciona en servidores, ya sea en tu hosting, o si lo tienes instalado en tu pc.
Pregunta 4:
¿Cuándo me vas a explicar como usar include()?
Ahora, pero quería ahorrarte las dudas y el trabajo de encontrarte de que algo que no te funcione, :P.
include():
La función include() te permite incluir cualquier archivo de texto dentro de otro, por ejemplo:
Esto daría como resultado:
En este ejemplo podemos observar dos cuestiones principales, si el contenido de la página es html, hay que abrir y cerrar las etiquetas de php: "<?php y ?>", la segunda, es el método de inserción mediante: "include("celular.txt");", donde dentro de los párentesis se encuentra el nombre del archivo a incluir o la direccion completa. También se puede reemplazar los paréntesis por comillas simples, pero para evitar confusiones, dejemoslos. Ejemplos de esto último serían:
Pregunta 5:
¿Por qué utilizaste la etiqueta <b> en un .txt? ¿Acaso no es código html?
Sí, pero recordemos que lo que include hace es insertar el contenido del archivo. Por lo que el "usuario final" de la etiqueta <b> es realmente el archivo index.php.
Para ahorrar este tipo de problemas, utilicen siempre archivos .php al incluirlos, o sea:
De esta forma, dentro de "celular.php" podrán crear variables, incluir otros archivos, hacer consultas, y muchas otras cosas, que luego serán implementadas donde se haga la llamada include().
Un ejemplo algo más práctico:
Supongamos que tenemos nuestra página web:
Entonces estamos leyendo nuestro menú y nos damos cuenta que la palabra mamíferos, no tenía su tilde! Nuestra página tiene decenas de archivos con cada mamífero, habría que colocarle la tilde una por una, pasando por cada archivo, y para qué? si todos dirán lo mismo!
La solución a problemas como este, es utilizar desde el comienzo de la creacion de una web, la funcion include(). Veamos como podemos solucionar el problema de nuestro amigo:
Creamos 2 archivos, supongamos los nombramos a uno superior.php y al otro pie.php (valga la claridad).
Tenemos entonces ahora nuestro código con el div correspondiente en archivos aparte, ahora veremos como modificar nuestra página principal:
De esta forma, tenemos que, en el lugar correcto, se insertará el código correcto, quedando como antes (pero con la tilde corregida, :P):
¿Se dan cuenta de la capacidad de include()?
Este es un ejemplo algo "burdo", pero la idea es mostrar como al modificar el archivo incluido, los datos se "actualizarán" en cada página en la que se esté incluyendo,asi teniendo una web como index.php, contacto.php, informacion.php, y aplicando el método de cambiar todo un div estático por un archivo externo, al cambiar "pie.php", se verían los cambios realizados en todos nuestros archivos, ¿Me doy a entender?
Espero solamente no estar mareandolos, :P
Sé que están pensando en: "pero mi sitio tiene 26 páginas!, ¿Voy a tener que cambiar todos los links para usar esto?".
La respuesta es sí, cada uno de sus 26 archivos tendrán que ser renombrados a .php, (a menos que con suerte, su servidor soporte la inclusión dentro de archivos .html ,lo que es genial, :P ), y por ende, los links dejarán de funcionar, pero veamos la realidad:
-La mayoría de los links, se encuentran donde el contenido es estático, como menúes.
¿Cuál es la solución entonces? Si pensaron en usar un include(), van entendiendo la capacidad de esta función!
Simplemente tendrían que cambiar todos los links de su menú una vez, y colocar todo dentro de un archivo aparte, entonces ahora, borran el viejo menú de cada uno de sus 26 archivos, y es reemplazado por un hermoso <?php include("menu.php"); ?>, De esta forma, al necesitar agregar un nuevo elemento, no tendrán mas que modificar sólo el archivo "menu.php", y el cambio se vería reflejado en toda la página. ¿No es genial? Si! :D
Así, pueden crear plantillas para su sitio de manera muy completa y sencilla, realizando includes a cada una de las secciones de la página que se mantenga igual en todas las páginas.
Pero el poder de un include() no muere ahí, ¿Recuerdan que les pedí que utilizaran archivos .php como "menu.php"?
Ahora metámonos dentro de este supuesto archivo menu.php.
Podemos ver entonces que dentro de nuestro archivo, utilizamos una variable, esta variable, será cargada una sóla vez, y estará disponible en todo el sitio, ¿Se comprende? Veamos un ejemplo:
Lo cual quedaría como:
Entonces, ¿Podemos incluir un archivo con mucha información y utilizarla donde lo necesitemos? Si!
Y esto tiene múltiples usos, como por ejemplo pasar urls largas que se utilicen seguido, fragmentos de texto, codigos de colores, etc.
Bueno, no quiero seguir haciendoles leer, esto se hizo mucho más largo de lo que creía, xD y el tema dá para mucho más, y siempre podrán encontrar más informacion en la web, y que mejor que leer el articulo de quienes inventaron el include():
http://php.net/manual/es/function.include.php
Espero les haya resultado útil, puedan aplicarlo, y les haya gustado, el artículo fue escrito en su totalidad por mí, Jeremias Ramirez, AKA Jeremas, pueden copiarlo, venderlo, imprimirlo y quemarlo si lo desean, pero coloquen este post como fuente, ;)
Cualquier cosa, no duden en preguntar, que trataré de responder a sus dudas. Si hay errores en el texto, sepan disculpar y márquenmelo, que lo editaré.
Gracias por leer!
Les vengo a traer un "pequeño" tutorial sobre el uso de la función include() de php.
Ayer le comenté a un usuario que podía usar este tipo de función para no tener que cambiar el mismo texto en todos los archivos, como por ejemplo, la barra de copyright.
En Php, tenemos dos formas de hacer "recursión" a un archivo externo (en otras palabras, leerlo), podemos bien usar funciones como fopen() y copiar lineas, o utilizar las funciones de inclusión: require() y include().
A pesar de que fopen() tiene usos mucho mayores, el uso de include() podría permitirnos sin complicaciones, realizar nuestra propia plantilla.
¿Porqué include y no require?
Es una pregunta importante, la diferencia principal radica en que si hay algún error, include() continúa mostrando una advertencia, y require() se detiene con un error total. Aunque en versiones anteriores esta diferencia era más grave.
Voy a explicarles como funciona include(), por cuestiones de practicidad y que hasta ahora no me produjo problemas.
Mediante include(), podemos insertar en cualquier parte de nuestro documento, otro archivo externo, ya sea .php, .txt, .htm, etc.. Recomiendo encarecidamente, que al momento de incluir los archivos, estos tengan extensión .php, no importa si el contenido es texto llano o tiene formato.
Pregunta 1:
¿Por qué mi archivo "info.php" no se incluye dentro de "miarchivo.html"?
Porque tu servidor no lo soporta, o está desactivado, normalmente se permite solo hacer un include() en archivos .php.
Solución: cambia la extensión de "miarchivo" a "miarchivo.php", es algo molesto a la hora de cambiar los links de todo el sitio, pero si continuas leyendo te darás cuenta que vas a poder hacerlo en "todo el sitio a la vez".
Pregunta 2:
¿Debo incluir sólo archivos .php?
No, pero es aconsejable, ya que incluyendo archivos .php, puedes dentro de ellos realizar tareas, como otro include().
Pregunta 3:
Escribí todo el script, en extensión .php pero no se incluye, ¿Por qué?
Lo más probable es que estés haciendo las pruebas en local, recuerda que php sólo funciona en servidores, ya sea en tu hosting, o si lo tienes instalado en tu pc.
Pregunta 4:
¿Cuándo me vas a explicar como usar include()?
Ahora, pero quería ahorrarte las dudas y el trabajo de encontrarte de que algo que no te funcione, :P.
include():
La función include() te permite incluir cualquier archivo de texto dentro de otro, por ejemplo:
index.php
___________________
<html>
Soy el contenido principal, puedes llamarme al numero <?php include("celular.txt"); ?>.
</html>
___________________ celular.txt
___________________
<b>123 456 789</b>
___________________Esto daría como resultado:
index.php
___________________
<html>
Soy el contenido principal, puedes llamarme al numero <b>123 456 789</b>.
</html>
___________________En este ejemplo podemos observar dos cuestiones principales, si el contenido de la página es html, hay que abrir y cerrar las etiquetas de php: "<?php y ?>", la segunda, es el método de inserción mediante: "include("celular.txt");", donde dentro de los párentesis se encuentra el nombre del archivo a incluir o la direccion completa. También se puede reemplazar los paréntesis por comillas simples, pero para evitar confusiones, dejemoslos. Ejemplos de esto último serían:
include ("../celular.txt");
include 'celular.txt';
include ("datos/celular.txt");Nótese que no importa la ruta del archivo, si la existe, será incluido.Pregunta 5:
¿Por qué utilizaste la etiqueta <b> en un .txt? ¿Acaso no es código html?
Sí, pero recordemos que lo que include hace es insertar el contenido del archivo. Por lo que el "usuario final" de la etiqueta <b> es realmente el archivo index.php.
Para ahorrar este tipo de problemas, utilicen siempre archivos .php al incluirlos, o sea:
index.php
___________________
<html>
Soy el contenido principal, puedes llamarme al numero <?php include("celular.php"); ?>.
</html>
___________________De esta forma, dentro de "celular.php" podrán crear variables, incluir otros archivos, hacer consultas, y muchas otras cosas, que luego serán implementadas donde se haga la llamada include().
Un ejemplo algo más práctico:
Supongamos que tenemos nuestra página web:
___________________index.php
<html>
<body>
<div id="superior">
<div id="cabecera">
Mi página de animales
</div>
<div id="menu">
Reptiles-Anfibios-Mamiferos
</div>
</div>
<div id="artículo">
Artículo muy interesante sobre ballenas azules
</div>
<div id="pie">
<div id="copy">
Copyright 2012, Jeremias Ramirez.
</div>
<div id="legal">
Bajo licencia blab bla bla
</div>
</div>
</body>
</html>
___________________Si tenemos múltiples archivos, por ejemplo index.php, ballenas.php, mamiferos.php, etc.. Lo que sucederá es que los div "pie" y "superior", siempre se mantendrán iguales, cambiando solo el contenido del artículo en sí.Entonces estamos leyendo nuestro menú y nos damos cuenta que la palabra mamíferos, no tenía su tilde! Nuestra página tiene decenas de archivos con cada mamífero, habría que colocarle la tilde una por una, pasando por cada archivo, y para qué? si todos dirán lo mismo!
La solución a problemas como este, es utilizar desde el comienzo de la creacion de una web, la funcion include(). Veamos como podemos solucionar el problema de nuestro amigo:
Creamos 2 archivos, supongamos los nombramos a uno superior.php y al otro pie.php (valga la claridad).
___________________superior.php
<div id="superior">
<div id="cabecera">
Mi página de animales
</div>
<div id="menu">
Reptiles-Anfibios-Mamíferos
</div>
</div>
______________________________________pie.php
<div id="pie">
<div id="copy">
Copyright 2012, Jeremias Ramirez.
</div>
<div id="legal">
Bajo licencia blab bla bla
</div>
</div>
___________________Tenemos entonces ahora nuestro código con el div correspondiente en archivos aparte, ahora veremos como modificar nuestra página principal:
___________________index.php
<html>
<body>
<?php include("superior.php"); ?>
<div id="artículo">
Artículo muy interesante sobre ballenas azules
</div>
<?php include("pie.php"); ?>
</body>
</html>
___________________De esta forma, tenemos que, en el lugar correcto, se insertará el código correcto, quedando como antes (pero con la tilde corregida, :P):
___________________index.php
<html>
<body>
<div id="superior">
<div id="cabecera">
Mi página de animales
</div>
<div id="menu">
Reptiles-Anfibios-Mamíferos
</div>
</div>
<div id="artículo">
Artículo muy interesante sobre ballenas azules
</div>
<div id="pie">
<div id="copy">
Copyright 2012, Jeremias Ramirez.
</div>
<div id="legal">
Bajo licencia blab bla bla
</div>
</div>
</body>
</html>
___________________¿Se dan cuenta de la capacidad de include()?
Este es un ejemplo algo "burdo", pero la idea es mostrar como al modificar el archivo incluido, los datos se "actualizarán" en cada página en la que se esté incluyendo,asi teniendo una web como index.php, contacto.php, informacion.php, y aplicando el método de cambiar todo un div estático por un archivo externo, al cambiar "pie.php", se verían los cambios realizados en todos nuestros archivos, ¿Me doy a entender?
Espero solamente no estar mareandolos, :P
Sé que están pensando en: "pero mi sitio tiene 26 páginas!, ¿Voy a tener que cambiar todos los links para usar esto?".
La respuesta es sí, cada uno de sus 26 archivos tendrán que ser renombrados a .php, (a menos que con suerte, su servidor soporte la inclusión dentro de archivos .html ,lo que es genial, :P ), y por ende, los links dejarán de funcionar, pero veamos la realidad:
-La mayoría de los links, se encuentran donde el contenido es estático, como menúes.
¿Cuál es la solución entonces? Si pensaron en usar un include(), van entendiendo la capacidad de esta función!
Simplemente tendrían que cambiar todos los links de su menú una vez, y colocar todo dentro de un archivo aparte, entonces ahora, borran el viejo menú de cada uno de sus 26 archivos, y es reemplazado por un hermoso <?php include("menu.php"); ?>, De esta forma, al necesitar agregar un nuevo elemento, no tendrán mas que modificar sólo el archivo "menu.php", y el cambio se vería reflejado en toda la página. ¿No es genial? Si! :D
Así, pueden crear plantillas para su sitio de manera muy completa y sencilla, realizando includes a cada una de las secciones de la página que se mantenga igual en todas las páginas.
Pero el poder de un include() no muere ahí, ¿Recuerdan que les pedí que utilizaran archivos .php como "menu.php"?
Ahora metámonos dentro de este supuesto archivo menu.php.
___________________menu.php
<codigo html de todo el menur>
<?php //vamos a definir una variable cualquiera
$autor = "Jeremias Ramirez";
?>
___________________Podemos ver entonces que dentro de nuestro archivo, utilizamos una variable, esta variable, será cargada una sóla vez, y estará disponible en todo el sitio, ¿Se comprende? Veamos un ejemplo:
___________________index.php
<html>
<?php include("superior.php"); ?>
<?php include("menu.php"); ?> //este archivo posee la variable $autor
<div id="artículo">
Artículo muy interesante sobre ballenas azules, escrito por <?php echo "$autor"; ?>.
</div>
<?php include("pie.php"); ?>
___________________
>>Para los no iniciados en php, la funcion "echo" escribe en pantalla un texto, o en este caso, una variable.<<Lo cual quedaría como:
<div id="artículo">
Artículo muy interesante sobre ballenas azules, escrito por Jeremias Ramirez.
</div>Entonces, ¿Podemos incluir un archivo con mucha información y utilizarla donde lo necesitemos? Si!
Y esto tiene múltiples usos, como por ejemplo pasar urls largas que se utilicen seguido, fragmentos de texto, codigos de colores, etc.
Bueno, no quiero seguir haciendoles leer, esto se hizo mucho más largo de lo que creía, xD y el tema dá para mucho más, y siempre podrán encontrar más informacion en la web, y que mejor que leer el articulo de quienes inventaron el include():
http://php.net/manual/es/function.include.php
Espero les haya resultado útil, puedan aplicarlo, y les haya gustado, el artículo fue escrito en su totalidad por mí, Jeremias Ramirez, AKA Jeremas, pueden copiarlo, venderlo, imprimirlo y quemarlo si lo desean, pero coloquen este post como fuente, ;)
Cualquier cosa, no duden en preguntar, que trataré de responder a sus dudas. Si hay errores en el texto, sepan disculpar y márquenmelo, que lo editaré.
Gracias por leer!