Introducción a PHP
JUAN CARLOS CONDE RAMÍREZ
Objetivos
◦ Comprender qué es PHP.
◦ Conocer el software requerido para trabajar con PHP.
◦ Conocer los orígenes y las características principales de PHP.
◦ Entender el funcionamiento de PHP y su uso en combinación con páginas XHTML
Introducción a PHP I
•PHP es un lenguaje de programación del lado del servidor, originalmente diseñado para el
desarrollo Web de contenido dinámico.
•Fue uno de los primeros lenguajes de programación que se podía incorporar directamente en el documento HTML en lugar de llamar a un archivo externo que procesara los datos.
•El código es interpretado por un servidor Web, con un módulo procesador de PHP, para generar una página Web dinámica.
Introducción a PHP II
•PHP (inicialmente Personal Home Page Tools – PHP Tools) fue creado originalmente por Rasmus
Lerdof en 1995
•Actualmente el lenguaje sigue siendo desarrollado con nuevas funciones por el grupo PHP; el nuevo acrónimo (recursivo) significa PHP Pre Hypertext -Processor.
•PHP ha evolucionado por lo que ahora incluye también una interfaz de línea de comandos que puede ser usada en aplicaciones gráficas independientes.
Introducción a PHP III
•PHP puede ser usado en la mayoría de los servidores Web al igual que en casi todos los sistemas operativos y plataformas sin ningún costo.
•Este lenguaje forma parte del software libre publicado bajo la licencia PHP que es incompatible con la Licencia Pública General de GNU debido a las restricciones del uso del término PHP.
El código PHP interpretado, produce un resultado que es enviado al navegador del visitante en forma de HTML, imagen, documento .doc...
De ninguna manera el navegador del visitante accede al código fuente en PHP sino sólo a su resultado en HTML.
¿Qué es PHP?
Instalación de PHP I
•Para comenzar a programar en PHP, debemos tener un servidor Web con PHP instalado, y lo más cómodo para trabajar es que lo tengamos en nuestra propia computadora.
•Las herramientas que necesitamos son:
◦ un servidor Web,
◦ un interprete de PHP
◦ un motor de bases de datos (MySQL)
•Todo esto se puede instalar por separado o se puede hacer con paquetes que instalan y configuran PHP, Apache y MySQL.
Instalación de PHP II
•XAMPP es un servidor independiente de la plataforma, software libre, que consiste principalmente en la base de datos MySQL, el servidor Web Apache y los intérpretes para lenguajes de script: PHP y Perl.
•El nombre proviene del acrónimo de X (para cualquiera de los diferentes sistemas operativos),
Apache, MySQL, PHP, Perl.
•El programa está liberado bajo la licencia GNU y actúa como un servidor Web libre, fácil de usar y capaz de interpretar páginas dinámicas. Actualmente XAMPP está disponible para Microsoft Windows, GNU/Linux, Solaris y MacOS X
Instalación de PHP III
•WAMP es el acrónimo usado para describir un sistema de infraestructura de Internet que usa las siguientes herramientas: Windows, como sistema operativo; Apache, como servidor Web;
MySQL, como gestor de bases de datos; PHP (generalmente), Perl o Pyhton, como lenguajes de
programación.
•El uso de WAMP permite servir páginas HTML a Internet, además de poder gestionar datos en ellas y proporcionar lenguajes de programación para desarrollar aplicaciones Web.
◦ LAMP es el sistema análogo que corre bajo ambiente Linux.
Instalación de PHP IV
•EasyPHP fue el primer paquete WAMP conocido (1999).
•Es una plataforma para el desarrollo Web y donde se pueden ejecutar localmente (sin necesidad de conectarse a un servidor externo) los scripts PHP.
•EasyPHP no es un software en sí mismo, sino un entorno con dos servidores (un servidor Web Apache y un servidor de base de datos MySQL), un intérprete de scripts (PHP) y una administración phpMyAdmin SQL.
Instalación de PHP V
•EasyPHP cuenta con una interfaz de administración para la gestión de los alias (carpetas virtuales disponibles en Apache), e inicializar/apagar los servidores. Permite instalar de inmediato todo el desarrollo local necesaria de PHP.
•De forma predeterminada, el servidor Apache crea un nombre de dominio virtual (local) 127.0.0.1 o localhost.
•Por lo tanto, al seleccionar "Web local" en el menú de EasyPHP, el navegador abre el URL y muestra la página index.php de este sitio que es en realidad el contenido de la carpeta www de EasyPHP.
Instalación de PHP VI
•EasyPHP se puede utilizar como una aplicación portátil, es decir, que se ejecute en un dispositivo USB.
◦ WAMP: http://www.wampserver.com/
◦ XAMPP: http://www.apachefriends.org/en/xampp.html
Organización de PHP I
•PHP no se basa en una jerarquía de clases agrupadas en subconjuntos (espacio de nombres,
name space) como ASP.Net o Java, pero sí en módulos.
•El módulo básico, llamado estándar, proporciona acceso a las instrucciones básicas, a los diferentes tipos de datos y a un gran número de funciones.
•Los módulos especializados permiten añadir características especiales, tales como el acceso a las diversas bases de datos y su gestión. Cada módulo proporciona acceso a un gran número de funciones especializadas para un dominio particular.
Organización de PHP II
•La lista de los módulos disponibles es actualmente visible en la documentación general del lenguaje en la página oficial de PHP (http://www.php.net/).
•Se puede descargar en el mismo sitio la documentación oficial de PHP y la definición de todas las funciones existentes (documento con páginas en formato PDF).
•Para saber qué módulos se pueden utilizar en el servidor local, puedes simplemente hacer clic en el enlace de phpinfo() en la página principal de tu servidor local WampServer por ejemplo:
Organización de PHP III
•Para obtener la misma información para el servidor que aloja tu sitio, hacer lo siguiente:
1. Escribir el siguiente script básico, utilizando el editor que hayas elegido:
<?php
phpinfo(); ?>
2. Guardar el script como info.php
◦ En PHP, todos los scripts inician con la línea <?php y terminan con ?>.
Organización de PHP IV
3. Transferir el archivo info.php a tu servidor remoto usando algún software FTP o colocarlo en la carpeta www del servidor instalado (activo o lanzado).
4. Introducir la siguiente dirección http://www.tusitio.com/info.php en tu navegador, donde www.tusitio.com puede ser sustituido por el nombre de dominio virtual.
NOTA:
◦ Las extensiones .php3, .php4, .php5 o .phtml se encuentran en algunos servidores, dependiendo de la
Organización de PHP V
◦ Aparecerá una gran cantidad de información útil sobre el servidor y todos los módulos que están
instalados.
◦ Se recomienda imprimir esta información y tenerla a la mano, ya que te será de gran utilidad, en el caso de si se puede utilizar un módulo o una función particular.
◦ Sería desafortunado trabajar muchas horas en la creación de un script que utiliza ciertas funciones sólo nivel local, pero que no están disponibles en el servidor remoto.
Estructura de archivos XHTML I
•El conocimiento del lenguaje XHTML es útil para empezar a escribir los scripts PHP.
•Es útil conocer la estructura de los archivos XHTML ya que una página dinámica PHP es, de hecho, un documento XHTML enviado por el servidor al cliente.
•Para cumplir con las normas de XHTML del W3C (http://www.w3.org), un documento XHTML debe tener la siguiente estructura (archivo pagexhtml.html):
pagexhtml.html
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.1//EN” “http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd”>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang=“es"> <head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title> Titulo de la página </title>
</head> <body>
<h2> Bienvenido sobre el sitio PHP 5 </h2> </body>
Estructura de archivos XHTML II
•La página principal está escrita en XHTML puro, y todos los visitantes del sitio Web verán exactamente el mismo contenido, independientemente del tiempo de conexión.
•El archivo puede tener la extensión .html o .htm, ya que sólo contiene XHTML, pero podría tener una extensión .php y tener la misma presentación en el navegador.
•Podrías proporcionarle un poco de dinamismo a la página, mostrando la fecha en la parte superior de la página con el siguiente código PHP (archivo codephp.php):
codephp.php
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.1//EN” “http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd”>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang=“es"> <head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title> Una página PHP </title>
</head> <body>
<?php
echo "<h3> El día de hoy es el ". date('d / M / Y H:m:s')."</h3> <hr/>"; echo "<h2 >Bienvenido a mi sitio PHP 5 </h2>";
Estructura de archivos XHTML III
•El código de nuestra nueva página contiene los siguiente nuevos elementos, que NO son de XHTML
•Los elementos <?php y ?> marcan respectivamente el inicio y el final de todo script PHP, ya sea que este incluido en el código HTML o contenido en un archivo PHP.
•Podemos igualmente incluir tantos bloques de código PHP como se deseen en un documento HTML, siempre que cada una de ellos está limitado por estos marcadores.
Estructura de archivos XHTML IV
•Entre éstos elementos se incluye el código PHP en sí:
echo "<h3> El día de hoy es el ". date('d / M / Y H:m:s')."</h3> <hr/>"; echo "<h2> Bienvenido a mi sitio PHP 5 </h2>";
•La instrucción echo se utiliza para escribir en el documento final el contenido que sigue, ya sea el texto o el resultado devuelto por una función, como en la dos líneas anteriores.
Estructura de archivos XHTML V
•Si copiamos y ejecutamos este archivo en el navegador, se obtiene el resultado que se muestra en la siguiente figura, que proporciona una visión general de lo que es una página dinámica
Estructura de archivos XHTML VI
•Puedes hacer lo mismo con la ayuda de un script de JavaScript ejecutado no en el servidor sino
en el navegador del cliente.
◦ La diferencia es que la fecha y hora que se muestran aquí son las del servidor y no las de la
computadora tal como lo haría JavaScript
•Una de las ventajas de PHP es que no tienes que tener en cuenta las capacidades del navegador del visitante.
Estructura de archivos XHTML VII
•Examinemos ahora el código fuente del documento tal y como fue recibido por el navegador. Se muestra el siguiente código:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="es"> <head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>Una página PHP</title>
</head> <body>
<h3> El día de hoy es el 12 / Aug / 2016 18:08:18</h3><hr/> <h2> Bienvenido a mi sitio PHP 5 </h2>
Estructura de archivos XHTML VIII
•Nótese que:
<?php
echo "<h3> El día de hoy es el ". date('d / M / Y H:m:s').“ </h3> <hr/>"; echo "<h2> Bienvenido a mi sitio PHP 5 </h2>";
?>
•Se ha reemplazado por:
<h3> El día de hoy es el 12 / Aug / 2016 18:08:18 </h3><hr/> <h2> Bienvenido a mi sitio PHP 5 </h2>
Estructura de archivos XHTML IX
•El intérprete PHP analiza todo el documento y devuelve el código XHTML tal como es, más la evaluación de las expresiones contenidas en código PHP.
•Esto hace suponer que todo en PHP es una expresión, ya que todo el código puede evaluarse como una cadena, un número o un valor booleano.
Estructura de archivos XHTML X
•Las partes de código contenidas dentro de las comillas (“”) se reenvían tal cual en el flujo del documento XHTML. Las etiquetas o marcas HTML que estas contienen se interpretan como tal por el navegador:
◦ Éste es el caso de la segunda línea.
◦ La primera línea contiene una función PHP que devuelve la fecha actual.
Ciclo de vida de página PHP
1. Envío de una solicitud HTTP por el navegador del cliente al servidor, del tipo http://www.miservidor.com/codephp.php
2. Interpretación por el servidor del código PHP contenido en la página llamada.
3. Envío de la respuesta del servidor de un archivo cuyo contenido es puramente XHTML.
Codificación con PHP I
•El código PHP siempre está incrustado en el código XHTML. Por lo tanto, puedes incorporar tantos scripts PHP independientes como desees en cualquier lugar del código XHTML.
•Estás marcas deben estar delimitadas por las etiquetas de apertura y cierre:
◦ Forma estándar: <?php y ?> (marcas 1, 2, 4, 6 y 7)
◦ Forma corta: <?= y ?> (marcas 5 y 8)
◦ Elemento XHTML <script language="php"> (marca 3), rara vez se utiliza
•En un archivo .php podemos, en cualquier momento, pasar de código PHP a código XHTML, y viceversa.
Codificación con PHP II
•Esto es parte de lo que le da su flexibilidad de uso a este código. El siguiente listado ilustra esta característica:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <?php ← (1) $variable1=" PHP 5"; ?> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang=“es"> <head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <?php ← (2)
echo "<title>Una pagina llena de scripts PHP</title>"; ?>
Codificación con PHP III
<body>
<script language="php"> ←(3)
echo"<h1> BUENO DIAS A TODOS </h1>"; </script>
<?php ← (4)
echo "<h2> Titulo escrito por PHP </h2>"; $variable2="MySQL";
?>
<p>Vas a descubrir <?= $variable1 ?> ←(5)</p> <?php ← (6)
echo "<h2> Buenos días de $variable1 </h2>"; ?>
<p> Utilización de variables PHP <br/> Vas a descubrir igualmente <?php ← (7)
Codificación con PHP IV
•Se colocaron ocho mini-scripts PHP en el encabezado (entre <head> y </head>) y en el cuerpo (entre <body> y </body>) o incluso fuera del bloque delimitado por los elementos <html> y </html> del documento XHTML.
•Algunos de estos scripts están involucrados como contenido de un elemento XHTML con una sintaxis particular. Por ejemplo:
◦ <?= $variable1?>
•Puede utilizarse para instrucciones cortas. Es equivalente a:
Codificación con PHP V
•IMPORTANTE: Para utilizar esta notación es necesario que la directiva short open tag esté activada en el archivo de configuración de PHP 5 (el archivo php.ini).
Inclusión de archivos externos I
•Al igual que en JavaScript, es posible escribir código PHP o XHTML en archivos separados para incorporarlos en código XHTML o en otros scripts PHP según sea necesario.
•Esto puede constituir un principio de modularización del código, lo que permite escribir una sola vez algunas partes del código y reutilizarlo en varias páginas diferentes, con una economía importante de tiempo.
Inclusión de archivos externos II
•Normalmente le signamos a los archivos de código PHP la extensión .inc o inc.php, esta última tiene la ventaja de proteger los datos confidenciales que puede contener el código, por ejemplo: los parámetros de conexión a la base de datos (usuario y contraseña).
•El contenido del archivo es interpretado por el servidor.
•Si el archivo contiene sólo la configuración de variables, el servidor no reenvía nada al cliente si alguien intenta ejecutarlo. Mientras que un navegador muestra el contenido de un archivo con la extensión inc solamente.
Inclusión de archivos externos III
•Para incluir el contenido de un archivo externo en el código PHP, disponemos de las funciones enumeradas en la siguiente tabla.
Función Descripción
include(“nombre_archivo.ext”)
Después de la interpretación por el servidor, esta línea es reemplazada por todo el contenido del archivo especificado en el parámetro, se debe proporcionar el nombre y posiblemente la dirección completa. En caso de error, por ejemplo si el archivo no se encuentra, include() genera una advertencia y el script continua.
require(“nombre_archivo.ext”)
Tiene ahora un comportamiento idéntico a include(), a diferencia de que en caso de error, require() produce un error fatal y termina el script.
include_once(“nombre_archivo.ext”) require_once(“nombre_archivo.ext”)
A diferencia de las dos funciones anteriores, estas no se ejecutan varias veces, incluso aunque sean en un ciclo o si estas ya se han ejecutado una vez en el código anterior.
Inclusión de archivos externos IV
•El siguiente ejemplo utiliza las posibilidades de inclusión proporcionadas por estas funciones para crear una página XHMTML a partir de cuatro archivos independientes.
•Nuestra hipótesis es que cada página del sitio tiene el mismo encabezado y el mismo pie de
Inclusión de archivos externos V
•El ejemplo considera los siguientes 5 archivos:
◦ encabezado.inc.php: Contiene el inicio del código XHTML de una página normal (<html>, <head>,
<body>) y tres pequeños scripts PHP. El último de estos scripts (marca 1) muestra el banner común a todas las páginas (marca 2) así como el nombre de archivo ejecutado y el del archivo incluido (marca 3).
◦ cuerpo.inc.php: Contiene sólo código PHP que muestra dos líneas de texto (marca 4).
Inclusión de archivos externos VI
◦ pie.inc.php: Contiene un script con un banner de pie de página y dos enlaces hacia los sitios de interés
(marca 6).
◦ principal.php. Script que utiliza los cuatro scripts anteriores con la ayuda de las funciones include()
(marca 1), include_once() (marca 2), require() (marca 3) y require_once() (marca 4). Es quien debe llamarse directamente. Los demás archivos son solo componentes, normalmente no deben usarse solos.
encabezado.inc.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <?php $variable1="PHP 5"; ?> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang=“es"> <head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <?php
echo "<title>Una página que contiene muchas inclusiones $variable1</title>"; ?>
</head> <body>
<?php ← (1)
$variableext=« Este texto proviene del archivo incluido";
echo "<div><h1 style=\"border-width:5;border-style:double;background-color:#ffcc99;\"> Bienvenido en el sitio $variable1 </h1>"; ← (2)
cuerpo.inc.php y cuerpo.html
•cuerpo.inc.php
<?php
echo "<h1> Este es el cuerpo del documento </h1>"; ←(4)
echo "<h2> Este es el cuerpo del documento </h2>"; ?>
•cuerpo.html
<h1>
Este es el cuerpo del documento :
Con PHP se avanza rápido y con MySQL el sitio es más dinámico... </h1>
pie.inc.php
•pie.inc.php:
<hr/> <?php
echo "<div><h1 style=\"border-width:3;border-style:groove; background-color:
#ffcc99;\"> Final de la página PHP Vínculos útiles : <a href=\"php.net\">php.net</a> <a href=\"mysql.org\">mysql.org</a></h1>"; ← (6)
echo "Nombre del archivo ejecutado: ", $_SERVER['PHP_SELF']," "; echo "Nombre del archivo incluido: ", __FILE__ ,"</div>";
?> </body> </html>
principal.php
•principal.php: <?php include(“encabezado.inc.php"); ← (1) echo "<hr />"; include_once("cuerpo.inc.php"); ← (2) require("cuerpo.html"); ← (3) require_once("pie.inc.php"); ← (4) ?>Agregar comentarios al código I
•Al escribir todo puede parecer obvio; pero cuando se reutiliza un script varios meses más tarde, cuando se trata de realizar actualizaciones, los comentarios evitan perder el tiempo en redescubrir la lógica anteriormente adoptada.
•Los comentarios no se toman en cuenta por el analizador de PHP.
•Nótese que se agrega un poco de bytes al archivo PHP en el servidor, pero estos no están
Agregar comentarios al código II
•Su peso es por lo tanto, irrelevante para la velocidad de transmisión de las páginas.
•PHP soporta los siguiente tres tipos de sintaxis de comentarios:
1. Comentario en una sola línea, iniciando con los caracteres //:
// este es un comentario corto en una línea
2. Comentarios de varías líneas, se inician con los caracteres /* y se cierran con los caracteres */:
/* Este comentario es largo y va a ocupar varias líneas
Agregar comentarios al código III
3. Comentarios de tipo UNIX, de hecho están constituido de una sola línea, que inicia con el carácter #:
#********************** # comentarios de tipo UNIX #**********************