Autor Tema: diferencia entre un archivo php y un archivo html  (Leído 17295 veces)

javi in the sky

  • Avanzado
  • ****
  • Mensajes: 393
    • Ver Perfil
diferencia entre un archivo php y un archivo html
« en: 19 de Septiembre 2014, 08:39 »
¿Qué diferencia hay entre un archivo de extensión html y uno de extensión php? ¿Sería posible introducir código php dentro de un archivo html? Esto se discute a lo largo de este hilo.

El comportamiento general es el que se expone a continuación, aunque al final veremos que es posible variar este comportamiento configurando el servidor de forma especial.

Para entenderlo haz lo siguiente. Copia este código a continuación y guárdalo en tu escritorio con un editor como bloc de notas o similar con el nombre de archivo ejemplo1.html

Código: [Seleccionar]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Ejemplo de una web con PHP - aprenderaprogramar.com</title>
<meta charset="utf-8">
</head>
<body>
<p>Hola esto es código html para mostrar un mensaje y verlo en la pantalla</p>
<?php
/* Aquí vendría el código PHP */
echo 'Hola esta es una instrucción php y debería mostrarse este texto por pantalla';
/* Este código PHP podría ser una consulta a base de datos */
/* Y además podríamos mostrar esos datos */
?>

</body>
</html>

Ahora haz doble click sobre el archivo. Se abrirá una ventana del navegador mostrando el texto: "Hola esto es código html para mostrar un mensaje y verlo en la pantalla"

¿Por qué no se ejecuta el código php y no se muestra "Hola esta es una instrucción php..."? Porque los archivos html son leídos directamente por el navegador y el navegador no es capaz de reconocer el código php. En este caso, simplemente lo ignora.

Ahora guarda el mismo código anterior con el nombre ejemplo1.php y guárdalo en tu escritorio. Si haces doble click en él te aparecerá un mensaje de que windows no sabe con qué programa se debe abrir el archivo. ¿Por qué? Porque los archivos php tienen que estar situados en un servidor y hay que solicitarle al servidor que interprete el archivo (escribiendo la url en el navegador) y devuelva el código html que se genera. Es decir, un archivo php necesita que un intérprete php lo procese.

Si escribes en tu navegador la dirección url del archivo php que tienes en el escritorio, por ejemplo, file:///C:/Users/Jose/Desktop/prueba1.php, tampoco lograrás que se ejecute el código php.

Ahora sube el archivo ejemplo1.php a un servidor por ftp. Invoca la ruta del archivo, por ejemplo: http:/ /usr473b. byethost.com/prueba1.php

¿Qué verás en pantalla?

Hola esto es código html para mostrar un mensaje y verlo en la pantalla
Hola esta es una instrucción php y debería mostrarse este texto por pantalla


Es decir, el intérprete php situado en el servidor se está encargando de procesar el archivo con extensión php, y devolver una respuesta html.

Lo tienes más amplio aquí: http://aprenderaprogramar.com/index.php?option=com_content&view=article&id=501:comunicacion-cliente-servidor-sin-php-y-con-php-interprete-php-y-gestor-de-bases-de-datos-cu00804b&catid=70:tutorial-basico-programador-web-php-desde-cero&Itemid=193

Esto era a lo que me refería, espero que la explicación ayude!

Saludos
« Última modificación: 27 de Septiembre 2014, 17:37 por Mario R. Rancel »

URKA84

  • Principiante
  • **
  • APR2.COM
  • Mensajes: 90
    • Ver Perfil
Re:diferencia entre un archivo php y un archivo html
« Respuesta #1 en: 20 de Septiembre 2014, 16:49 »
O sea...

que hay dos tipos de archivo: php y html

ambos pueden contener html y php, pero si el archivo es html el servidor lo considerará como "sólo debo leer html", pero si el archivo es php "debo leer html y php" ???

espero haberlo entendido.

javi in the sky

  • Avanzado
  • ****
  • Mensajes: 393
    • Ver Perfil
Re:diferencia entre un archivo php y un archivo html
« Respuesta #2 en: 20 de Septiembre 2014, 17:30 »
Lo has entendido, creo, pero te aclaro.

O sea... que hay dos tipos de archivo: php y html

Sí, existen estos dos tipos de archivo (y otros más, por ejemplo un archivo se puede llamar registro.html ó registro.php, pero también se podría llamar registro.jpg (sería una imagen), registro.swf (serían un archivo flash), pero también podría ser registro.jsf, registro.aspx, registro.do ... etc.)

ambos pueden contener html y php

No, un archivo con extensión html sólo contendrá normalmente html, javascript ó css. Normalmente no tiene sentido tener código php en un archivo html. Es decir, tú puedes tener código php en un archivo html pero es como tener una jirafa en un taxi. Poder, puedes tenerla, pero no tiene sentido. Esto es lo más normal, pero hay una excepción a esto (por la cual sí es posible tener código php dentro de un archivo html y que se ejecute), que se explica al final.


si el archivo es html el servidor lo considerará como "sólo debo leer html", pero si el archivo es php "debo leer html y php"

Sí normalmente, para ser más preciso, lo normal es que si el código es html el servidor lo envía y punto. En cambio si el archivo es php el servidor leerá el código html y ejecutará (interpretará) el código php, y enviará el resultado como código html (es decir, el usuario lo que recibe en su computador es código html, no recibe código php). Existen excepciones que se comentan al final.

HTML no es realmente un lenguaje de programación, en cambio php sí lo es. Comprender estos conceptos es importante si se quiere trabajar en programación web. Se pueden entender leyendo las entregas iniciales de los cursos de html y php que hay en esta web. También las entregas iniciales de los cursos de CSS y JavaScript son de interés, ya que todos estos lenguajes al final interactúan entre sí, aunque cada uno tenga su cometido.

Los links a los cursos están aquí: http://aprenderaprogramar.com/index.php?option=com_content&view=article&id=57&Itemid=86


« Última modificación: 27 de Septiembre 2014, 17:40 por Mario R. Rancel »

URKA84

  • Principiante
  • **
  • APR2.COM
  • Mensajes: 90
    • Ver Perfil
Re:diferencia entre un archivo php y un archivo html
« Respuesta #3 en: 21 de Septiembre 2014, 12:04 »
Creo que lo he entendido  :D

Gracias por la completa explicación.


URKA84

  • Principiante
  • **
  • APR2.COM
  • Mensajes: 90
    • Ver Perfil
Re:diferencia entre un archivo php y un archivo html
« Respuesta #4 en: 24 de Septiembre 2014, 11:57 »
Hola, verás...

He estado mirando los archivos que tengo y hay uno llamado "calendiario.html" que tiene código php y código html.

Contiene código html para darle forma a la página y luego código php para realizar las consultas en la base de datos.

Mi pregunta es: ¿Tengo que cambiar cambiar la extensión a php?

PD: Quizás de ahí viene el problema que tenía yo porque se ejecutaba sólo un código php y la copia idéntica dentro del mismo archivo no. Gracias.

URKA84

  • Principiante
  • **
  • APR2.COM
  • Mensajes: 90
    • Ver Perfil
Re:diferencia entre un archivo php y un archivo html
« Respuesta #5 en: 24 de Septiembre 2014, 12:07 »
Me se olvidaba poner el código:

calendario.html:

Código: [Seleccionar]
<?php 
    
/*$link = mysql_connect("mysql13.000webhost.com","a4047274_fiestas","urkaka12");

mysql_select_db("a4047274_fiestas", $link);*/
    
    
require_once('include/conexion.php');



$result mysql_query("SELECT * FROM valencia WHERE fecha_inicio BETWEEN '2014-01-01' AND '2014-01-31'"$link);
    

while($row mysql_fetch_array($result)){
echo "<hr>";
echo "Pueblo: ".$row['pueblo']."<br>";
echo "Fiesta: ".$row['fiesta']."<br>";
        echo 
"Comentarios: ".$row['comentarios']."<br>";
}

mysql_free_result($result);
mysql_close($link);
echo "<hr>";
?>

De todas formas... si quieres te paso directamente el archivo, para que veas todo el código.

javi in the sky

  • Avanzado
  • ****
  • Mensajes: 393
    • Ver Perfil
Re:diferencia entre un archivo php y un archivo html
« Respuesta #6 en: 24 de Septiembre 2014, 17:19 »
Si tienes código php, para que se ejecute lo más normal es ponerle extensión php. Si no le pones extensión php, el código php no se ejecutará a no ser que el servidor esté específicamente configurado para ello. Lo más recomendable es cambiarle el nombre a calendario.php para que se ejecute el código php.
« Última modificación: 27 de Septiembre 2014, 17:42 por Mario R. Rancel »

Mario R. Rancel

  • Administrador
  • Experto
  • ********
  • APR2.COM
  • Mensajes: 1978
    • Ver Perfil
Re:diferencia entre un archivo php y un archivo html
« Respuesta #7 en: 27 de Septiembre 2014, 17:30 »
Hola, hay que hacer una puntualización a lo expuesto por javi in the sky. El comportamiento indicado es el más habitual en lo servidores y el que por convenio es más habitual que sigan los programadores. Sin embargo, sí sería posible que el código php se ejecute dentro de un archivo html (ó htm) si el servidor se ha configurado específicamente de esta manera. Para lograr esto se haría una modificación en el fichero de configuración del servidor añadiéndole AddHandler application/x-httpd-php .html

Otra alternativa sería hacerlo a través de un fichero htaccess situado en el directorio raíz (o aquel que se quiera afectar) incluyendo esta línea:

AddType application/x-httpd-php .htm .html

Con este cambio de configuración es posible incluir código php dentro de un archivo html ó htm y que el código php se ejecute al invocar la url del html.

No obstante en general se considera no recomendable este tipo de prácticas por ser poco habitual, poder dar lugar a problemas de depuración y mantenimiento en el futuro, así como porque puede ocasionar problemas de rendimiento en el servidor. Otra cuestión a tener en cuenta es que un cambio de servidor puede generar anomalías de difícil detección.

En general se suelen recomendar usar los archivos html para contener código html y los archivos php para contener código html junto a php. Sólo cuando se tengan bien claras las consecuencias y objetivos que se persiguen, sería adecuado configurar específicamente el servidor o un htaccess e introducir código php dentro de archivos html.

Saludos,


 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".