¿QUÉ ES PHP? ¿PARA QUÉ SIRVE PHP?

PHP es un lenguaje de código abierto muy popular, adecuado para desarrollo web y que puede ser incrustado en HTML. Es popular porque un gran número de páginas y portales web están creadas con PHP. Código abierto significa que es de uso libre y gratuito para todos los programadores que quieran usarlo. Incrustado en HTML significa que en un mismo archivo vamos a poder combinar código PHP con código HTML, siguiendo unas reglas.


PHP se utiliza para generar páginas web dinámicas. Recordar que llamamos página estática a aquella cuyos contenidos permanecen siempre igual, mientras que llamamos páginas dinámicas a aquellas cuyo contenido no es el mismo siempre. Por ejemplo, los contenidos pueden cambiar en base a los cambios que haya en una base de datos, de búsquedas o aportaciones de los usuarios, etc.
¿Cómo trabaja PHP? El lenguaje PHP se procesa en servidores, que son potentes ordenadores con un software y hardware especial. Cuando se escribe una dirección tipo http://www.example.com/index.php en un navegador web como Internet Explorer, Firefox o Chrome, ¿qué ocurre? Se envían los datos de la solicitud al servidor que los procesa, reúne los datos (por eso decimos que es un proceso dinámico) y el servidor lo que devuelve es una página HTML como si fuera estática.
El esquema es: Petición de página web al servidor --> El servidor recibe la petición, reúne la información necesaria consultando a bases de datos o a otras páginas webs, otros servidores, etc --> El servidor responde enviando una página web “normal” (estática) pero cuya creación ha sido dinámica (realizando procesos de modo que la página web devuelta no siempre es igual).
En resumen:

Páginas estáticas: Petición --> Respuesta
Páginas dinámicas: Petición --> Procesado y preparación --> Respuesta


En un sitio dinámico, la información generalmente está contenida en una base de datos. Cada vez que mostramos la página, como por ejemplo una página de noticas, buscamos en la base de datos las últimas noticias que tenemos ingresadas para mostrar en el navegador del visitante. Ahora bien, ¿cómo se consigue que la página vaya mostrando noticias nuevas? Simplemente cargando las mismas en la base de datos, por ejemplo, a través de un formulario que rellena una persona y que una vez relleno cuando pulsa “Enviar” implica que lo que haya escrito se guarde en nuestra base de datos. De esta manera, cuando solicitamos la página web y el servidor consulte la base de datos, encontrará esta nueva información y mostrará nuestra página de forma distinta a como se veía anteriormente.
Por regla general este tipo de lenguaje suele ser utilizado para crear contenido dinámico y poder interactuar con el usuario.
Veamos un ejemplo del contenido de una página web php, que habremos de almacenar en un archivo que termina con la extensión .php y que contiene texto:
<!DOCTYPE html>
<html>
<head>
<title>Ejemplo</title>
</head>
<body>
<?php
echo "Bienvenidos a tutorialepractico.blogspot.com";
?>
</body>
</html>


Como podrás comprobar el contenido del archivo incluye código HTML y en un momento dado aparece una etiqueta <?php que significa que ahí empieza el código PHP. Por eso decimos que el código PHP está embebido (incluido o incrustado) en código HTML.

Por tanto las páginas PHP contienen HTML con código PHP incluido en ellas para hacer "algo" (en este caso, mostrar Bienvenidos a aprenderaprogramar.com. El código PHP está comprendido entre etiquetas de comienzo y final especiales: <?php y ?>
Estas etiquetas especiales nos permitirán entrar y salir del "modo PHP". Le sirven al servidor web para saber que tiene que interpretar el código incluido entre esas etiquetas como PHP.

Lo que distingue a PHP de JavaScript es que el código es ejecutado en el servidor, generando HTML y enviándolo al cliente como si fuera una página web estática. El cliente recibirá los resultados que el servidor devuelve después de interpretar el código PHP, sin ninguna posibilidad de determinar qué código ha producido el resultado recibido. Es decir, a través de nuestro navegador podríamos ver el código HTML, pero nunca el código PHP que dio lugar al resultado HTML. El servidor web puede ser incluso configurado para que los usuarios no puedan saber si estás o no utilizando PHP.
Lo mejor de usar PHP es que es extremadamente simple para el principiante, pero a su vez, ofrece muchas características avanzadas para los programadores profesionales y más avanzados.

Con PHP puedes procesar la información de formularios, generar páginas con contenidos dinámicos, o enviar y recibir cookies, entre muchas más cosas. PHP lo utilizan desde pequeñas páginas web hasta grandes empresas. Muchas aplicaciones web están construidas usando PHP. Podemos citar Joomla y Drupal (gestores de contenido de páginas web), osCommerce y Prestashop (tiendas on-line para comercio electrónico), phpBB y SMF (sistemas de foros para páginas web), Moodle (plataforma educativa para educación on-line), etc.
Entre las habilidades de PHP se incluye la creación de imágenes a partir de datos. Por ejemplo, supongamos que tenemos una academia con 20 alumnos matriculados en un curso de informática, 50 alumnos matriculados en un curso de matemáticas y 30 alumnos matriculados en un curso de química. Con PHP podemos generar automáticamente imágenes similares a esta:

php ejemplo


PHP también puede utilizar y presentar resultados en otros estándares de datos o lenguajes propios de los desarrollos web, como XHTML y cualquier otro tipo de ficheros XML. PHP puede autogenerar éstos archivos y almacenarlos en el sistema de archivos en vez de presentarlos en la pantalla, utilizando estos ficheros para generar contenido dinámico. Es decir, el contenido dinámico puede surgir de otros sitios además de desde bases de datos.
También se puede interactuar con otros servidores usando cualquier protocolo. Por último, PHP puede enlazarse con otros lenguajes muy potentes como Java.
En resumen, PHP es un lenguaje potente, muy usado y de gran interés para los desarrollos web.


Historia de HTML (resumida)


La historia completa de HTML es tan interesante como larga, por lo que a continuación se muestra su historia resumida a partir de la información que se puede encontrar en la Wikipedia.




El origen de HTML se remonta a 1980, cuando el físico Tim Berners-Lee, trabajador del CERN(Organización Europea para la Investigación Nuclear) propuso un nuevo sistema de "hipertexto" para compartir documentos.

Los sistemas de "hipertexto" habían sido desarrollados años antes. En el ámbito de la informática, el"hipertexto" permitía que los usuarios accedieran a la información relacionada con los documentos electrónicos que estaban visualizando. De cierta manera, los primitivos sistemas de "hipertexto" podrían asimilarse a los enlaces de las páginas web actuales.

Tras finalizar el desarrollo de su sistema de "hipertexto", Tim Berners-Lee lo presentó a una convocatoria organizada para desarrollar un sistema de "hipertexto" para Internet. Después de unir sus fuerzas con el ingeniero de sistemas Robert Cailliau, presentaron la propuesta ganadora llamadaWorldWideWeb (W3).

El primer documento formal con la descripción de HTML se publicó en 1991 bajo el nombre HTML Tags(Etiquetas HTML) y todavía hoy puede ser consultado online a modo de reliquia informática.

La primera propuesta oficial para convertir HTML en un estándar se realizó en 1993 por parte del organismo IETF (Internet Engineering Task Force). Aunque se consiguieron avances significativos (en esta época se definieron las etiquetas para imágenes, tablas y formularios) ninguna de las dos propuestas de estándar, llamadas HTML y HTML+ consiguieron convertirse en estándar oficial.

En 1995, el organismo IETF organiza un grupo de trabajo de HTML y consigue publicar, el 22 de septiembre de ese mismo año, el estándar HTML 2.0. A pesar de su nombre, HTML 2.0 es el primer estándar oficial de HTML.

A partir de 1996, los estándares de HTML los publica otro organismo de estandarización llamado W3C(World Wide Web Consortium). La versión HTML 3.2 se publicó el 14 de Enero de 1997 y es la primera recomendación de HTML publicada por el W3C. Esta revisión incorpora los últimos avances de las páginas web desarrolladas hasta 1996, como applets de Java y texto que fluye alrededor de las imágenes.

HTML 4.0 se publicó el 24 de Abril de 1998 (siendo una versión corregida de la publicación original del 18 de Diciembre de 1997) y supone un gran salto desde las versiones anteriores. Entre sus novedades más destacadas se encuentran las hojas de estilos CSS, la posibilidad de incluir pequeños programas oscripts en las páginas web, mejora de la accesibilidad de las páginas diseñadas, tablas complejas y mejoras en los formularios.

La última especificación oficial de HTML se publicó el 24 de diciembre de 1999 y se denomina HTML 4.01. Se trata de una revisión y actualización de la versión HTML 4.0, por lo que no incluye novedades significativas.

Desde la publicación de HTML 4.01, la actividad de estandarización de HTML se detuvo y el W3C se centró en el desarrollo del estándar XHTML. Por este motivo, en el año 2004, las empresas Apple, Mozilla y Opera mostraron su preocupación por la falta de interés del W3C en HTML y decidieron organizarse en una nueva asociación llamada WHATWG (Web Hypertext Application Technology Working Group).

La actividad actual del WHATWG se centra en el futuro estándar HTML 5, cuyo primer borrador oficialse publicó el 22 de enero de 2008. Debido a la fuerza de las empresas que forman el grupo WHATWG y a la publicación de los borradores de HTML 5.0, en marzo de 2007 el W3C decidió retomar la actividad estandarizadora de HTML.

De forma paralela a su actividad con HTML, W3C ha continuado con la estandarización de XHTML, una versión avanzada de HTML y basada en XML. La primera versión de XHTML se denomina XHTML 1.0 y se publicó el 26 de Enero de 2000 (y posteriormente se revisó el 1 de Agosto de 2002).

XHTML 1.0 es una adaptación de HTML 4.01 al lenguaje XML, por lo que mantiene casi todas sus etiquetas y características, pero añade algunas restricciones y elementos propios de XML. La versión XHTML 1.1 ya ha sido publicada en forma de borrador y pretende modularizar XHTML. También ha sido publicado el borrador de XHTML 2.0, que supondrá un cambio muy importante respecto de las anteriores versiones de XHTML.




Índice de las etiquetas de HTML



Guía de referencia


Se expone en esta página una tabla con todos los elementos de HTML.
En la primer columna se exibe el nombre del elemento.

La columna "Des" con una letra "D" nos indica los elementos que están desaprobados.

La columna "DTD" con celdas vacías se refieren a todos los elementos que no han sido desaprobado o no aparecen en documentos con marcos o frames. La letra "L" se refiere a todos los elementos que no aparecen en documentos con marcos o frames. La letra "F" se refiere a todos los elementos incluidos aquellos documentos con marcos.

La última columna nos da una pequeña descripción de cada elemento.
Para una mejor comprensión de cada elemento, presione sobre el nombre del elemento deseado.

Leyenda:
D: Desaprobado
L: Loose DTD (Definición del Tipo de Documento Transicional)
F: Frameset DTD (Definición del Tipo de Documento con Marcos)


    NombreEtiqueta inicialEtiqueta finalDes.DTDDescripción
    a<a></a>Origen o destino del vínculo
    abbr<abbr></abbr>Abreviatura (p.ej.:WWW, HTTP, etc.)
    acronym<acronym></acronym>
    address<address></address>Información sobre el autor
    applet<applet></applet>DLApplet Java
    area<area>ProhibidoÁrea de un mapa de imágenes en el lado del cliente
    b<b></b>Estilo de texto en negrita
    base<base>ProhibidoURI base del documento
    basefont<basefont>ProhibidoDLTamaño base de fuente
    bdo<bdo></bdo>Anular algoritmo BiDi I18N
    big<big></big>Estilo de texto grande
    blockquote<blockquote></blockquote>Cita larga
    bodyOpcionalOpcionalCuerpo del documento
    br<br>ProhibidoSalto de línea forzado
    button<button></button>Botón
    caption<caption></caption>Título de tabla
    center<center></center>DLForma abreviada de DIV align=center
    cite<cite></cite>Cita
    code<code></code>Fragmento de código de computadora
    col<col>ProhibidoColumna de una tabla
    colgroup<colgroup>OpcionalGrupo de columnas de una tabla
    dd<dd>OpcionalDescripción de una definición
    del<del></del>Texto borrado
    dfn<dfn></dfn>Definición
    dir<dir></dir>DLLista tipo directorio
    div<div></div>Contenedor genérico de idioma/estilo
    dl<dl></dl>Lista de definiciones
    dt<dt>OpcionalTérmino definido
    em<em></em>Énfasis
    fieldset<fieldset></fieldset>Grupo de controles de un formulario
    font<font></font>DLCambio local de la fuente
    form<form></form>Formulario interactivo
    frame<frame>ProhibidoFSubventana
    frameset<frameset></frameset>FSubdivisión en ventanas
    h1<h1></h1>Encabezado
    h2<h2></h2>Encabezado
    h3<h3></h3>Encabezado
    h4<h4></h4>Encabezado
    h5<h5></h5>Encabezado
    h6<h6></h6>Encabezado
    headOpcionalOpcionalCabecera del documento
    hr<hr>ProhibidoSeparador horizontal
    htmlOpcionalOpcionalElemento raiz del documento
    i<i></i>Estilo de texto en itálica
    iframe<iframe></iframe>LSubventana en línea
    img<img>ProhibidoImagen incluida
    input<input>ProhibidoControl de formulario
    ins<ins></ins>Texto insertado
    isindex<isindex>ProhibidoDLEntrada de texto en una sola línea con indicador
    kbd<kbd></kbd>Texto que debe introducir el usuario
    label<label></label>Texto del rótulo de un campo de formulario
    legend<legend></legend>Leyenda de un grupo de campos
    li<li>OpcionalObjeto de lista
    link<link>ProhibidoUn vínculo independiente del medio
    map<map></map>Mapa de imágenes en el lado del cliente
    menu<menu></menu>DLLista tipo menú
    meta<meta>ProhibidoMetainformación genérica
    noframes<noframes></noframes>FContenedor de contenidos alternativos para la representación no basada en marcos
    noscript<noscript></noscript>Contenedor de contenidos alternativos para la representación no basada en scripts
    object<object></object>Objeto incluido genérico
    ol<ol></ol>Lista ordenada
    optgroup<optgroup></optgroup>Grupo de opciones
    option<option>OpcionalOpción seleccionable
    p<p>OpcionalPárrafo
    param<param>ProhibidoValor de propiedad con nombre
    pre<pre></pre>Texto preformateado
    q<q></q>Cita corta en línea
    s<s></s>DLEstilo de texto tachado
    samp<samp></samp>Ejemplo de salida de programas, scripts, etc.
    script<script></script>Sentencias de script
    select<select></select>Selector de opciones
    small<small></small>Estilo de texto pequeño
    span<span></span>Contenedor genérico de idioma/estilo
    strike<strike></strike>DLEstilo de texto tachado
    strong<strong></strong>Énfasis fuerte
    style<style></style>Información de estilo
    sub<sub></sub>Subíndice
    sup<sup></sup>Superíndice
    table<table></table>
    tbodyOpcionalOpcionalCuerpo de tabla
    td<td>OpcionalCelda de datos de una tabla
    textarea<textarea></textarea>Campo de texto multilínea
    tfoot<tfoot>OpcionalPie de tabla
    th<th>OpcionalCelda de encabezado de tabla
    thead<thead>OpcionalCabecera de tabla
    title<title></title>Título del documento
    tr<tr>OpcionalFila de una tabla
    tt<tt></tt>Estilo de texto de teletipo o monoespacio
    u<u></u>DLEstilo de texto subrayado
    ul<ul></ul>Lista no ordenada
    var<var></var>,