Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Include,require,include_once,require_once

Estas en el tema de Include,require,include_once,require_once en el foro de PHP en Foros del Web. Hola, la verdad que hace tiempo que intento comprender esto de los includes y los requires y no lo entiendo todavía del todo. Estaba intentando ...
  #1 (permalink)  
Antiguo 21/11/2014, 13:40
 
Fecha de Ingreso: octubre-2013
Mensajes: 62
Antigüedad: 10 años, 6 meses
Puntos: 0
Include,require,include_once,require_once

Hola, la verdad que hace tiempo que intento comprender esto de los includes y los requires y no lo entiendo todavía del todo. Estaba intentando crear mi propia páctica como modo de aprendizaje, pero me he encontrado con varios problemas:
prueba1.php:
Código PHP:
<?php
require_once('includes/includes.php'); 
define('numero','seis');
function 
echo_return()
{
    
$numero=6;
    return 
$numero;
}
echo 
"echo echo_return(): ".echo_return()."<br>";
function 
echo_echo()
{
    echo 
6;
}
echo 
"echo echo_echo(): ".echo_echo();
echo 
"<br>";
echo 
"Este es el resultado a la llamada de la función hola() en el archivo defines/defines.php:<br>";
hola();
echo 
"Y ahora ya estoy de nuevo en prueba1.php.";
echo 
"<br>";
echo 
"Sigo escribiendo en prueba1.php situada al mismo nivel que la carpeta images, y voy a a abrir mi foto alojada en dicha carpeta: ";
echo 
"<br>";
echo 
"<img src='images/yo.png'";
echo 
"</br>";
echo 
"Ahora voy a llamar a la función abrirImagen() en el archivo includes/includes.php: ";
echo 
"<br>";
abrirImagen();
echo 
"Y ya estoy de nuevo en prueba1.php";
?>
includes/includes.php:
Código PHP:
<?php 
    
function hola()
    {
        echo 
"Hola, estoy en el archivo defines.php y voy a llamar a la constante numero definida en el archivo prueba1.php: ".numero.", ahora que ya lo he llamado me despido.<br>";
    }
    function 
abrirImagen()
    {
        echo 
"Hola de nuevo, ya estoy en includes/includes.php y voy a proceder a abrir de nuevo la imagen, pero esta vez la llamaré desde aquí de la misma manera que si estuviera en prueba1.php, es decir: 'images/yo.png', en vez de '../images/yo.png'";
        echo 
"<br>";
        echo 
"<img src='images/yo.png'";
        echo 
"<br>";
        echo 
"Y ahora que la imagen ya ha sido abierta, cierro la función abrirImagen()";

    }
?>
  1. Porque no cambía la línea despúes de abrir la imagen?
  2. Porque no es capaz de abrir la función?
  3. Debería de abrir la imagen '../images/yo.png' o 'images/.png'?
  4. Que diferencia habría en este caso o en otros similares entre require, require_once, include e include_once?
Gracias por vuestras respuestas de antemano. Un saludo
  #2 (permalink)  
Antiguo 21/11/2014, 14:06
 
Fecha de Ingreso: abril-2012
Mensajes: 124
Antigüedad: 12 años
Puntos: 3
Respuesta: Include,require,include_once,require_once

¿Sale un resultado distinto si copias el contenido del archivo en el lugar del require?
__________________
Mi web de programación en PHP en construcción, claro. Un dia de esos pongo algo.
  #3 (permalink)  
Antiguo 21/11/2014, 14:11
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Include,require,include_once,require_once

Primero debes entender la diferencia entra una ruta para PHP (include/require), que es siempre una ruta al nivel del sistema de archivos.

Sin embargo, la etiqueta <img> maneja un URL, que siempre es a nivel del sitio web (y su DOCUMENT_ROOT) y no a nivel del sistema de archivos.

No importa dónde se encuentre el archivo que incluyes, la ruta de la imagen siempre será analizada por el navegador y resuelta a través del dominio.

El código HTML que imprimes con PHP no lo entenderá ni modificará PHP jamás: porque para PHP el HTML que imprimes texto y nada más, no tiene significado para PHP: sólo significa algo en el navegador.

¿Se entiende la diferencia o no?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #4 (permalink)  
Antiguo 23/11/2014, 09:48
 
Fecha de Ingreso: octubre-2013
Mensajes: 62
Antigüedad: 10 años, 6 meses
Puntos: 0
Respuesta: Include,require,include_once,require_once

Gracias a los dos por vuestras respuestas.
Lo primero que debería de saber es porque cuando estoy llamando a la función hola() si que se ejecuta, pero si llamo a abrirImagen no, que es lo que ha cambiado?
Respecto a la diferencia entre la etiqueta html img y la función php include/require no he entendido muy bien la diferencia. Aun que creo entender que si estoy en index.php aún que este usando un archivo externo cuando llame a la imagen tendré que poner el acceso desde index.php. Eso signigfica que si estuviera en otro archivo a otro nivel en el que también utilice la función del archivo para abrir la imagen no funcionaría?
Podrías indicarme si hay algún manual que hable un poco más concreto sobre esto?
  #5 (permalink)  
Antiguo 25/11/2014, 05:20
 
Fecha de Ingreso: abril-2012
Mensajes: 124
Antigüedad: 12 años
Puntos: 3
Respuesta: Include,require,include_once,require_once

Imagina tienes esos archivos:

/index.php -> require (includes/foto.php)
/user/index.php -> require (../includes/foto.php)
/includes/foto.php - muestra la imágen
/fotos/imagen.jpg

Para mostrar la imágen solo dede /index.php tendrás que poner src='fotos/imagen.jpg'
Para mostrar la imágen solo dede /user/index.php tendrás que poner src='../fotos/imagen.jpg'
Para mostrar la imágen dede todos los archivos tendrás que poner src='/fotos/imagen.jpg'

Para que funcionase abrirImagen tendr´lias que poner
Código PHP:
Ver original
  1. echo "<img src='/images/yo.png'";
__________________
Mi web de programación en PHP en construcción, claro. Un dia de esos pongo algo.
  #6 (permalink)  
Antiguo 26/11/2014, 05:16
 
Fecha de Ingreso: octubre-2013
Mensajes: 62
Antigüedad: 10 años, 6 meses
Puntos: 0
Respuesta: Include,require,include_once,require_once

De acuerdo, pero estoy comprobando que si en index.php llamo a una funcion contenida en user/idex.php que abre la imagen el src tedrá que ser fotos/imagen.jpg dado que la llamo desde el prinvipal index.ph aún podría pensar que la llamo desde el index del user.
Otra cosa que no entiendo es porqure al poner un br despúes de una imagen no funciona.
Y todavía sigo sin entender la diferencia entre include e include_once.
Gracias por las respuestas,
Un saludo.
  #7 (permalink)  
Antiguo 26/11/2014, 10:01
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Include,require,include_once,require_once

Cita:
Otra cosa que no entiendo es porqure al poner un br despúes de una imagen no funciona.
Podrías mostrar el código, aunque desde el inicio siempre escribiste el HTML mal formado:

Código HTML:
Ver original
  1. <!--MAL-->
  2. <img src="images/yo.png"
  3.  
  4. <!--BIEN-->
  5. <img src="images/yo.png">

¿Notas el > de cierre en la etiqueta?

Con <br> quedaría así:
Código HTML:
Ver original
  1. <img src="a/b/c"><br>

Y funciona perfecto.

Cita:
Y todavía sigo sin entender la diferencia entre include e include_once.
La diferencia es que include siempre incluirá el scripts tantas veces como lo invoques, sin embargo, include_once sólo incluirá el contenido un a sola ves.

Por eso es "include once", consulta el manual.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #8 (permalink)  
Antiguo 27/11/2014, 03:50
 
Fecha de Ingreso: octubre-2013
Mensajes: 62
Antigüedad: 10 años, 6 meses
Puntos: 0
Respuesta: Include,require,include_once,require_once

Muchas gracias.
Ahora ya me ha quedado todo claro.
Un saludo

Etiquetas: image, include, require, require_once
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 04:39.