Documentos de Académico
Documentos de Profesional
Documentos de Cultura
de emprender el desarrollo de
Aplicaciones web 14
Arquitectura cliente-servidor 15
Sitios dinmicos 17
El lenguaje PHP 18
Tecnologas del lado servidor 22
Cmo desarrollar sitios
en nuestra mquina local 24
Instalacin 24
Primer ejemplo 28
Inclusin de cdigo PHP
en documentos HTML 32
Extensiones del lenguaje 35
Resumen 37
SERVICIO DE ATENCIN AL LECTOR: usershop@redusers.com Actividades 38
01_Curso de Programacion PHP.qxp 18/09/2008 20:38 Pgina 14
1. INTRODUCCIN AL LENGUAJE
APLICACIONES WEB
En la actualidad, podramos llegar a diferenciar los distintos tipos de aplicaciones en dos
grandes grupos: las de escritorio y las web. Aunque este lmite sea cada da ms difuso
(una aplicacin de escritorio puede llegar a tener una interfaz web y, a travs de un
mismo lenguaje, se puede desarrollar una aplicacin y luego definir si va a ser accesible
por medio de de un navegador o si se va a instalar en el equipo personal del usuario) ser-
vir para que podamos comprender cuales son los alcances de PHP como lenguaje.
El manual oficial de PHP es una muy completa fuente de recursos que nos permitir obtener res-
puestas inmediatas a muchas de nuestras preguntas. Podemos acceder a su versin en lnea en
www.php.net/manual, desde donde tambin podremos descargar versiones en distintos formatos.
14
01_Curso de Programacion PHP.qxp 18/09/2008 20:38 Pgina 15
Aplicaciones web
Arquitectura cliente-servidor
Este concepto manejado en muchos tipos de aplicaciones y particularmente en las
de interfaz web, podra ser definido como un juego de peticiones y respuestas. Un
cliente requiere determinada accin (por ejemplo, a travs de un enlace) y el servi-
dor deber, por medio de un procesamiento, resolver la demanda y devolver una
respuesta. En general, podramos decir que la aplicacin cliente por excelencia es el
navegador web: desde esta clase de programas accedemos a la interfaz del sistema
para interactuar con l.
En el lado del servidor pueden darse una serie de alternativas que desembocarn,
finalmente, en construir una respuesta que sea claramente comprensible para el
cliente. Entre estas alternativas, podemos incluir el tratamiento de esta respuesta a
travs de un lenguaje de programacin, por ejemplo, la extraccin de informacin
desde una base de datos, entre muchas otras posibles.
15
01_Curso de Programacion PHP.qxp 18/09/2008 20:38 Pgina 16
1. INTRODUCCIN AL LENGUAJE
Podramos definir las peticiones desde un navegador como peticiones web, y stas son
resueltas por los llamados servidores web. Las aplicaciones (Apache e IIS son de los
exponentes ms conocidos) se encargan de generar las respuestas y para eso se valen,
en los casos en los que es necesario, de otros actores como los mencionados anterior-
mente: servidores de bases de datos (Oracle, SQL Server, MySQL, PostgreSQL, por
ejemplo) y lenguajes de programacin (PHP, ASP.net, JSP, o PERL, entre otros).
16
01_Curso de Programacion PHP.qxp 18/09/2008 20:38 Pgina 17
Aplicaciones web
Sitios dinmicos
Ya dentro de las aplicaciones web, otra distincin posible podra ser aquella que est
dada entre lo que seran sitios dinmicos y sitios estticos.
Un lenguaje de programacin como alguno de los citados anteriormente, nos dara
la posibilidad de modificar, en tiempo real, la respuesta enviada al cliente sin tener
que variar el cdigo de la pgina. Pongamos como ejemplo un sitio que incluye un
catlogo de productos: si utilizramos pginas estticas, deberamos crear un archi-
vo diferente por cada producto. Con la utilizacin de lenguajes de programacin y
con la obtencin de la informacin particular de cada tem desde una fuente deter-
minada (por ejemplo, una base de datos), slo necesitaramos contar con un archi-
vo cuyo contenido dinmico (nombre del producto, foto, descripcin, etctera)
sera modificado tomando como referencia la peticin del usuario:
http://www.nombre-sitio.com/pagina.php?idProducto=10
17
01_Curso de Programacion PHP.qxp 18/09/2008 20:38 Pgina 18
1. INTRODUCCIN AL LENGUAJE
El lenguaje PHP
PHP (PHP Hypertext Preprocessor) es uno de los lenguajes de programacin ms uti-
lizados en la actualidad (se utiliza mayormente para desarrollo de sitios web pero
para muchos es ya un lenguaje de propsito general). Esto se debe a mltiples fac-
tores, entre los cuales podemos citar los siguientes:
Es libre y gratuito. PHP, al igual que muchos otros lenguajes y entornos de pro-
gramacin, est amparado bajo el movimiento open source (cdigo abierto), que
permite a los programadores de aplicaciones poder sacar provecho de sus benefi-
cios de manera totalmente gratuita, sin la necesidad de pagar licenciamientos de
uso ni actualizaciones. La licencia consta principalmente de tres puntos: libertad
para utilizar el programa (PHP), posibilidad de modificar el programa si se acce-
de a su cdigo fuente, distribuir el programa modificado o no. La licencia de PHP
est disponible en www.php.net/license.
APLICACIONES DE ESCRITORIO
Uno de los proyectos mantenidos por los mismos responsables del lenguaje es PHPGTK, que
permite generar aplicaciones de escritorio a travs del interprete PHP. Su uso no est del todo
extendido, pero el proyecto sigue en pie y evoluciona de manera notable en cada nueva versin.
18
01_Curso de Programacion PHP.qxp 18/09/2008 20:38 Pgina 19
Aplicaciones web
- Mac OS
- Microsoft Windows
- Unix
- Unix / HP-UX
- Unix / Linux
- Unix / Mac OS X
- Unix / OpenBSD
- Unix / Solaris
Hay que aclarar que PHP funciona en todas las versiones de Microsoft Windows,
excepto PHP versin 5 que ya no es soportado por Windows 95.
19
01_Curso de Programacion PHP.qxp 18/09/2008 20:38 Pgina 20
1. INTRODUCCIN AL LENGUAJE
Soporte para mltiples bases de datos. PHP tiene extensiones para soportar, entre
otras, las bases de datos que enumeramos a continuacin:
- DBase
- Informix
- Interbase/Firebird
- Microsoft SQL Server
- msql
- MySQL
- Oracle
- PostgreSQL
20
01_Curso de Programacion PHP.qxp 18/09/2008 20:38 Pgina 21
Aplicaciones web
- SQLite
- Sybase
21
01_Curso de Programacion PHP.qxp 18/09/2008 20:38 Pgina 22
1. INTRODUCCIN AL LENGUAJE
Todos estos servidores, o por lo menos los web, estn instalados en un equipo remo-
to que es el que recibe las peticiones y devuelve las respuestas. Por este motivo, no
es necesario que una mquina cliente (es este contexto un equipo que se utilice para
acceder a travs de Internet a distintos sitios) tenga instalados servidores web o
soporte para bases de datos, por ejemplo: es el destinatario de la peticin el que
22
01_Curso de Programacion PHP.qxp 18/09/2008 20:38 Pgina 23
Aplicaciones web
Figura 11. Perl es un histrico lenguaje de programacin que tiene mucho en comn
con PHP: ambos son libres, multiplataforma, y poseen una gran cantidad de adeptos.
Con relacin a los del lado cliente se incluye, principalmente, el lenguaje de progra-
macin JavaScript. Nada nos impide, y de hecho es usual, incluir o utilizar dentro
de una misma pgina lenguajes de distinto tipo.
LAMP Y WAMP
Estas dos siglas tienen como fin identificar sistemas segn las herramientas con las que cuen-
ten: LAMP significa Linux - Apache - MySQL - PHP/Perl/Python y WAMP, por su parte, Windows
- Apache - MySQL - PHP/Perl/Python. Estas denominaciones aparecen de manera frecuente en
distintos artculos o definiciones.
23
01_Curso de Programacion PHP.qxp 18/09/2008 20:38 Pgina 24
1. INTRODUCCIN AL LENGUAJE
Instalacin
Fundamentalmente, hay dos maneras de instalar estas herramientas en nuestro equipo:
una es artesanalmente, es decir, con la descarga, la instalacin y la configuracin de
cada opcin por separado, y otra es a travs de los llamados paquetes de instalacin.
Estas aplicaciones estn disponibles para distintos sistemas operativos (principal-
mente Windows, Linux, y MacOs) y se encargan de automatizar el proceso de ins-
talacin liberando al usuario de posibles errores e incompatibilidades y, adems,
ahorrndole tiempo. Se realizan instalaciones estndar y luego podemos configurar
cada herramienta segn nuestras necesidades.
24
01_Curso de Programacion PHP.qxp 18/09/2008 20:38 Pgina 25
Instalar WAMP
La instalacin de este paquete de aplicaciones es igual a cualquier instalacin bajo
Windows, por lo cual no deberamos tener inconvenientes. Luego de la pantalla de
bienvenida deberemos aprobar las condiciones de licenciamiento (WAMP es una
aplicacin gratuita) y seleccionar el directorio de instalacin (por defecto, c:\wamp,
en los siguientes apartados asumiremos que se seleccion este directorio). Depus,
un nombre para los accesos directos y, por ltimo, la opcin de iniciar o no WAMP
de manera automtica al comienzo de Windows.
25
01_Curso de Programacion PHP.qxp 18/09/2008 20:38 Pgina 26
1. INTRODUCCIN AL LENGUAJE
Una vez concluidos estos pasos, se nos preguntar cul es la carpeta que har de
DocumentRoot (esto es el directorio en el cual almacenaremos nuestros sitios). Por
defecto es c:\wamp\www.
En la siguiente seccin se nos pregunta acerca de la direccin de nuestro servidor de
correo. Por el momento esto no ser absolutamente imprescindible para nuestros
primeros desarrollos, por ende dejamos el valor por defecto: localhost (lo mismo
para la direccin de correo, you@yourdomain).
En unos momentos veremos cmo la interfaz grfica de WAMP nos puede permi-
tir acceder de manera rpida e intuitiva a diferentes opciones relativas al manejo y
a la administracin de servidores y sitios. En relacin con esto, el instalador nos pide
que definamos la ruta hacia el navegador que WAMP utilizar para acceder a nues-
tros sitios. Por ejemplo, podramos seleccionar Internet Explorer (c:\windows\
explorer.exe) o Mozilla Firefox, si es que est instalado (c:\archivos de progra-
ma\Mozilla Firefox). Una vez concluida la instalacin, tendremos la opcin de ini-
ciar la aplicacin. En el rea de notificacin de nuestro sistema (esto es, por defec-
to, en la parte inferior derecha) observaremos un nuevo icono: al hacer clic sobre l
podremos acceder a las opciones puestas a disposicin por WAMP. Observemos a
continuacin cules son las principales:
26
01_Curso de Programacion PHP.qxp 18/09/2008 20:38 Pgina 27
phpMyAdmin nos permite ingresar, por medio del navegador, a esta popular
aplicacin que nos habilitar a administrar nuestro servidor MySQL, y as poder
manipular las distintas bases de datos que utilizarn nuestros sistemas.
Figura 15. phpMyAdmin es una popular herramienta web que nos permite
administrar servidores de bases de datos MySQL de manera grafica.
27
01_Curso de Programacion PHP.qxp 18/09/2008 20:38 Pgina 28
1. INTRODUCCIN AL LENGUAJE
Desde aqu podremos controlar cada servicio en particular (Start / Resume, Stop, y
Restart) o todos en general (Start All Services, Stop All Services, Restart All Ser-
vices). Esto ser de utilidad cuando modifiquemos alguna de las opciones de confi-
guracin de PHP (archivo php.ini: veremos ms acerca de esto en los prximos apar-
tados), ya que para que tengan efecto deberemos reiniciar el servidor web.
En su sitio web oficial contamos con una seccin de preguntas frecuentes desde la cual
podremos resolver cuestiones referidas a la configuracin e instalacin de la herramien-
ta. La direccin a la que tendremos que acceder es www.en.wampserver.com/faq.php.
Primer ejemplo
Ahora, observaremos cmo crear pginas con la utilizacin del lenguaje de progra-
macin PHP. Con cualquier editor de textos (notepad, emacs, edit plus, o cual-
quier otro) ingresaremos el siguiente contenido:
<?php
?>
28
01_Curso de Programacion PHP.qxp 18/09/2008 20:38 Pgina 29
Lo que haremos como prximo paso ser guardar este archivo bajo el nombre ejem-
plo.php dentro del DocumentRoot (ste es el directorio en el cual almacenaremos
nuestros sitios; recordemos que fue definido durante la instalacin de WAMP y que
por defecto es c:\wamp\www).
Una vez hecho esto, verificararemos que el servicio correspondiente a Apache est acti-
vo (en caso de no estar seguros podemos acceder a la opcin Restart All Services).
http://localhost/ejemplo.php
29
01_Curso de Programacion PHP.qxp 18/09/2008 20:38 Pgina 30
1. INTRODUCCIN AL LENGUAJE
<?php
$hora = date(H:i:s);
echo Esta es la pagina de inicio del Sitio 1. La hora actual es $hora;
?>
<?php
$hora = date(H:i:s);
echo Esta es la pagina de inicio del Sitio 2. La hora actual es $hora;
?>
La funcin date, vista en detalle en los captulos que siguen, recibe un formato de
fecha hora (en nuestro ejemplo hora:minutos:segundos actuales).
30
01_Curso de Programacion PHP.qxp 18/09/2008 20:38 Pgina 31
Una vez creados y guardados los archivos, podremos ingresar a nuestra pgina de
inicio a travs WAMP (opcin localhost) o simplemente si escribimos la siguiente
direccin en la barra de direcciones de nuestro navegador:
http://localhost/
http://localhost/sitio1
http://localhost/sitio2
Esta directiva es configurable por parte del usuario. En caso de que no exista uno
de los archivos especificados en DirectoryIndex dentro del directorio al que inten-
tamos acceder, simplemente se mostrar un listado con todos los archivos de la car-
peta. Por cuestiones de seguridad mnimas, si estos archivos son privados o por
algn motivo no es conveniente que cualquiera que ingrese a nuestro sitio los vea,
ser necesario ubicar un archivo ndice.
Otra opcin importante de este archivo es DocumentRoot, que permite definir el
directorio raz desde el cual se podr acceder a los documentos con un navegador:
DocumentRoot C:/wamp/www
31
01_Curso de Programacion PHP.qxp 18/09/2008 20:38 Pgina 32
1. INTRODUCCIN AL LENGUAJE
Este caso particular indica que al encontrar un peticin que invoque a un archivo
de extensin .php o .php3, se pedir al interprete PHP que resuelva el cdigo all
escrito. Este comportamiento puede aplicarse a otros tipos de archivo, no slo a los
relacionados con PHP:
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
AddType text/html .shtml
Incluso en algunos sistemas est habilitada la opcin de reconocer cdigo PHP den-
tro de documentos de extensin .htm o .html:
32
01_Curso de Programacion PHP.qxp 18/09/2008 20:38 Pgina 33
<?php
?>
Aqu no
<?php
//cdigo
?>
<?
//cdigo
?>
<%
MS INFORMACIN
En la actualidad, hay un acceso casi ilimitado a cdigo PHP: sitios web, revistas, libros, y cursos
son algunas de las fuentes de informacin que nos permitirn tomar nota sobre tcnicas de pro-
gramacin y soluciones que luego podremos aplicar en nuestros propios proyectos.
33
01_Curso de Programacion PHP.qxp 18/09/2008 20:38 Pgina 34
1. INTRODUCCIN AL LENGUAJE
//cdigo
%>
asp_tags = On
Para incluir cdigo PHP en un documento HTML, slo debemos ubicar nuestro
cdigo en el lugar que corresponda dentro de la estructura del documento:
<!DOCTYPE html
PUBLIC -//W3C//DTD XHTML 1.0 Transitional//EN
http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd>
<html xmlns=http://www.w3.org/1999/xhtml>
<head>
<title> titulo del <?php echo documento; ?> </title>
</head>
<body>
<?php
$hora = date(H:i:s);
echo <b> Esto es cdigo generado por el preprocesador PHP. La
hora actual es $hora </b>;
?>
</body>
</html>
En los prximos captulos, veremos cmo PHP interacta de manera natural con los dems
componentes que forman parte del entramado de una aplicacin web, tal es el caso de las bases
de datos (por ejemplo, MySQL o SQLite) o los servidores web (por ejemplo, Apache).
34
01_Curso de Programacion PHP.qxp 18/09/2008 20:38 Pgina 35
Por ltimo, habr que copiarlo a un directorio que est bajo el DocumentRoot
(Directorio raz), del servidor, e invocarlo desde un navegador web. Veamos en el
ejemplo a continuacin cmo quedara la salida de ste:
<!DOCTYPE html
PUBLIC -//W3C//DTD XHTML 1.0 Transitional//EN
http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd>
<html xmlns=http://www.w3.org/1999/xhtml>
<head>
<title> titulo del documento </title>
</head>
<body>
<b> Esto es cdigo generado por el preprocesador PHP. La hora actual es
20:16:42 </b>
</body>
</html>
LIBERTADES
Las caractersticas de PHP hacen que el programador se sienta libre en lo que respecta a cmo
escribir el cdigo de las aplicaciones porque cuenta con una gran cantidad de opciones. Esto es
una ventaja por un lado, pero por otro nos obliga a mantener una lnea en cuanto a cmo man-
tener desarrollos prolijos y comprensibles.
35
01_Curso de Programacion PHP.qxp 18/09/2008 20:38 Pgina 36
1. INTRODUCCIN AL LENGUAJE
extension=php_mysql.dll
;extension=php_mysql.dll
Por otra parte, hay que aclarar que, en este caso, para acceder a un servidor de bases
de datos a travs de estas funciones, ste deber estar activo. Una cosa son las fun-
ciones para acceder y otra es el servidor de bases de datos en s.
Bibliotecas en PHP
PHP incorpora, sin necesidad de ningn tipo de instalacin ni habilitacin extras,
una gran cantidad de bibliotecas, por lo cual contaremos con mltiples funciones para
comenzar a desarrollar sitios profesionales. Entre estas extensiones se encuentran:
36
01_Curso de Programacion PHP.qxp 18/09/2008 20:38 Pgina 37
Funciones de secuencia
Funciones de cadenas
Funciones URL
Funciones para manejo de variables
Para que los cambios (en este caso, la habilitacin o deshabilitacin de extensiones)
tengan efecto, habr que reiniciar el servidor web.
Podemos ver qu bibliotecas tenemos activas en nuestro sistema si utilizamos la fun-
cin phpinfo de la siguiente manera:
RESUMEN
En este captulo, aprendimos los puntos bsicos que nos permitirn, a lo largo de nuestra
explicacin, avanzar y asimilar la forma de trabajo para poder generar aplicaciones web con
la utilizacin de PHP en conjunto con otras tecnologas, e instalar el paquete WAMP, que inclu-
ye las herramientas necesarias para desarrollar en este lenguaje.
37
01_Curso de Programacion PHP.qxp 18/09/2008 20:38 Pgina 38
ACTIVIDADES
38