You are on page 1of 185

rea Tecnolgica de Educacin Virtual UTN FRC SEU

PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP




UNIVERSIDAD TECNOLGICA NACIONAL
Facultad Regional Crdoba




Secretaria de Extensin Universitaria




rea Tecnolgica de Educacin Virtual



Coordinador General de Educacin Virtual: Magster Leandro D.
Torres


Curso:
PHP, MySQL y E-Commerce EV
05400/11
Mdulo:
Introduccin al comercio
electrnico y PHP

Tutor: Ing. Oscar R. Espeche
Autor: Ing. Oscar R. Espeche

1
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP


Mdulo1: Introduccin al Comercio Electrnico y PHP
1.1 Introduccin al comercio en Internet y sitios Web
1.1.1 Publicar en Internet
1.1.2 Comercio en lnea
1.1.3 Lenguajes en la Web
1.1.4 HTML
o Introduccin al HTML
o Enlaces
o Tablas
o Formularios
o CSS, hojas de estilos
1.2 Tcnicas para solapar cdigo PHP y HTML
1.3 Tipos de variables
1.3.1 Enteros
1.3.2 Tcnicas para solapar cdigo PHP y HTML
1.3.3 Tipos Punto flotante
1.3.4 Cadenas
1.3.5 Arrays
1.3.6 Objetos
1.4 Uso de las variables
1.5 Variables externas a PHP
1.6 Constantes
1.7 Expresiones
1.8 Operadores


Autor: Ing. Oscar R. Espeche

2
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

1.1 Introduccin al comercio en Internet y sitios Web

Internet es una red de computadores conectados en toda la extensin del Globo Terrqueo que
ofrece diversos servicios a sus usuarios como pueden ser el correo electrnico, el chat o la web.
Todos los servicios que ofrece Internet son llevados a cabo por miles de computadores que
estn permanentemente encendidos y conectados a Internet, esperando que los usuarios les
soliciten los servicios y sirvindolos una vez son solicitados. Como decimos, hay servidores para
todo, los hay que ofrecen correo electrnico, otros hacen posible nuestras conversaciones por
chat, otros la transferencia de archivos o la visita a las pginas web y as hasta completar la
lista de servicios de Internet.

Tambin existe otro tipo de servidores que son los que se encargan de proveer de acceso a
Internet a nuestros computadores, son los proveedores de acceso, los servidores a los que nos
conectamos con nuestros mdems. Cuando hacemos la llamada con el mdem a los servidores
que proveen el acceso entramos a formar parte de Internet y mientras mantengamos la
conexin podremos acceder a todos los servidores repartidos por todo el mundo y solicitarles
sus servicios.

1.1.1 Publicar en Internet

En el momento que pedimos un servicio de Internet nos convertimos en clientes del servidor
que lo ofrece. Para solicitar uno de estos servicios es necesario contar con un programa
especial que suele ser distinto para cada servicio de Internet. Por ejemplo, para acceder al
correo electrnico utilizamos Outlook, para acceder a la web utilizamos Netscape o Internet
Explorer o para entrar en el chat utilizamos un programa como Mirc o Pirch. Todos estos
programas que nos dan acceso a los servicios de Internet se denominan clientes, como se
puede ver, para ser el cliente de un servidor de Internet necesitamos un programa cliente del
servicio al que intentamos acceder.

La web es un servicio de Internet

Toda esta introduccin sirva para que nos demos cuenta que Internet es un conjunto de
servicios y el web, que es lo que tratamos de analizar, no es ms que uno de ellos.
Probablemente sea el ms popular en estos momentos y a veces parezca que Internet se limita
al web, como en los anuncios de prensa, donde casi siempre nos venden portales o productos
de la web como si ellos fueran lo nico que se puede hacer en Internet. La web es entonces un
servicio ms que consiste en un inmenso conjunto de pginas conectadas unas a otras por un
sistema de enlaces.

El sistema con el que est construido el web se llama hipertexto y es un entramado de pginas
conectadas con enlaces. Los sistemas de hipertexto se utilizan en otros contextos, como la
ayuda del Windows y son muy fciles de utilizar y de encontrar lo que buscamos rpidamente.
La web no solo se limita a presentar textos y enlaces, sino que tambin puede ofrecernos
imgenes, videos, sonido y todo tipo de presentaciones, llegando a ser el servicio ms rico en
medios que tiene Internet. Por esta razn, para referirnos al sistema que implementa el web
(hipertexto), se ha acuado un nuevo trmino que es hipermedia, haciendo referencia a que el
web permite contenidos multimedia.

Multimedia, por si alguno no lo sabe todava, hace referencia a muchos medios, solamente
quiere decir que se estn utilizando muchos medios para presentar informacin como son el
vdeo, el audio o realidad virtual. Cuando nos venden un computador multimedia, nos venden
un computador que est construido para poder trabajar con muchos medios, como imagen,
sonido, animacin, video, etc.

Cmo es una web por dentro
Autor: Ing. Oscar R. Espeche

3
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP


Una pgina web la vemos en nuestro navegador, o cliente web, y parece una sola entidad, pero
no es as, est compuesta por multitud de diferentes archivos, como son las imgenes, los
posibles vdeos y lo ms importante, el cdigo fuente que dice donde colocar cada texto, cada
imagen o cada video y la forma que tendrn estos al ser colocados en la pgina. No es
problema que las webs estn compuestas por tantos elementos, ya que rpidamente veremos
que su organizacin es fcil y que no se nos van a perder o escapar ninguno.

Como hemos podido imaginar y a modo de resumen, para publicar en Internet necesitaremos
construir unos documentos hipertexto, o hipermedia, con sus correspondientes archivos de
imagen o video y colocarlos en unos computadores que son servidores de pginas web. Pero
esto es algo que vamos a tratar de explicar poco a poco en los siguientes captulos.

Aunque signifique adelantarse a los acontecimientos, es interesante sealar que con una simple
accin podemos ver el cdigo fuente de de las pginas, es decir, cmo estn hechas por dentro.
Para ello en Internet Explorer se ha de pulsar sobre el men de Ver > Cdigo fuente y en
Netscape se ha de seleccionar Ver > Origen de la pgina.

Pasos previos

1. Pensar un tema

Para publicar una pgina en Internet debemos seguir unos pasos, primero una planificacin,
luego la construccin de las pginas y ms tarde la promocin y constante actualizacin de
las pginas. En este captulo vamos a ver cules son los pasos previos que debemos realizar
para que nuestro esfuerzo y resultados sean lo ms ptimos posibles, es decir, vamos a ver
cul es la planificacin que hay que hacer antes de ponerse manos a la obra.

Puede ser el ms importante de los pasos para la creacin de un web. Hay que elaborar la
idea y documentarse sobre el tema que has elegido para tu pgina en Internet.

Cuando hacemos incluso una pgina personal podemos hablar de algn tema interesante
como nuestro equipo de ftbol o nuestro cantante favorito, o de un tema que nos conmueva
profundamente, como el ecologismo o la historia de nuestra regin.

Tambin podemos construir una pgina que trate de nuestra familia o de nuestros perros, o
todo junto, pero tenemos que tener en cuenta que el valor de este tipo de pginas es
mucho menor y que a los dems usuarios seguramente no les va a interesar. Si deseamos
construir una pgina que algn da sea popular, debemos abordar, como digo, temas que
sean de inters para un grupo de gente.

Una vez pensado el tema es muy importante documentarse lo ms posible sobre l, aunque
muchas de las ideas pueden estar en nuestra cabeza, es importante tomar notas,
fotografas u opiniones de otras personas que tambin conocen el asunto que nos traemos
en la cabeza. Insisto, es importante que el material que vamos a publicar tenga el mayor
valor posible, as conseguiremos los mejores resultados.

2. Estructura del sitio

Es importante tambin que pensemos en la estructura de los contenidos de todo el sitio
antes de ponernos a disearlo. En este punto tenemos que pensar sobre varias cosas, como
las distintas secciones que va a contener el sitio, el rbol de las pginas que vamos a tratar,
etc.

La manera de que este punto sea realmente til, es preparar todas estas ideas sobre el
papel. Con toda la tranquilidad del mundo y con toda la determinacin posible vamos a
Autor: Ing. Oscar R. Espeche

4
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

preparar una serie de diagramas y listados que nos permitan dirigir nuestros esfuerzos de la
manera ms ptima.

Secciones del sitio: Podremos pensar en qu secciones vamos a poner en el sitio. Una con
informacin general, otra con informacin de contacto, otra con una visita grfica a nuestras
instalaciones, etc.

rbol del sitio: Podemos dibujar en un papel cules son las distintas secciones del sitio,
metidas dentro de cuadrados y representar tambin los enlaces que hay entre cada seccin,
mediante lneas que unen esos cuadrados. Es algo muy simple y divertido de hacer, adems
podemos tener nuevas ideas para el web a medida que lo vamos dibujando.

Esquema de una pgina: podemos dibujar en papel tambin una pgina del sitio que
vamos a construir, para que veamos donde colocar la barra de navegacin, el logotipo del
sitio o la empresa, un posible banner publicitario, etc. Este esquema puede ser tambin de
utilidad a la hora de construir las pginas y siempre es ms fcil disear sobre el papel que
disear directamente con el computador.

Estos pasos son opcionales, cualquiera puede ponerse a construir una pgina nada ms
decidir que desea tener una web, pero no todo el mundo es capaz de plantearse bien cules
son sus objetivos y formar un proyecto con todos los puntos desarrollados de antemano.
Los resultados finales son lo ms importante y empezar la casa por el tejado no va a ser lo
ms positivo para nuestra pgina y los resultados finales mejorarn si hacemos primero una
planificacin.

Qu necesitas para empezar
Para ponernos a disear pginas web nos hace falta realmente poco material. En la mayora de
los equipos que se instalan con Windows se encuentran todos los materiales necesarios para
empezar sin necesidad de obtener nuevos programas.
En concreto, los materiales necesarios son un editor de textos, con el que programaremos
nuestras pginas y un cliente del web como Internet Explorer o Netscape Navigator. Como un
computador Windows por defecto siempre tiene instalado el Block de Notas y tambin el
Internet Explorer se puede empezar a construir una pgina web sin ms necesidades que lo que
ya tenemos.
En otros sistemas distintos de Windows ser tambin muy fcil obtener un editor de textos
sencillo y un navegador con el que ver las pginas que vamos a crear, si es que no estn
instalados ya. Sitios en la web desde donde se pueden descargar estos programas son Tucows
o Download.com, donde tienen software de todos los sistemas operativos como Windows, Mac
OS, o Linux.
Sin duda, en nuestra aventura con el desarrollo del web vamos a necesitar muchos ms
programas como por ejemplo programas de retoque fotogrfico o editores complejos de
pginas web, pero no es necesario que los introduzcamos todava en este manual porque no
son necesarios para dar nuestros primeros pasos.
Qu es HTML
HTML es el lenguaje con el que se definen las pginas web. Bsicamente se trata de un
conjunto de etiquetas que sirven para definir la forma en la que presentar el texto y otros
elementos de la pgina.
Autor: Ing. Oscar R. Espeche

5
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

El HTML se cre en un principio con objetivos divulgativos. No se pens que la web llegara a ser
un rea de ocio con carcter multimedia, de modo que, el HTML se cre sin dar respuesta a
todos los posibles usos que se le iba a dar y a todos los colectivos de gente que lo utilizaran en
un futuro. Sin embargo, pese a esta deficiente planificacin, si que se han ido incorporando
modificaciones con el tiempo, estos son los estndares del HTML. Numerosos estndares se han
presentado ya. El HTML 4.01 es el ltimo estndar a febrero de 2004.
El HTML es un lenguaje de programacin muy fcil de aprender, lo que permite que cualquier
persona, aunque no haya programado en la vida pueda enfrentarse a la tarea de crear una
web. HTML es fcil y pronto podremos dominar el lenguaje. Ms adelante se conseguirn los
resultados profesionales gracias a nuestras capacidades para el diseo y nuestra vena artstica.
Una vez que conozcamos el concepto de HTML vamos a adelantar algunas cosas ms. Este
lenguaje se escribe en un documento de texto, por eso necesitamos un editor de textos para
escribir una pgina web. As pues, el archivo donde est contenido el cdigo HTML es un
archivo de texto, con una peculiaridad, que tiene extensin .html o .htm (es indiferente cul
utilizar). De modo que cuando programemos en HTML lo haremos con un editor de textos, lo
ms sencillo posible y guardaremos nuestros trabajos con extensin .html, por ejemplo
mipagina.html.
Por adelantar un poco cmo se utiliza el HTML os diremos que el lenguaje consta de etiquetas
que tienen esta forma <B> o <P>. Cada etiqueta significa una cosa, por ejemplo <B> significa
que se escriba en negrita (bold) o <P> significa un prrafo, <A> es un enlace, etc. Casi todas
las etiquetas tienen su correspondiente etiqueta de cierre, que indica que a partir de ese punto
no debe de afectar la etiqueta. Por ejemplo </B> se utiliza para indicar que se deje de escribir
en negrita. As que el HTML no es ms que una serie de etiquetas que se utilizan para definir la
forma o estilo que queremos aplicar a nuestro documento. <B>Esto est en negrita</B>.
Editores de HTML
Para las personas que no deseen complicarse la vida con el lenguaje HTML, porque no tengan
tiempo de aprenderlo o porque se sientan incapaces de hacerlo, hay una posibilidad distinta a
programar directamente el HTML a base de texto. Se trata de utilizar un tipo de programas que
nos permiten disear la pgina como si estuviramos escribiendo un documento con un editor
del tipo de Word. El editor de HTML es el encargado de vrselas con el lenguaje y programar
internamente la pgina con el cdigo HTML segn lo que nosotros estamos diseando.
Con el editor HTML podemos colocar imgenes, definir estilos, utilizar negritas o cursivas, etc.
sin preocuparnos de las etiquetas correspondientes a cada estilo o elemento. Es el editor el que
sabe estas etiquetas y las utiliza convenientemente. Este tipo de editores HTML se denominan
habitualmente WYSIWYG (What You See Is What You Get) porque cuando trabajas con ellos lo
que ves que ests creando con el editor es lo que obtienes luego cuando grabas la pgina.
Existe entre las personas que se dedican a realizar las pginas web dos tendencias. Por un lado
tenemos a las personas que prefieren crear las pginas programando el HTML y por otro las
personas que utilizan editores HTML. Algunas diferencias entre hacerlo de un modo u otro son
las siguientes:
Escribiendo el HTML Con un editor WYSIWYG
Dominas con mayor precisin el cdigo de
la pgina, queda ms limpio. Si dominas
bien el HTML nunca tendrs ningn
problema para hacer lo que deseas.
El cdigo de la pgina tiene peor calidad,
incluso puede llegar a tener errores, ms
o menos visibles, que cuestan arreglar. Es
la mquina la que domina el trabajo.
Es ms complicado el aprendizaje, ms El aprendizaje es muy sencillo, tal como
Autor: Ing. Oscar R. Espeche

6
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

lento y cuando se llega a un nivel
avanzado tambin se hace
considerablemente ms difcil
puede ser trabajar en Word. Solo se trata
de manejar un programa ms.
Hacer una pgina cuesta ms trabajo y
tiempo.
Es muy rpido.
Cada uno debe escoger el camino que ms le convenga o el que le parezca ms atractivo. De
todos modos siempre se puede empezar de un modo y luego pasar al otro modo sin ningn tipo
de problema. Incluso, por adelantarnos a los acontecimientos, diramos que cuando una
persona profundiza en el diseo de pginas web llega un momento en el que le hace falta
conocer las dos maneras de construir webs. A los programadores en HTML les har falta
aprender un editor porque eso aumentar su productividad y los que utilizan editores
necesitarn aprender un poco de HTML para arreglar alguna cosa que el editor ha hecho mal o
realizar alguna cosa que el editor no puede hacer.
En el mercado existen multitud de editores de HTML WYSIWYG, es importante elegir un editor
bueno porque nuestros trabajos van a depender de sus resultados. Actualmente el rey de los
editores y el que os aconsejaramos sin duda es el Dreamweaver, fabricado por Macromedia.
Otras posibilidades son editores como GoLive de Adobe o Frontpage de Microsoft.
Editores de texto preparados para escribir HTML
Las personas que despus de estas lneas han decidido aprender el lenguaje HTML tambin
tienen herramientas muy interesantes para aumentar su productividad sin dejar de escribir
ellos mismos el HTML que desean. Se trata de unos editores de texto, como cualquier otro, que
estn preparados para escribir HTML y por lo tanto ofrecen multitud de ayudas a los
diseadores
Colorean los cdigos de las pginas para hacerlos ms comprensibles
Ofrecen ayudas a la programacin
Completan etiquetas
Y un montn de cosas ms que sera demasiado complejo de enumerar aqu. Estos editores son
por ejemplo Home Site o UltraEdit y es muy recomendable utilizarlos para sentirnos ms a
gusto al programar las pginas y poder hacerlas ms rpido. Posiblemente sea aconsejable
empezar con el Block de notas, por que es lo ms sencillo, pero utilizar un programa de estos
ser imprescindible con el tiempo.

Construir las pginas

Por fin empezamos a trabajar en la pgina y vamos a ver algunos consejos tiles para hacerlo
bien.

Es el momento en el que nos ponemos manos a la obra de una forma ms dedicada y tenemos
que trabajar ms duramente. El programar o disear las pginas podr gustar ms o menos
que otras acciones como planearlas o promocionarlas ms tarde, pero no cabe duda que es el
momento ms excitante porque nuestros sueos y nuestras ideas empiezan a concretarse en
los resultados que esperbamos conseguir.

Si hemos proyectado un sitio compuesto por un gran nmero de pginas lo ms habitual es
empezar diseando una pgina con el marco del sitio, que luego vamos a repetir a modo de
plantilla en todas las pginas. Pero esto son tcnicas que aprenderemos con el tiempo.

Para ahorrarnos errores cuando hacemos las pginas podemos seguir una serie de consejos
tiles.
Autor: Ing. Oscar R. Espeche

7
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

No utilizar espacios en los nombres de los archivos de las pginas o las imgenes.
Tampoco utilizar caracteres raros como la o los acentos.
Tener cuidado con las maysculas y las minsculas en los nombres de los archivos que
tratamos. Si las utilizamos equivocadamente la pgina podr funcionar en nuestro
Windows (por que le dan igual las maysculas y las minsculas), pero al subirla al
servidor Linux o Unix podra ser que no funcionase (porque estos sistemas si que
distinguen entre maysculas y minsculas).
Enterarse de cmo funciona el documento por defecto, que nos permitiris que lo
expliquemos en captulos posteriores.
Trabajar siempre con una extensin del archivo HTML especfica. No mezclar en un
mismo proyecto pginas con extensin .html y .htm.
Imgenes y otros recursos
Como se ha podido ver anteriormente, el diseo de una pgina web implica la creacin de un
archivo en cdigo HTML, pero no es lo nico que debemos crear. En la mayora de los casos
tambin desearemos incluir imgenes y para ello ser necesario crear los correspondientes
archivos grficos.
El proceso para incluir una imagen en una pgina empieza por la creacin de la imagen con un
programa de diseo grfico o mediante su digitalizacin con un escner. Ser necesario que
conozcamos alguno de los programas de diseo grfico que existen en el mercado. Son muy
interesantes Photoshop, Paint Shop Pro o Fireworks. En un principio podremos contentarnos con
manejarlos por encima y nos resultar muy fcil, pero segn avancemos en el camino como
diseadores web ser ms necesario dominarlos para obtener resultados ms profesionales.
Los tipos de archivos grficos que soporta Internet son el JPG y el GIF. Tienen caractersticas
distintas y por tanto usos distintos.
Una vez tenemos los archivos grficos los ponemos en el mismo directorio que los archivos
HTML o en un subdirectorio de este y en el cdigo de la pgina HTML pondremos una etiqueta
especial para incluir la imagen, o la insertaremos con nuestro programa editor de HTML.
Lo importante de todo esto es que nos percatemos que el sitio web est compuesto por
archivos HTML, GIFs, JPGs e incluso los correspondientes archivos que contengan videos,
animaciones Flash, programas Java, etc.
Todos estos archivos los tenemos que tener bien localizados dentro de nuestro disco duro y
dentro de un mismo directorio. Por supuesto el orden como estn los archivos dentro del
directorio es indiferente, pero podr ser interesante que incluyamos subdirectorios para que
quede todo mejor colocadito y su mantenimiento sea ms fcil. Por ejemplo, una tcnica muy
habitual es colocar todas las imgenes dentro de un subdirectorio llamado comnmente images
como en ingls.
El objetivo de tanto orden y conocimiento de la localizacin de todos los archivos es que luego
tendremos que subirlos al servidor sin olvidarnos de ninguno. En captulos posteriores veremos
cmo se hace este paso.
Un problema tpico con las imgenes y otros archivos externos consiste en que cuando vemos
las pginas en nuestro computador se ven correctamente y no falta ninguna imagen ni otros
posibles elementos. Sin embargo, cuando subimos los archivos al servidor y vemos la pgina
desde Internet esta se muestra con errores en las imgenes y otros elementos, de modo que
no se pueden ver. Esto suele llamarse tener una imagen "rota". La razn por la que est rota es
que no puede localizarla en el servidor y por tanto no la puede mostrar. Esto puede ser debido
a varias razones.
Autor: Ing. Oscar R. Espeche

8
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

La imagen no ha sido subida al servidor
La posicin relativa de la imagen con respecto a la pgina no es la misma en nuestro
computador (local) y en el servidor (remoto). Por ejemplo, las imgenes en local podran
estar en el directorio images mientras que en remoto podran estar en el mismo
directorio que la pgina, lo que sera un error. Siempre se debe respetar la estructura de
directorios que hay en local y crearla exactamente igual en remoto.
La imagen que se intenta acceder tiene un camino dirigido a un directorio de nuestro
disco duro, como al ver la pgina desde Internet no se tiene acceso a tu disco duro, los
usuarios no podrn ver las imgenes. Cuando trabajamos con un editor de HTML y
colocamos imgenes en algunas ocasiones el editor coloca caminos en nuestro disco
duro en lugar de caminos relativos. Los caminos relativos son rutas que empiezan en el
lugar donde est la pgina que estamos diseando.
El usuario no tiene derechos para acceder al archivo en el servidor.
Hay una forma muy til de obtener pistas acerca del fallo de una imagen, consiste en pulsar
con el botn derecho del ratn sobre ella y seleccionar propiedades. Esto nos muestra
informacin sobre la imagen y nos informa sobre el sitio donde se est intentando encontrarla.
Alojar las pginas
Como hemos dicho, cualquier servicio que se quiere ofrecer en Internet tiene que brindarlo un
servidor, que es un computador que se encuentra encendido las 24 horas del da y conectado a
Internet tambin permanentemente. En el caso de una pgina web, existen unos servidores
que son los encargados de mandarla cuando se la solicita, son los servidores web. Nuestras
pginas tienen que estar alojadas en un servidor web para que puedan estar accesibles desde
Internet.
Lo que tendremos que hacer entonces es buscar un lugar para alojar la pgina que est acorde
con nuestras necesidades, por suerte en muchos de los casos el alojamiento lo podremos
conseguir de manera gratuita, sin embargo si nuestro sitio es algo serio debemos buscar uno
que sea pago.
Subir los archivos al servidor
Es una de las tareas que parecen ms difciles cuando te pones a construir las pginas. Igual
que cualquier cosa en este mundo, cuando lo haces unas cuantas veces el problema se
desvanece.
Bsicamente lo que tenemos que hacer es tomar todos los archivos que componen nuestro sitio
web, incluidas imgenes, animaciones, etc. y subirlas a nuestro servidor web. Para ello primero
es tarea imprescindible el identificar dnde estn todos los archivos de nuestro web. Si hemos
escrito la pgina con cdigo HTML seguramente sabremos perfectamente donde estn nuestros
archivos, pero si la pgina la hemos hecho con un editor HTML como Frontpage es probable que
estn un poco ms difciles de identificar.
Dependiendo del alojamiento que tengamos, la manera de subir los archivos cambiar. Existen,
de todos modos, dos maneras de subir los archivos al servidor, por FTP o a travs de una
interfaz web, de modo que podremos ver aqu todas las formas.
Subir archivos por FTP
La forma ms tradicional de subir archivos es por FTP, que es un servicio ms de Internet que
se utiliza para transferir archivos por la red. Como lo que queremos hacer es transferir los
archivos desde nuestro computador al servidor, este es el servicio que debemos utilizar.
Cuando tenemos un alojamiento profesional para nuestras webs lo ms seguro es que nos
proporcionen un acceso por FTP a los servidores para subir las pginas.
Autor: Ing. Oscar R. Espeche

9
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

Como otros servicios de Internet, para utilizar FTP necesitamos un programa especial que se
denomina cliente de FTP. Podemos encontrar en el mercado muchos de estos clientes, algunos
populares son Cute FTP o FTP Voyager. Si queremos ver una gama muy amplia de clientes FTP
podemos acercarnos por Tucows o Donwload.com y encontraremos muchas opciones
interesantes, algunas de ellas gratuitas.
Todos los programas de FTP son parecidos (igual que Internet Explorer es parecido a
Netscape), bsicamente consisten en una ventana que est partida en dos partes. En una parte
podemos ver nuestro disco duro, con sus distintas unidades y carpetas. En la otra parte se
puede ver el sistema de archivos del servidor, con sus correspondientes carpetas. Para mover
los archivos de un lugar a otro suele bastar con arrastrarlos de una parte de la ventana a la
otra.
Una tarea que tambin puede ser complicada en un principio puede ser el configurar el
programa de FTP para que acceda al espacio que tenemos asignado. Los datos de configuracin
los debes obtener en el lugar donde te ofrecieron el espacio, son estos:
Nombre del servidor FTP: suele tener una forma como ftp.tudominio.com
Usuario: tu nombre de usuario.
Password: tu palabra de clave
Podra haber algn dato adicional, como el directorio por defecto, que es el directorio en el que
deseas abrir la sesin, pero no es habitual que te den este dato porque los accesos por FTP
suelen estar configurados para que se acceda directamente al directorio donde estn tus
pginas.
Acceso con interfaz web
Es muy tpico que los proveedores de alojamiento gratuito provean de una herramienta de muy
fcil uso para subir las pginas. Esta herramienta se accede a travs de la web alojador y no es
ms que un formulario donde se puede elegir los archivos que se desea subir al servidor, se
pulsa un botoncito, y todo listo.
Documento por defecto
Es importante conocer este concepto, incluso antes de ponerse ha disear la pgina. El
documento por defecto es el archivo que enva el servidor cuando el cliente no especifica que
archivo es el que solicita. Esto se puede ver muy fcilmente con un ejemplo.
Cuando escribimos la direccin http://www.pepe.com/ no estamos especificando ningn
nombre de archivo en concreto, entonces el servidor web donde est alojado este sitio web le
devolver el documento por defecto del directorio raz del dominio. Cada directorio puede tener
un documento por defecto, por ejemplo, cuando escribimos www.pepe.com/documentos se
enva el documento por defecto del directorio documentos.
Cada servidor web puede ests configurado de una manera distinta para el documento por
defecto, es decir, en cada servidor web el documento por defecto puede ser distinto. Lo ms
habitual es que se llame index.html, pero en otros casos puede variar el documento por defecto
y ser lo que los administradores de cada servidor decidan. Otros nombres para el documento
por defecto podran ser default.html o ind.html, etc.
Nota: En la mayora de los sitios web el documento por defecto es en realidad index.php.
Esto es porque el sitio est programado con pginas dinmicas PHP, que son un poco ms
complejas, pero que tambin nos permiten hacer cosas ms avanzadas.
Autor: Ing. Oscar R. Espeche

10
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP


Decimos que es importante saber cul es nuestro documento por defecto porque es necesario
que llamemos a la primera pgina de nuestro sitio web con ese nombre de archivo, de modo
que no tengamos que saber el nombre de ningn archivo de nuestra pgina para acceder y la
direccin ser ms corta.
Promocin de las pginas
Con el diseo y la publicacin del sitio web en el servidor no se termina el trabajo. Una de las
tareas ms importantes para el xito de la web es promocionarla adecuadamente, de manera
que su direccin figure en el mayor nmero de sitios.
Las acciones que se pueden realizar para promocionar una pgina son muchas y variadas, como
hacer que figure su direccin en nuestros correos electrnicos o intercambiar banners, pero la
ms importante es el registro en los buscadores.
Estas tareas de promocin no son nada complicadas y cualquiera puede realizarlas sin ningn
problema, pero conseguir que nuestra web se encuentre situada entre los primeros resultados
de la bsqueda reviste ms dificultad.
Actualizar las pginas
El ltimo "truco" para que nuestra pgina sea muy visitada y que los visitantes entren una y
otra vez se trata de mantenerla siempre bien actualizada. Hay algunas webs que se prestan
ms que otras a tener los contenidos actualizados, como son las pginas donde se pueden ver
contenidos de actualidad, pero en general todas las pginas pueden mantener secciones con
contenidos actualizables.
Este es un aspecto muy importante, pues si el navegante se percata de que los contenidos se
renuevan constantemente volver con el tiempo unas cuantas veces. Para dar una imagen de
web actualizada se pueden utilizar imgenes o textos que resalten donde ponga "nuevo" o
"new". Tambin ser adecuado poner un rea en un sitio visible donde se enumeren las
novedades del sitio.
Por lo general habr que volver siempre sobre este punto para ver qu hay de nuevo y dnde
se puede renovar el contenido del web. No es bueno tener un enlace que no lleva a ningn
sitio, igual que no es bueno tener una direccin de correo que no existe ya. Adems, si
tenemos un rea de noticias no ser bueno que la ltima noticia sea de hace tres meses porque
da la impresin de que nunca renovamos los contenidos.
Si no mantenemos nuestro sitio actualizado el visitante entrar una vez a la pgina pero no lo
volver a hacer nunca, con lo que habremos perdido una oportunidad de hacernos con un
cliente o un visitante asiduo. Supongo que habr quedado claro lo importante de esta tarea,
aunque salta a la vista, creo, para la mayora de las personas.
Actualizar pginas web
Es un tema bastante trivial para una persona que tenga ya un poco de experiencia en el
desarrollo de webs pero merece la pena abordar el asunto.
Obtener los archivos a actualizar
El primer paso sera disponer de los archivos de la pgina web que queremos actualizar en
nuestro computador de trabajo. Generalmente tendremos que editar un texto o una fotografa,
as que este primer paso ser obtener los archivos con el cdigo de la pgina, con extensin
.html o las fotografas, que sern archivos en formato GIF (.gif) o JPG (.jpg).
Autor: Ing. Oscar R. Espeche

11
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

Puede ocurrir que la pgina la hayamos programado nosotros u otra persona. En el primer caso
posiblemente ya tengamos esos archivos en nuestro computador, en caso contrario, o si era
otra persona la que haba desarrollado el sitio a actualizar, deberemos conectarnos por FTP al
servidor web para obtener los archivos.
Para conectarse por FTP al servidor de la pgina necesitaremos la direccin de dicho servidor,
algo como ftp.tudominio.com. Adems necesitaremos los datos de usuario y contrasea con
permiso para acceder al FTP. Estos datos los debemos obtener, si es que no los tenemos ya,
pidindoselos al proveedor del espacio o a la persona que lo ha contratado. Para conectarse al
servidor deberemos configurar un programa FTP con esos datos.
Editar las pginas
Una vez disponemos de los archivos que deseamos editar en nuestro computador podemos
empezar el trabajo de actualizacin propiamente dicho. Para trabajar ser importante disponer
de algunos conocimientos en la edicin de pginas web o en el diseo grfico.
El proceso, ya sea tanto para editar un grfico como un texto, ser el mismo. Bsicamente
abriremos el archivo donde se encuentra la informacin a editar, lo actualizaremos y
guardaremos los cambios.
Subir los archivos otra vez al servidor
Para que las actualizaciones tengan validez y sean visibles por todos los visitantes de nuestras
pginas, hay que colocar los archivos que hemos editado en el servidor.
Para eso basta con conectarse de nuevo al servidor por FTP y subir los archivos, realizando un
proceso similar al realizado al descargar los archivos, pero en direccin contraria, es decir,
arrastrando esta vez los archivos desde nuestro computador local hasta el servidor remoto.
Ser suficiente con subir los archivos que hemos actualizado. Los que no hayamos tocado son,
en teora, iguales que los del servidor, por lo que ser indiferente que los volvamos a colocar,
porque no estaramos alterando nada.
Comprobar las actualizaciones
Ya est el trabajo realizado, as que slo faltara acceder a nuestra pgina web con nuestro
navegador en su direccin de la web y comprobar que los cambios se han realizado
satisfactoriamente.
Nota: Si no vemos los cambios realizados en la pgina posiblemente sea porque estaremos
recibiendo los datos desde la cach de nuestro navegador. Para saltarnos esta cach y
solicitar los archivos directamente al servidor podemos utilizar la tecla Control (CTRL). Con la
tecla apretada, pulsamos sobre el enlace de la pgina que deseamos que se obtenga desde el
servidor sin pasar por la cach. Tambin podemos actualizar la pgina, evitando la cach, con
la tecla CTRL apretada y pulsando el botn recargar de la barra de herramientas de nuestro
navegador o con la tecla rpida correspondiente (F5 en Internet Explorer).


Autor: Ing. Oscar R. Espeche

12
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

1.1.2 Comercio en lnea
En trminos generales comercio electrnico es la posibilidad de realizar transacciones
comerciales empleando medios electrnicos (actualmente traducidos como internet). La venta
en el comercio electrnico se realiza de la misma forma en que se ha desarrollado la venta a
travs de los tiempos: hay un cliente que necesita un producto servicio y un proveedor que lo
proporciona; este ltimo informa sobre todas las condiciones de su oferta y el cliente decide si
la misma cubre sus necesidades. Si se llega a un acuerdo, la venta se realiza.
El comercio electrnico tiene mltiples variantes, desde la simple presencia de un catlogo de
productos hasta la entrega de la mercanca al consumidor final; puede o no tener interaccin
con inventarios y sistemas contable administrativos o bien, contar con la posibilidad de que el
propio comprador personalice la informacin que recibe o el producto mismo, De esta manera
aparecen en nmero creciente de formas de realizar las transacciones comerciales, y se
caracterizan por su evolucin a una mayor complejidad de los modelos y a una mayor
integracin de tareas.
Los modelos ms conocidos son las tiendas virtuales (el comerciante lleva el control total de
todas las operaciones y catlogos) la plaza comercial (varias tiendas aparecen en un dominio
comn compartiendo infraestructuras y gastos). Sin embargo, existen tambin modelos de
mayor complejidad, como los dedicados a licitaciones, subastas y plataformas de colaboracin;
o bien, los que tienen contemplado un programa de atencin al cliente y actualizacin
automtica de inventarios.
Procesos del Comercio Electrnico
El comercio electrnico implica la conjuncin del mundo fsico con el virtual, se puede hablar de
varios tipos de comercio electrnico. El primero de ellos hace referencia a que todo el proceso
(seleccin del producto, pago y entrega) se realiza en lnea; esto nicamente es posible con
mercancas que por su naturaleza pueden ser transmitidas por internet (como informacin, un
curso o datos estadsticos). El segundo tipo se establece con productos que necesariamente
deben hacerse llegar fsicamente al consumidor (como la ropa, un aparato elctrico o
alimentos).
Ventajas
Cualquier forma de comercio electrnico pone a disposicin del usuario (sea comprador o
vendedor) lo ms vanguardista de la tecnologa para garantizarle ventajas competitivas.
La comercializacin en Mxico tradicionalmente se efeca mediante una gran cadena de
intermediarios en los que, la comunicacin entre productor y consumidor se pierde. El comercio
electrnico, al permitir una comunicacin directa entre ambos genera las siguientes ventajas:
Consumidor Ambos Vendedor
No hay intermediarios,
por lo que los productos
llegarn directamente
del productor al
comprador
Rapidez No hay intermediarios, los productos llegan
directamente al cliente.
Puede elegir los
productos (sean bienes
o servicios)
independientemente del
Cobertura global Puede colocar sus productos en cualquier
regin geogrfica, con la garanta que
siempre estarn a disposicin de los
clientes los modelos ms recientes.
Autor: Ing. Oscar R. Espeche

13
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

lugar que estos
provengan; de esta
manera contar con
mayores alternativas
para tomar una sabia
decisin.
Al tener comunicacin
directa con el proveedor
garantiza que los
productos son lo que
usted espera de ellos,
abriendo la posibilidad
de adecuacin de
productos y asegurando
que las dudas que le
surjan puedan ser
resueltas de manera
clara y pronta.
Personalizacin Al tener trato directo con el mercado
(intercambio de informacin en tiempo real)
podr determinar fcilmente la aceptacin
que su producto tiene, permitindole
realizar ajustes que garanticen su venta.
Asimismo, la posibilidad de detectar nichos
se incrementa para usted.
Los catlogos y
especificaciones de
productos sern los ms
actuales, garantizando
informacin precisa y
existencias de
productos.
Actualidad Podr ofrecer informacin actualizada y
ampliada, mantener catlogo de existencias
al da y controlar la informacin que se
difunde de sus productos.
Pagar el precio justo
por los productos, no la
publicidad de los
mismos ni las ganancias
de mltiples
intermediarios.
Mejor precio Al reducir sus costos de operacin
(necesidad de catlogos impresos,
distribucin de ellos y dems gastos
inherentes a la publicidad y colocacin de
productos) sus gastos disminuirn
drsticamente, lo cual le permitir ofrecer
mejores precios y aumentar sus ganancias.
Posibilidad de reunir
todos los elementos
para tomar una buena
decisin (informacin
del producto, y
posibilidad de
clasificarlo); viabilidad
de realizar una compra
directa.
Facilidad Al contar con una solucin de comercio
electrnico articulada el control de
inventarios, facturacin y dems tareas
administrativas se realizarn de forma
automtica
Seguridad
La seguridad es un punto medular para el comercio electrnico. Por un lado ambas partes
(consumidor y proveedor) deben estar seguros de que el otro es quien dice ser, pues de lo
contrario, en el momento de un desacuerdo no sabrn con quin deban solucionarlo.
El cliente requiere que se le garantice que su informacin personal no ser difundida ni
empleada por terceros, esto queda ms claro si pensamos en el caso de pago con tarjeta de
crdito: ni el NIP, nombre, direccin, lmite de crdito o nmero de tarjeta deber ser
compartido o interceptado.
Autor: Ing. Oscar R. Espeche

14
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

Adems, necesita garanta de que el producto que se le ofrece es igual al que se le entrega, y
que de lo contrario contar con los instrumentos e instancias jurdicas para hacer valer sus
derechos.
El vendedor necesita tener la certeza de que independientemente de la forma de pago se le
entregar la cantidad acordada por la mercanca, y que si no sucediera, tambin tendr los
instrumentos y mecanismos para hacer valer sus derechos.
Protocolos de Seguridad
Puesto que los datos que se transmiten por internet son susceptibles de ser "capturados" por
terceras personas que podran hacer mal uso de ellos, Netscape Communications Corporation
desarroll un mecanismo, ssl (secure sockets layer), mediante el cul la informacin es
sometida a operaciones matemticas especializadas que la hacen ilegible a simple vista
(cifrado).
Para cada transaccin se genera un "paquete de frmulas matemticas" que nicamente son
manejadas por el emisor y el receptor; por esto, ssl es ampliamente recomendado para
operaciones en las que nicamente intervienen dos partes.
Diferencia entre Comercio Electrnico y Negocio Electrnico
El trmino negocio electrnico hace referencia al uso de internet en las diferentes fases del ciclo
de vida de una empresa; es decir, incluye tanto la compra-venta de productos, facturacin,
gestin de la informacin, atencin al cliente, publicidad, intercambio de informacin entre
clientes y proveedores, etc; en tanto el comercio electrnico nicamente hace referencia a la
compra, venta (intercambio de bienes) de productos empleando internet.
Planificar un negocio en lnea
Plan de Negocio
Desarrollar un plan comercial para tu sitio es una tarea medular, pues te permitir tener ms
claras tus necesidades y alcances, organizar tiempos y presupuesto, empatar acciones en el
mundo fsico y el virtual y, de ser necesario, establecer fases claras y rentables para tu negocio.
Todo se ver reflejado en un mayor beneficio de tu sitio y capital.
Para realizar tu plan primero debes analizar las ventajas (oportunidad, la presin competitiva y
la presin de la demanda) y los riesgos; posteriormente plantearte el objetivo (el qu) y
alcance (el para qu); y por ultimo, decidir la estrategia (el cmo) estableciendo los tiempos
necesarios (el cundo). Con esto, tendrs definido un plan y un modelo de negocio que te
reflejarn el nivel de comercio electrnico ptimo para tus necesidades, las caractersticas para
seleccionar el software completo, las medidas de seguridad que debes considerar y el
presupuesto requerido.
Este plan debe presentar claramente tu negocio y la forma en la que lo llevars, es importante
que en l incluyas:
Mercado meta y posicionamiento
Competencia presente y futura
Orientacin y productos de tu negocio (contenido del sitio)
Responsable de generar los contenidos del sitio y perfil de la informacin
Equipo de Direccin
Estrategia (preferentemente con tiempos y costos)
Alianzas contempladas
Autor: Ing. Oscar R. Espeche

15
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

Catlogo en Lnea
A travs de l, los compradores potenciales podrn ver tus productos o servicios y revisar sus
caractersticas.
Los catlogos pueden tener diversas presentaciones y estar estructurados de diferentes formas,
algunos son prcticamente rplicas de los existentes en el mundo fsico, en tanto otros
aprovechan las ventajas de la red permitiendo realizar bsquedas segn una descripcin o
palabra clave y enlaces a las diferentes categoras de productos.
De una u otra manera finalmente se llega a la pgina de descripcin completa en la que se
ofrece la informacin (tanto bsica como complementaria) y en ocasiones una representacin
grfica o multimedia (video, imagen o sonido) del producto o servicio.
Antes de realizar el catlogo es necesario definir el grado de detalle y estructura que resulte
ptima para cumplir con los objetivos planteados, y preparar la informacin con la que se
conformar.
Tienda Virtual
En trminos comunes, una tienda virtual tiene por finalidad ofrecer a los usuarios finales un
sistema para poder realizar los pedidos y los pagos de forma fcil, segura y acorde a sus
necesidades y costumbres.
Tcnicamente es un conjunto de pginas Web normalmente generadas dinmicamente a partir
de una base de datos, un grupo de plantillas y un conjunto de recursos.
Es recomendable dar a la tienda una estructura y diseo con el que desde un inicio el visitante
tenga una clara idea de lo que es la tienda y del tipo de productos que ofrece. Asimismo,
resulta muy til contar con un buscador para localizar rpidamente los productos en los que
esta interesado el cliente.
La caracterstica bsica de una tienda es el carrito de compras, un dispositivo que permite al
visitante ir seleccionado productos ponerlos en su carrito de compras- que en cualquier
momento puede cambiar por otros o eliminar. Al terminar su eleccin el programa calcula
automticamente el total a pagar y le permite seleccionar el medio de pago a utilizar.
Una vez seleccionados los productos y la forma de pago el proveedor recibe, gracias al propio
carrito de compras, el pedido al que dar el tratamiento pertinente para hacerlo llegar al
cliente.
Un aspecto muy importante es determinar la ubicacin (hosting) de la tienda virtual, que bien
puede ser en tu propia empresa, con un proveedor de servicios o soluciones en internet (ISP o
ASP), o dentro de un centro comercial virtual. La decisin del lugar para albergar la tienda debe
ir n funcin de tu plan de negocios, grado de seguridad y objetivos.
Protocolos de Seguridad
Un requisito indispensable en el Comercio Electrnico es garantizar la seguridad de las
transacciones entre los compradores y los vendedores. El consumidor requiere que los datos
personales que suministra en la transaccin no sean capturados en la transmisin por alguien
que posteriormente pudiera suplantar su identidad; por su parte el proveedor (o vendedor)
debe asegurarse de la identidad de aquel que efecta el pedido.
Autor: Ing. Oscar R. Espeche

16
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

Para recibir los pagos seguros es preciso tener instalada una aplicacin de comercio electrnico
que genere identificadores nicos de pedido y cantidad total a pagar para los mismos, a esta se
le llama terminal punto de venta virtual (Vpos o Tpv).
Todo Vpos debe funcionar sobre un servidor seguro utilizando mecanismos para codificar la
informacin antes de viajar y un conjunto de reglas que determinan cmo se realizar el
intercambio de informacin entre dos computadoras (protocolo) para garantizar que slo
emisor y receptor podrn entender la informacin.
Actualmente en Mxico los pagos en lnea slo se pueden realizar con tarjetas de crdito,
empleando alguno de estos protocolos:
SSL: Sistema que consiste en codificar la informacin antes de enviarla, de forma
que slo el destinatario pueda conocer la informacin, evitando que accesos
fraudulentos a sta puedan hacer mal uso de la misma. Se puede suplantar la
identidad del emisor.
SET: Su objetivo es proteger los datos sensibles de los compradores respetando
la confidencialidad de los datos y autentificando la identidad de todas las partes
que intervienen. Para esto, SET utiliza un sistema de firmas y certificados
digitales que asegura que el emisor es quien dice ser y que slo puede leer el
mensaje el receptor autorizado.
MOSET: Una combinacin de los dos anteriores, pues la primera parte de la
transaccin (el envi de informacin al comerciante) se hace empleando SSL, en
tanto, la comunicacin entre el comerciante y el banco utiliza SET.
Filiacin con una entidad bancaria
Al igual que en el mundo fsico, para ofrecer la alternativa de pago con tarjeta de crdito es
necesario contar con una afiliacin a una institucin bancaria para garantizar la operacin de
cargo a la cuenta del cliente y abono a la tuya.
Independientemente del banco que selecciones para afiliarte y contar con tu terminal punto de
venta virtual, los requisitos que debers cumplir son:
Tener abierta (o abrir) una cuenta con chequera.
Llenar y firmar los contratos correspondientes para el programa de afiliacin al
programa de tarjetas de crdito.
Contar con un negocio establecido.
Contar con una lnea telefnica (no necesariamente dedicada).
Tener una conexin a internet con correo electrnico.
Servicio de Entrega
Si el producto que quieres mercadear debe ser entregado fsicamente, ser necesario integrar a
tu sitio herramientas que faciliten la logstica de entrega. Estas pueden ser tan sencillas como
contratar una compaa que se encargue exclusivamente de recibirte los productos y hacerlos
llegar al cliente; que te almacene los productos, que almacene y controle el inventario de los
productos e incluso, que permita a tu cliente contar con la visibilidad necesaria desde el
momento del pedido de sus productos, hasta la entrega final.
La decisin del tipo de servicio que desees contratar depender de:
La naturaleza de tu producto
Tus necesidades de almacenaje
La infraestructura con la que cuentes para mantener un inventario al da
Autor: Ing. Oscar R. Espeche

17
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

La garanta de entrega que quieras proporcionar a tus clientes
La cobertura que tendrs en tu negocio
El perfil de hbitos y econmico de tus clientes
El costo del servicio comparado con el de tus productos
Mercadotecnia y Publicidad
Para garantizar que nuestra tienda ser visitada es recomendable realizar un plan de
mercadotecnia completo.
Toda accin en materia de mercadotecnia estar determinada por tu plan de negocio, el perfil
de tu mercado y las caractersticas propias de los productos o servicios que venders. Las
estrategias a emplear pueden ser en el mundo fsico, en internet o, lo ms recomendable, una
conjuncin de ambos.
Para los fines concretos de tu tienda virtual, la estrategia de mercadotecnia debe enfatizar sus
esfuerzos en incrementar el nmero de visitantes a tus pginas y lograr que sus visitas sean
repetidas. Los canales que emplees para ello dependern del posicionamiento que tu compaa
y productos tengan, los productos que vendas y el pblico al que te diriges.
Las estrategias en lnea tienen como finalidad lograr que, a travs de los propios canales de
bsqueda de informacin la gente pueda encontrarte fcilmente; es decir, que tu tienda
aparezca entre los 5 o 6 primeros resultados al realizar una bsqueda. Lograrlo depende, en
gran medida, en la seleccin de las palabras claves que hagas; entre ms se ajusten a la
descripcin de tu tienda, mayor probabilidad de que te encuentren tendrs.
Mercadotecnia en Internet
"El enfoque globalizado es la frmula del xito en Internet"
El comercio electrnico en Internet es uno de los aspectos ms relevantes en la evolucin que
pueda experimentar en los negocios va Internet. Abre, para particulares y empresas, un
fantstico mundo de posibilidades que les permitirn obtener los objetos de consumo habituales
sin efectuar desplazamientos innecesarios, con servicio a domicilio y probablemente con una
interesante reduccin de precio. Para los comerciantes, significa alcanzar la globalidad a un
costo insignificante, la apertura a mercados antes impensables y la posibilidad de una eficaz
gestin de sus recursos e inventarios.
Sabemos que resulta difcil distinguirse de entre los dems. Es por eso que contar con un sitio
en Internet es solamente un primer paso hacia una mercadotecnia exitosa en lnea.
Por lo tanto necesitamos considerar algunos aspectos importantes para que realmente
tengamos un sitio exitoso.
Estrategias
Una estrategia de mercadotecnia bien establecida nos ayudar, aparte de colocar nuestro sito
en un nivel competitivo a:
Incrementar nuestras ventas
Reducir costos
Mejorar la comunicacin con los clientes
Expandir el negocio o empresa
Autor: Ing. Oscar R. Espeche

18
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

El principal objetivo de una buena mercadotecnia es el de reducir costos y por ende, aumentar
las utilidades, para ello Internet nos a eliminado fronteras eliminando las distancias y
acelerando transacciones para poder ofrecer a nuestros clientes una mejor satisfaccin
instantnea.
Consejos
1. Procure que el nombre de su sitio tienda sea muy breve y fcil de recordar.
2. Hay que utilizar todos los medios de promocin posible.
3. El contenido es lo que hace a su sitio. La informacin de su empresa y productos deben
de estar actualizados segn su rotacin.
4. Responda rpidamente. Trate de responderles de manera inmediata. Una pronta
respuesta es un factor imprescindible para retener a sus visitantes y hacerlos regresar a
su sitio.
5. Sea constante. Mantenga una presencia constante para construir una reputacin slida y
seria en el universo de Internet.
6. Anuncie su sitio web en otros medios. La promocin de un sitio deber efectuarse dentro
y fuera del medio de Internet, por el volumen informativo que este medio maneja.
El cliente
"El usuario es quien decide acceder a la comunicacin y depositar su confianza en nuestro
sitio".
El xito de ventas en Internet se logra satisfaciendo las necesidades de los consumidores en
mayor grado que con los mtodos de venta al menudeo convencionales. Visto desde la
perspectiva del consumidor, las actividades de ventas en lnea deben brindar al consumidor por
lo menos alguna de las ventajas siguientes:
Precio ms bajo, factor de las motivaciones ms importantes del consumidor.
Mayor variedad al ampliar las opciones para el consumidor, tendr una
clara ventaja sobre sus competidores y los negocios minoristas convencionales.
Calidad en los productos, es de vital importancia para el consumidor ya que
puede ser un factor determinante al momento de realizar su compra.
Tiempo de entrega en el da y hora establecida, el compromiso adquirido y
su puntual entrega son sinnimos de credibilidad.
Seguridad en los pagos en lnea, la seguridad confiable en lnea de sus
clientes ratificara una completa satisfaccin de que su pago a sido completado
satisfactoriamente.
Ofertas, su sitio o tienda virtual podr tener ventajas ante su competencia, el
precio es un factor importante para el consumidor.
Mayor conveniencia, resaltar la comodidad que ofrecen las compras en lnea.
Velocidad de navegacin dentro de la tienda.
Visin
La revolucin que esta iniciando el comercio electrnico es sin duda, un acontecer que esta
marcando una transformacin similar a cmo lo hizo la revolucin industrial en su poca, solo
que ahora promete modificar la forma en las decisiones que se toman incluso en el plano
gubernamental.
Conforme se vayan automatizando procesos y queden correlacionados entre s, se ir
conjuntando el mundo fsico con el virtual; las distancias se abatirn y los traslados poco a poco
disminuirn. Con esto, el trabajo mediante este nuevo avance tecnolgico en muy poco tiempo
ser la forma laboral por excelencia de las empresas.
Autor: Ing. Oscar R. Espeche

19
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

La automatizacin de procesos esta ayudando a que la pequea, micro y mediana empresa
puedan lidiar con las empresas grandes. Esto sin duda nos hace pensar que el sector
detonador de esta revolucin de la tecnologa de la informacin ser el empresarial.
Los agentes econmicos que interactan en el mundo empresarial experimentaran una
integracin para lograr mayores niveles de eficiencia y productividad en las transacciones de las
empresas. Se crearan instrumentos legales y fiscales que avalen estas operaciones, con esto se
habr llegado a la era de los negocios electrnicos.
Autor: Ing. Oscar R. Espeche

20
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

1.1.3 Lenguajes en la web

Vamos a estudiar de manera global el mundo de la programacin de pginas web. Para ello
empezaremos estudiando rpidamente algunos conceptos bsicos, que seguramente muchos ya
sabremos, como el marco donde la web se desarrolla, qu es una pgina web, cmo se
construye una pgina y el lenguaje HTML. Adems veremos qu es una pgina esttica y
dinmica distinguiendo entre pginas dinmicas de cliente y servidor.

Nos detendremos con mayor profundidad en la presentacin de cada uno de los lenguajes que
tenemos a nuestra disposicin para construir pginas web, enmarcados en el mbito donde se
ejecutan: cliente o servidor.

Para finalizar, conoceremos el lenguaje XML y las tecnologas relacionadas con l, para
entender porqu es tan importante este lenguaje y cmo se desarrollan las webs que lo
utilizan.
Hipertexto/Hipermedia

El sistema con el que est construido el web se llama hipertexto y es un entramado de pginas
conectadas con enlaces.
Los sistemas de hipertexto se utilizan en otros contextos aparte del web, como la ayuda del
Windows. Son muy fciles de utilizar y tambin es muy fcil encontrar lo que buscamos
rpidamente, gracias a que pulsando enlaces vamos accediendo a la informacin que ms nos
interesa.
Lenguaje HTML
Una pgina web la vemos en nuestro navegador, o cliente web, y parece una sola entidad, pero
no es as, est compuesta por multitud de diferentes archivos, como son las imgenes, los
posibles vdeos y lo ms importante: el cdigo fuente.
El cdigo de las pginas est escrito en un lenguaje llamado HTML, que indica bsicamente
donde colocar cada texto, cada imagen o cada video y la forma que tendrn estos al ser
colocados en la pgina.
El HTML se cre en un principio con objetivos divulgativos. No se pens que la web llegara a ser
un rea de ocio con carcter multimedia, de modo que, el HTML se cre sin dar respuesta a
todos los posibles usos que se le iba a dar y a todos los colectivos de gente que lo utilizaran en
un futuro.
el lenguaje consta de etiquetas que tienen esta forma <B> o <P>. Cada etiqueta significa una
cosa, por ejemplo <B> significa que se escriba en negrita (bold) o <P> significa un prrafo,
<A> es un enlace, etc. Casi todas las etiquetas tienen su correspondiente etiqueta de cierre,
que indica que a partir de ese punto no debe de afectar la etiqueta. Por ejemplo </B> se utiliza
para indicar que se deje de escribir en negrita. As que el HTML no es ms que una serie de
etiquetas que se utilizan para definir la forma o estilo que queremos aplicar a nuestro
documento. <B>Esto est en negrita</B>.
Partes de un documento HTML
Un documento HTML ha de estar delimitado por la etiqueta <html> y </html>. Dentro de este
documento, podemos asimismo distinguir dos partes principales:
Autor: Ing. Oscar R. Espeche

21
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

El encabezado, delimitado por <head> y </head> donde colocaremos etiquetas de ndole
informativo como por ejemplo el titulo de nuestra pgina.
El cuerpo, flanqueado por las etiquetas <body> y </body>, que ser donde colocaremos
nuestro texto e imgenes delimitados a su vez por otras etiquetas como las que hemos visto.
El resultado es un documento con la siguiente estructura:
<html>

<head>
Etiquetas y contenidos del encabezado
Datos que no aparecen en nuestra pgina pero que son importantes para catalogarla: Titulo,
palabras clave,...
</head>

<body>
Etiquetas y contenidos del cuerpo
Parte del documento que ser mostrada por el navegador: Texto e imgenes
</body>

</html>

Con todo lo que conocemos ya sobre HTML podemos construir una pgina web que ya tiene
bastante sentido. Vemos un ejemplo a continuacin.
<html>

<head>
<title>Cocina Para Todos</title>
</head>

<body>
<p><b>Bienvenido,</b></p>
<p>Ests en la pgina <b>Comida para Todos</b>.</p>
<p>Aqu aprenders recetas fciles y deliciosas.</p>
</body>

</html>

Pginas estticas Vs. Dinmicas
En la web podemos encontrar, o construir, dos tipos de pginas:
Las que se presentan sin movimiento y sin funcionalidades ms all de los enlaces
Las pginas que tienen efectos especiales y en las que podemos interactuar.
Autor: Ing. Oscar R. Espeche

22
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

Las primeras pginas son las que denominamos pginas estticas, se construyen con el
lenguaje HTML, que no permite grandes cosas para crear efectos ni funcionalidades ms all
de los enlaces.

Estas pginas son muy sencillas de crear, aunque ofrecen pocas ventajas tanto a los
desarrolladores como a los visitantes, ya que slo se pueden presentar textos planos
acompaados de imgenes y a lo sumo contenidos multimedia como pueden ser videos o
sonidos.

El segundo tipo de pginas se denomina pgina dinmica. Una pgina es dinmica cuando se
incluye cualquier efecto especial o funcionalidad y para ello es necesario utilizar otros lenguajes
de programacin, aparte del simple HTML.

Mientras que las pginas estticas todo el mundo se las puede imaginar y no merecen ms
explicaciones, las pginas dinmicas son ms complejas y verstiles. Para aclarar este
concepto, veremos con detalle a continuacin qu son las pginas dinmicas.
Pginas dinmicas
Como hemos visto, una pgina es dinmica cuando realiza efectos especiales o implementa
alguna funcionalidad o interactividad.
Adems, hemos visto que para programar una pgina dinmica necesitaremos otros lenguajes
aparte del HTML. Sin embargo, nunca hay que olvidarse del HTML, ya que ste es la base del
desarrollo web: generalmente al escribir una pgina dinmica el cdigo de los otros lenguajes
de programacin se incluye embebido dentro del mismo cdigo HTML.
Una razn por la que construiremos una pgina dinmica es la simple vistosidad que pueden
alcanzar los trabajos, ya que podemos hacer presentaciones ms entretenidas de las que se
consiguen utilizando nicamente HTML. Pero vamos a ver con calma algunas razones menos
obvias pero ms importantes.
Supongamos que hemos decidido realizar un portal de televisin donde una de las
informaciones principales a proveer podra ser la programacin semanal. Efectivamente, esta
informacin suele ser dada por las televisiones con meses de antelacin y podra ser muy
fcilmente almacenada en una base de datos. Si trabajsemos con pginas HTML, tendramos
que construir una pgina independiente para cada semana en la cual introduciramos "a mano"
cada uno de los programas de cada una de las cadenas. Asimismo, cada semana nos
tendramos que acordar de descolgar la pgina de la semana pasada y colgar la de la actual.
Todo esto podra ser fcilmente resuelto mediante pginas dinmicas. En este caso, lo que
haramos sera crear un programa (solo uno) que se encargara de recoger de la base de datos
de la programacin aquellos programas que son retransmitidos en las fechas que nos interesan
y de confeccionar una pgina donde apareceran ordenados por cadena y por hora de
retransmisin. De este modo, podemos automatizar un proceso y desentendernos de un
aspecto de la pgina por unos meses.
Este hecho lo podramos aplicar a otras situaciones: podemos preparar el horscopo de todos
los das, las promociones de un sitio de e-comercio...
Podemos hacer una clasificacin a las pginas dinmicas en funcin de dnde se lleva a cabo el
procesamiento de la pgina, es decir, el computador que cargar con el peso adicional que
supone que la pgina realice efectos y funcionalidades.


Autor: Ing. Oscar R. Espeche

23
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

Pginas dinmicas de cliente
Son las pginas dinmicas que se procesan en el cliente. En estas pginas toda la carga de
procesamiento de los efectos y funcionalidades la soporta el navegador.
Usos tpicos de las pginas de cliente son efectos especiales para webs como presentaciones en
las que se pueden mover objetos por la pgina, control de formularios, clculos, etc.
El cdigo necesario para crear los efectos y funcionalidades se incluye dentro del mismo archivo
HTML y es llamado SCRIPT. Cuando una pgina HTML contiene scripts de cliente, el navegador
se encarga de interpretarlos y ejecutarlos para realizar los efectos y funcionalidades.
Las pginas dinmicas de cliente se escriben en dos lenguajes de programacin principalmente:
Javascript y Visual Basic Script (VBScript), que veremos en detalle ms adelante. Tambin
veremos el concepto de DHTML y conoceremos las CSS.
Nota: Flash es una tecnologa, y un programa, para crear efectos especiales en pginas web.
Con Flash tambin conseguimos hacer pginas dinmicas del lado del cliente. Como este
captulo explica los lenguajes del web, no hemos incluido el Flash por ninguna parte, porque no
es un lenguaje. Sin embargo, si tuviramos que catalogarlo en algn sitio quedara dentro del
mbito de las pginas dinmicas de cliente.
Las pginas del cliente son muy dependientes del sistema donde se estn ejecutando y esa es
su principal desventaja, ya que cada navegador tiene sus propias caractersticas, incluso cada
versin, y lo que puede funcionar en un navegador puede no funcionar en otro.
Como ventaja se puede decir que estas pginas descargan al servidor algunos trabajos, ofrecen
respuestas inmediatas a las acciones del usuario y permiten la utilizacin de algunos recursos
de la mquina local.
Pginas dinmicas de servidor
Podemos hablar tambin de pginas dinmicas del servidor, que son reconocidas, interpretadas
y ejecutadas por el propio servidor.
Las pginas del servidor son tiles en muchas ocasiones. Con ellas se puede hacer todo tipo de
aplicaciones web. Desde agendas a foros, sistemas de documentacin, estadsticas, juegos,
chats, etc. Son especialmente tiles en trabajos que se tiene que acceder a informacin
centralizada, situada en una base de datos en el servidor, y cuando por razones de seguridad
los clculos no se pueden realizar en el computador del usuario.
Es importante destacar que las pginas dinmicas de servidor son necesarias porque para hacer
la mayora de las aplicaciones web se debe tener acceso a muchos recursos externos al
computador del cliente, principalmente bases de datos alojadas en servidores de Internet. Un
caso claro es un banco: no tiene ningn sentido que el cliente tenga acceso a toda la base de
datos, slo a la informacin que le concierne.
Las pginas dinmicas del servidor se suelen escribir en el mismo archivo HTML, mezclado con
el cdigo HTML, al igual que ocurra en las pginas del cliente. Cuando una pgina es solicitada
por parte de un cliente, el servidor ejecuta los scripts y se genera una pgina resultado, que
solamente contiene cdigo HTML. Este resultado final es el que se enva al cliente y puede ser
interpretado sin lugar a errores ni incompatibilidades, puesto que slo contiene HTML
Autor: Ing. Oscar R. Espeche

24
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

Luego es el servidor el que maneja toda la informacin de las bases de datos y cualquier otro
recurso, como imgenes o servidores de correo y luego enva al cliente una pgina web con los
resultados de todas las operaciones.
Para escribir pginas dinmicas de servidor existen varios lenguajes, que veremos ms
adelante. Common Gateway Interface (CGI) comnmente escritos en Perl, Active Server Pages
(ASP), Hipertext Preprocesor (PHP), y Java Server Pages (JSP).
Las ventajas de este tipo de programacin son que el cliente no puede ver los scripts, ya que se
ejecutan y transforman en HTML antes de enviarlos. Adems son independientes del navegador
del usuario, ya que el cdigo que reciben es HTML fcilmente interpretable.
Como desventajas se puede sealar que ser necesario un servidor ms potente y con ms
capacidades que el necesario para las pginas de cliente. Adems, estos servidores podrn
soportar menos usuarios concurrentes, porque se requerir ms tiempo de procesamiento para
cada uno.
J avascript

Javascript es un lenguaje de programacin utilizado para crear pequeos programitas
encargados de realizar acciones dentro del mbito de una pgina web.
Se trata de un lenguaje de programacin del lado del cliente, porque es el navegador el que
soporta la carga de procesamiento. Gracias a su compatibilidad con la mayora de los
navegadores modernos, es el lenguaje de programacin del lado del cliente ms utilizado.
Con Javascript podemos crear efectos especiales en las pginas y definir interactividades con el
usuario. El navegador del cliente es el encargado de interpretar las instrucciones Javascript y
ejecutarlas para realizar estos efectos e interactividades, de modo que el mayor recurso, y tal
vez el nico, con que cuenta este lenguaje es el propio navegador.
Javascript es el siguiente paso, despus del HTML, que puede dar un programador de la web
que decida mejorar sus pginas y la potencia de sus proyectos. Es un lenguaje de programacin
bastante sencillo y pensado para hacer las cosas con rapidez, a veces con ligereza.
Incluso las personas que no tengan una experiencia previa en la programacin podrn aprender
este lenguaje con facilidad y utilizarlo en toda su potencia con slo un poco de prctica.
Entre las acciones tpicas que se pueden realizar en Javascript tenemos dos vertientes. Por un
lado los efectos especiales sobre pginas web, para crear contenidos dinmicos y elementos
de la pgina que tengan movimiento, cambien de color o cualquier otro dinamismo. Por el otro,
javascript nos permite ejecutar instrucciones como respuesta a las acciones del usuario, con lo
que podemos crear pginas interactivas que contengan programas como calculadoras,
agendas, o tablas de clculo.
avascript es un lenguaje con muchas posibilidades, permite la programacin de pequeos
scripts, pero tambin de programas ms grandes, orientados a objetos, con funciones,
estructuras de datos complejas, etc. Adems, Javascript pone a disposicin del programador
todos los elementos que forman la pgina web, para que ste pueda acceder a ellos y
modificarlos dinmicamente.
Con Javascript el programador, que se convierte en el verdadero dueo y controlador de cada
cosa que ocurre en la pgina cuando la est visualizando el cliente.
Visual Basic Script
Autor: Ing. Oscar R. Espeche

25
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP



Es un lenguaje de programacin de scripts slo compatible con Internet Explorer. Es por ello
que su utilizacin est desaconsejada a favor de Javascript.
Est basado en Visual Basic, un popular lenguaje para crear aplicaciones Windows. Tanto su
sintaxis como la manera de trabajar estn muy inspirados en l. Sin embargo, no todo lo que
se puede hacer en Visual Basic lo podremos hacer en Visual Basic Script, pues este ltimo es
una versin reducida del primero.
El modo de funcionamiento de Visual Basic Script para construir efectos especiales en pginas
web es muy similar al utilizado en Javascript y los recursos a los que se puede acceder tambin
son los mismos: el navegador.
Como decimos, no debemos utilizar este lenguaje en la mayora de las ocasiones, aunque un
caso donde tendra sentido utilizar Visual Basic Script sera la construccin de una Intranet
donde sepamos con toda seguridad que los navegadores que se van a conectar sern siempre
Internet Explorer. En este caso, un programador habitual de Visual Basic tendra ms
facilidades para realizar los scripts utilizando Visual Basic Script en lugar de Javascript.
Nota: El popular ASP (Active Server Pages) es una tecnologa de programacin del lado del
servidor. Habitualmente, los scripts ASP se escriben con Visual Basic Script tambin. Visual
Basic Script, por tanto, es un lenguaje que se puede utilizar para la programacin en el cliente,
pero tambin para la programacin en el servidor.
DHTML

DHTML no es precisamente un lenguaje de programacin. Ms bien se trata de una nueva
capacidad de la que disponen los navegadores modernos, por la cual se puede tener un mayor
control sobre la pgina que antes.
Cualquier pgina que responde a las actividades del usuario y realiza efectos y funcionalidades
se puede englobar dentro del DHTML, pero en este caso nos referimos ms a efectos en el
navegador por los cuales se pueden mostrar y ocultar elementos de la pgina, se puede
modificar su posicin, dimensiones, color, etc.
DHTML nos da ms control sobre la pgina, gracias a que los navegadores modernos incluyen
una nueva estructura para visualizar en pginas web denominada capa. Las capas se pueden
ocultar, mostrar, desplazar, etc.
Para realizar las acciones sobre la pgina, como modificar la apariencia de una capa, seguimos
necesitando un lenguaje de programacin del lado del cliente como Javascript o VBScript.
Aclaracin: DHTML tambin puede englobar la programacin en el servidor.

Depende del autor que est describiendo lo que es DHTML, muchas veces hace tambin
referencia a la programacin en el servidor y no slo a la del cliente, como hemos apuntado en
este artculo. En cierto modo debera incluirse ese tipo de programacin.

Dicho de otro modo y para que quede claro. Las fronteras del DHTML quedan poco definidas.
Las que marcamos en el presente artculo son slo las que engloban a los procesos en el
cliente, pero tambin podramos decir que DHTML es cualquier cosa que hace una pgina
dinmica, ya sea en el cliente, el servidor o las dos cosas.
Autor: Ing. Oscar R. Espeche

26
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP



Dentro del concepto de DHTML se engloban tambin las Hojas de Estilo en Cascada o CSS
(Cascade Style Sheets), que veremos a continuacin.
Qu es CSS
CSS, es una tecnologa que nos permite crear pginas web de una manera ms exacta. Gracias
a las CSS somos mucho ms dueos de los resultados finales de la pgina, pudiendo hacer
muchas cosas que no se poda hacer utilizando solamente HTML, como incluir mrgenes, tipos
de letra, fondos, colores...
CSS son las siglas de Cascading Style Sheets, en espaol Hojas de estilo en Cascada. En este
captulo vamos a ver algunos de los efectos que se pueden crear con las CSS sin necesidad de
conocer la tecnologa entera.
Las Hojas de Estilo en Cascada se escriben dentro del cdigo HTML de la pgina web, solo en
casos avanzados se pueden escribir en un archivo a parte y enlazar la pgina con ese archivo.
En un principio vamos a utilizar la manera ms directa de aplicar estilos a los elementos de la
pgina, mas adelante veremos la declaracin en archivos externos. Para ello vamos a conocer
un nuevo atributo que se puede utilizar en casi todas las etiquetas HTML: style.
Ejemplo:
<p style="color:green;font-weight:bold">El prrafo saldr con color verde y en negrita</p>
Dentro del atributo style se deben indicar los atributos de estilos CSS separados por punto y
coma (;). Durante este captulo vamos a conocer muchos atributos de CSS, los dos primeros
que hemos visto aqu son:
Color: indica el color del contenido la etiqueta donde estemos utilizndolo, generalmente indica
el color del texto.
Font-weight: indica el grosor del texto. Bold sirve para poner en negrita.
Color en los enlaces
Con HTML definimos el color de los enlaces en la etiqueta <body>, con lo atributos link, vlink y
alink. Esto nos permite cambiar el color de los enlaces para todo el documento, pero Y si
queremos cambiar el color de un enlace en concreto, para que tenga otro color que el definido
en la etiqueta <body>?
Para hacer esto utilizaremos el atributo style dentro del enlace:
<a href="mienlace.html" style="color:red">
As saldr el enlace en color rojo, independientemente de lo definido para todo el documento.
Espaciado entre lneas
Con CSS podemos definir el espacio que hay entre cada lnea del documento, utilizando el
atributo line-height. Por ejemplo, podemos definir que para todo un prrafo el espacio entre
cada una de sus lneas sea 25 pixels:
<p style="line-height: 25px;">
Autor: Ing. Oscar R. Espeche

27
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP


Un prrafo normal en el que cada una de las lneas est separada 25 pixels de la otra.
Hay que poner suficiente texto como para que se vean 2 lneas, as saldrn separadas
</p>
Espaciado entre caracteres
Se puede definir tambin el espacio entre cada carcter. Esto se hace con el atributo de CSS
letter-spacing. Veamos un ejemplo:
<p style="letter-spacing:12cm">
Este prrafo tiene las letras espaciadas por 1 centmetro.
</p>
Este atributo, al igual que ocurre con muchos otros de CSS, no est soportado por todos los
navegadores. En concreto Netscape, en su versin 4 todava no lo incluye.
Enlaces sin subrayado
Uno de los efectos ms significativos y fciles de realizar con CSS es eliminar el subrayado de
los enlaces de una pgina web. Existe un atributo que sirve para definir la decoracin de un
texto, si est subrayado, tachado, o si no tiene ninguna de estas "decoraciones". Es el atributo
text-decoration, en este caso indicaremos en un enlace que no queremos decoracin:
<a href="mipagina.html" style="text-decoration:none">
Incluir estilos para todo un sitio web
Una de las caractersticas ms potentes de la programacin con hojas de estilo consiste en
definir los estilos de todo un sitio web. Esto se consigue creando un archivo donde tan slo
colocamos las declaraciones de estilos de la pgina y enlazando todas las pginas del sitio con
ese archivo. De este modo, todas las pginas comparten una misma declaracin de estilos y,
por tanto, si la cambiamos, cambiarn todas las pginas.
Veamos ahora todo el proceso para incluir estilos con un archivo externo.

1- Creamos el archivo con la declaracin de estilos
Es un archivo de texto normal, que puede tener cualquier extensin, aunque le podemos
asignar la extensin .css para aclararnos qu tipo de archivo es. El texto que debemos incluir
debe ser escrito exclusivamente en sintaxis CSS, es un poco distinta que la sintaxis que
utilizamos dentro del atributo style. Sera errneo incluir cdigo HTML en este archivo:
etiquetas y dems. Podemos ver un ejemplo a continuacin.

P {
font-size : 12pt;
font-family : arial,helvetica;
font-weight : normal;
}
H1 {
font-size : 36pt;
font-family : verdana,arial;
text-decoration : underline;
text-align : center;
background-color : Teal;
Autor: Ing. Oscar R. Espeche

28
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

}
BODY {
background-color : #006600;
font-family : arial;
color : White;
}
2- Enlazamos la pgina web con la hoja de estilos
Para ello vamos a colocar la etiqueta <LINK> con los atributos
rel="STYLESHEET" indicando que el enlace es con una hoja de estilo.
type="text/css" porque el archivo es de texto, en sintaxis CSS.
href="estilos.css" indica el nombre del archivo fuente de los estilos.
Veamos una pgina web entera que enlaza con la declaracin de estilos anterior:

<html>
<head>
<link rel="STYLESHEET" type="text/css" href="estilos.css">
<title>Pgina que lee estilos</title>
</head>
<body>
<h1>Pgina que lee estilos</h1>
<p>
Esta pgina tiene en la cabecera la etiqueta necesaria para enlazar con la hoja de estilos. Es
muy fcil.
</p>
</body>
</html>

Las Hojas de Estilo en Cascada son un estndar muy amplio, con unas especificaciones y
posibilidades muy grandes. Hasta aqu solo vimos unos cuantos efectos interesantes que
realizar aunque no tengamos ningn conocimiento previo. Sin embargo, lo mejor para trabajar
con esta tecnologa es conocerla bien, gracias a ello, los resultados sern mucho ms
sorprendentes.

Para ampliar esta informacin y conocer ms sobre CSS le dedicaremos un tpico especial en
este captulo.

Qu son los Applets de J ava

Es otra manera de incluir cdigo a ejecutar en los clientes que visualizan una pgina web. Se
trata de pequeos programas hechos en Java, que se transfieren con las pginas web y que el
navegador ejecuta en el espacio de la pgina.
Los applets de Java estn programados en Java y precompilados, es por ello que la manera de
trabajar de stos vara un poco con respecto a los lenguajes de script como Javascript. Los
applets son ms difciles de programar que los scripts en Javascript y requerirn unos
conocimientos bsicos o medios del lenguaje Java.
La principal ventaja de utilizar applets consiste en que son mucho menos dependientes del
navegador que los scripts en Javascript, incluso independientes del sistema operativo del
Autor: Ing. Oscar R. Espeche

29
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

computador donde se ejecutan. Adems, Java es ms potente que Javascript, por lo que el
nmero de aplicaciones de los applets podr ser mayor.
Como desventajas en relacin con Javascript cabe sealar que los applets son ms lentos de
procesar y que tienen espacio muy delimitado en la pgina donde se ejecutan, es decir, no se
mezclan con todos los componentes de la pgina ni tienen acceso a ellos. Es por ello que con
los applets de Java no podremos hacer directamente cosas como abrir ventanas secundarias,
controlar Frames, formularios, capas, etc.
Cmo es posible la multiplataforma en Java
Java es compatible con todos los sistemas porque basa su funcionamiento en los Byte Codes,
que no es ms que una precompilacin del cdigo fuente de Java.
Estos Byte Codes no son el programa en Java propiamente dicho, sino un archivo que contiene
un cdigo intermedio que puede manejar la Mquina Virtual de Java. Cada sistema operativo
dispone de una Maquina Virtual de Java que puede interpretar los Byte Codes y transformarlos
a sentencias ejecutables en el sistema en cuestin.
Ejemplos de Applets de Java
En la web podemos encontrar muchos ejemplos de applets de Java muy tiles y complejos.
Nosotros aqu vamos a mostrar un par de ejemplos que no tienen demasiada importancia, pero
que pueden aclarar un poco ms de qu se tratan estos applets.
Ejemplo de Reloj 3D. Efecto visual para incorporar un reloj digital el 3D en tu pgina
web.
Cdigo HTML:
<html>
<head>
<meta http-equiv="Content-Type"
content="text/html; charset=iso-8859-1">
<meta name="GENERATOR" content="Microsoft FrontPage 2.0">
<title>Clock3D.class (2)</title>
</head>
<body background="../imagenes/jeans.gif" bgcolor="#FFFFFF">
<div align="center"><center>
<table border="0">
<tr>
<td>.<applet code="Clock3D.class" align="baseline"
Autor: Ing. Oscar R. Espeche

30
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

width="200" height="200">
<param name="12hour" value="0">
<param name="a1" value="12500">
<param name="bgcolor" value="#0066FF">
<param name="color" value="#000000">
<param name="fps" value="20">
<param name="irotx" value="0">
<param name="iroty" value="0">
<param name="irotz" value="00">
<param name="pixangle" value="5">
<param name="pixd" value="25">
<param name="radius" value="20">
<param name="rotx" value="0">
<param name="roty" value="-4">
<param name="rotz" value="0.401">
<param name="style" value="1">
Your browser is without java support</applet>
</td>
</tr>
</table>
</center></div>
</body>
</html>
Vemos que se hace referencia al archivo Clock3D.class que es applet en si. La imagen es la
siguiente que consiste en una cadena de caracteres que muestra la imagen del reloj que va
rotando.
Autor: Ing. Oscar R. Espeche

31
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP


CGI

Es el sistema ms antiguo que
ser
des
el s
Los
C++ o
do para el conjunto de las
pgi

2.
datos.
El programa CGI va escribiendo en la salida estndar el resultado de la ejecucin del
CGI, que incluye etiquetas HTML, ya que lo que se escribe es una pgina web.
I, as que el cdigo del programa se
sin y mantenimiento.
cursos que ocupe ese CGI. Esto significa una grave ineficiencia.
.
el cdigo de los scripts en Perl no se
ompila sino que cada vez que se quiere ejecutar se lee el cdigo y se pone en marcha
ientes de los
sistemas Unx), pero est enfocado a ser ms prctico y fcil que estos ltimos. Es por ello que
existe para la programacin de las pginas dinmicas de
vidor. Actualmente se encuentra un poco desfasado por diversas razones entre las que
a la dificultad con la que se desarrollan tac los programas y la pesada carga que supone para
ervidor que los ejecuta.
CGI se escriben habitualmente en el lenguaje Perl, sin embargo, otros lenguajes como C,
Visual Basic pueden ser tambin empleados para construirlos.
El funcionamiento bsico de un programa CGI es parecido al apunta
nas dinmicas del servidor, con algunas particularidades.
1. Se realiza una peticin http, a la que pueden acompaar datos llegados o bien por un
formulario o bien a travs de la URL.
El servidor ejecuta los programas CGI a los que se accede y trabaja con los recursos
necesarios para llevar a cabo las acciones, como por ejemplo bases de
3.
Algunas desventajas de la programacin en CGI son las siguientes:
Los resultados se escriben directamente con el CG
mezcla con el del HTML haciendo difcil su compren
Cada programa CGI que se pone en marcha lo hace en un espacio de memoria propio.
As, si tres usuarios ponen en marcha un CGI a la vez se multiplicar por tres la cantidad
de re
Perl

Es un lenguaje de programacin muy utilizado para construir aplicaciones CGI para el web. Perl
es un acrnimo de Practical Extracting and Reporting Languaje, que viene a indicar que se trata
de un lenguaje de programacin muy prctico para extraer informacin de archivos de texto y
generar informes a partir del contendido de los archivos

Es un lenguaje libre de uso, eso quiere decir que es gratuito. Antes estaba muy asociado a la
plataforma Unx, pero en la actualidad est disponible en otros sistemas operativos como
Windows.

Perl es un lenguaje de programacin interpretado, al igual que muchos otros lenguajes de
Internet como Javascript o ASP. Esto quiere decir que
c
interpretando lo que hay escrito. Adems es extensible a partir de otros lenguajes, ya que
desde Perl podremos hacer llamadas a subprogramas escritos en otros lenguajes. Tambin
desde otros lenguajes podremos ejecutar cdigo Perl.

Perl est inspirado a partir de lenguajes como C, sh, awk y sed (algunos proven
Autor: Ing. Oscar R. Espeche

32
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

n programador que haya trabajado con el lenguaje C y los otros, tendr menos problemas en
derlo y utilizarlo rpidamente. Una diferencia fundamental de Perl con respecto a los otros
nguajes es que no limita el tamao de los datos con los que trabaja, el lmite lo pone la
talado el interprete del lenguaje. A partir
de ese momento podemos ejecutar CGIs en nuestros servidores web. El proceso para
ASP (Active Server Pages) es la tecnologa desarrollada por Microsoft para la creacin de
el
servidor pueden realizar accesos a bases de datos, conexiones en red, y otras tareas para crear
ente, todos aquellos que
funcionan con sistema Windows NT, aunque tambin se puede utilizar en un PC con windows 98
u
enten
le
memoria que en ese momento se encuentre disponible.

Si queremos trabajar con Perl ser necesario tener ins
conseguirlo puede variar de unos servidores a otros, pero se suelen colocar en un directorio
especial del servidor llamado cgi-bin donde hemos colocado los correspondientes permisos CGI.
Adems, los archivos con el cdigo tambin debern tener permiso de ejecucin.

ASP

pginas dinmicas del servidor. ASP se escribe en la misma pgina web, utilizando el lenguaje
Visual Basic Script o Jscript (Javascript de Microsoft).
Un lenguaje del lado del servidor es aquel que se ejecuta en el servidor web, justo antes de
que se enve la pgina a travs de Internet al cliente. Las pginas que se ejecutan en
la pgina final que ver el cliente. El cliente solamente recibe una pgina con el cdigo HTML
resultante de la ejecucin de la PHP. Como la pgina resultante contiene nicamente cdigo
HTML, es compatible con todos los navegadores.
El tipo de servidores que emplean este lenguaje son, evidentem
si instalamos un servidor denominado Personal Web Server. Incluso en sistemas Linux podemos
utilizar las ASP si intalamos un componente denominado Chilisoft, aunque parece claro que ser
mejor trabajar sobre el servidor web para el que est pensado: Internet Information Server.
Con las ASP podemos realizar muchos tipos de aplicaciones distintas. Nos permite acceso a
de datos, al sistema de archivos del servidor y en general a todos los recursos que tenga
servidor. Tambin tenemos la posibilidad de comprar componentes ActiveX fabricados
Actualmente se ha presentado ya la segunda versin de ASP, el ASP.NET, que comprende
PHP es el acrnimo de Hipertext Preprocesor. Es un lenguaje de programacin del lado del
servidor gratuito e independiente de plataforma, rpido, con una gran librera de
funciones y mucha documentacin.
Un lenguaje del lado del servidor es aquel que se ejecuta en el servidor web, justo antes de
que se enve la pgina a travs de Internet al cliente. Las pginas que se ejecutan en el
servidor pueden realizar accesos a bases de datos, conexiones en red, y otras tareas para crear
la pgina final que ver el cliente. El cliente solamente recibe una pgina con el cdigo HTML
resultante de la ejecucin de la PHP. Como la pgina resultante contiene nicamente cdigo
HTML, es compatible con todos los navegadores.
bases
el propio
por distintas empresas de desarrollo de software que sirven para realizar mltiples usos, como
el envio de correo, generar grficas dinmicamente, y un largo etc.
algunas mejoras en cuanto a posibilidades del lenguaje y rapidez con la que funciona. ASP.NET
tiene algunas diferencias en cuanto a sintaxis con el ASP, de modo que se ha de tratar de
distinta manera uno de otro.
PHP

Autor: Ing. Oscar R. Espeche

33
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP


Esquema del funcionamiento de las pginas PHP.
Una vez que ya conocemos el concepto de lenguaje de programacin de scripts del lado del
servidor podemos hablar de PHP. PHP se escribe dentro del cdigo HTML, lo que lo hace
realmente fcil de utilizar, al igual que ocurre con el popular ASP de Microsoft, pero con algunas
ventajas como su gratuidad, independencia de plataforma, rapidez y seguridad. Cualquiera
puede descargar a travs de la pgina principal de PHP http://www.php.net/ y de manera
gratuita, un mdulo que hace que nuestro servidor web comprenda los scripts realizados en
este lenguaje. Es independiente de plataforma, puesto que existe un mdulo de PHP para casi
cualquier servidor web. Esto hace que cualquier sistema pueda ser compatible con el lenguaje y
significa una ventaja importante, ya que permite portar el sitio desarrollado en PHP de un
sistema a otro sin prcticamente ningn trabajo.
PHP, en el caso de estar montado sobre un servidor Linux u Unix, es ms rpido que ASP, dado
que se ejecuta en un nico espacio de memoria y esto evita las comunicaciones entre
componentes COM que se realizan entre todas las tecnologas implicadas en una pgina ASP.
Por ltimo sealbamos la seguridad, en este punto tambin es importante el hecho de que en
muchas ocasiones PHP se encuentra instalado sobre servidores Unix o Linux, que son de sobra
conocidos como ms veloces y seguros que el sistema operativo donde se ejecuta las ASP,
Windows NT o 2000. Adems, PHP permite configurar el servidor de modo que se permita o
rechacen diferentes usos, lo que puede hacer al lenguaje ms o menos seguro dependiendo de
las necesidades de cada cual.
Fue creado originalmente en 1994 por Rasmus Lerdorf, pero como PHP est desarrollado en
poltica de cdigo abierto, a lo largo de su historia ha tenido muchas contribuciones de otros
desarrolladores. Actualmente PHP se encuentra en su versin 4, que utiliza el motor Zend,
desarrollado con mayor meditacin para cubrir las necesidades de las aplicaciones web
actuales.
Autor: Ing. Oscar R. Espeche

34
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

Este lenguaje de programacin est preparado para realizar muchos tipos de aplicaciones web
gracias a la extensa librera de funciones con la que est dotado. La librera de funciones cubre
desde clculos matemticos complejos hasta tratamiento de conexiones de red, por poner dos
ejemplos.
Algunas de las ms importantes capacidades de PHP son: compatibilidad con las bases de
datos ms comunes, como MySQL, mSQL, Oracle, Informix, y ODBC, por ejemplo. Incluye
funciones para el envo de correo electrnico, upload de archivos, crear dinmicamente
en el servidor imgenes en formato GIF, incluso animadas y una lista interminable de
utilidades adicionales.
Este es el lenguaje que abordaremos en nuestro curso.
J SP

JSP es un acrnimo de Java Server Pages, que en castellano vendra a decir algo como Pginas
de Servidor Java. Es, pues, una tecnologa orientada a crear pginas web con programacin en
Java.
Con JSP podemos crear aplicaciones web que se ejecuten en variados servidores web, de
mltiples plataformas, ya que Java es en esencia un lenguaje multiplataforma. Las pginas JSP
estn compuestas de cdigo HTML/XML mezclado con etiquetas especiales para programar
scripts de servidor en sintaxis Java. Por tanto, las JSP podremos escribirlas con nuestro editor
HTML/XML habitual.

Motor JSP

El motor de las pginas JSP est basado en los servlets de Java -programas en Java destinados
a ejecutarse en el servidor-, aunque el nmero de desarrolladores que pueden afrontar la
programacin de JSP es mucho mayor, dado que resulta mucho ms sencillo aprender que los
servlets.

En JSP creamos pginas de manera parecida a como se crean en ASP. Generamos archivos con
extensin .jsp que incluyen, dentro de la estructura de etiquetas HTML, las sentencias Java a
ejecutar en el servidor. Antes de que sean funcionales los archivos, el motor JSP lleva a cabo
una fase de traduccin de esa pgina en un servlet, implementado en un archivo class (Byte
codes de Java). Esta fase de traduccin se lleva a cabo habitualmente cuando se recibe la
primera solicitud de la pgina .jsp, aunque existe la opcin de precompilar en cdigo para evitar
ese tiempo de espera la primera vez que un cliente solicita la pgina.

Ejemplo de pgina JSP

En la imagen siguiente se puede ver un ejemplo extremadamente simple de una pgina JSP y el
esquema de conversin de esa pgina en un servlet.

Prerequisitos

Para aprender JSP, aparte de conocer HTML, ser necesario comprender y tener algo de
experiencia en la programacin en Java, que es un lenguaje de programacin Orientado a
Objetos por completo. Una vez conocida la programacin en Java se puede estudiar por encima
el sistema de Servlets, lo que nos dar una mejor idea del funcionamiento interno del motor
JSP.

Adems, necesitaremos descargar e instalar Tomcat, el contenedor de servlets usado en la
referencia oficial de implementacin de JSP.

Autor: Ing. Oscar R. Espeche

35
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

Comparando JSP con ASP

JSP y ASP sirven para hacer, ms o menos, el mismo tipo de aplicaciones web. Sin embargo, en
el fondo tienen bastantes diferencias.

Plataforma e independencia del servidor

JSP sigue la filosofa de la arquitectura JAVA de "escribe una vez ejecuta donde quieras". La
implantacin de ASP est limitada para arquitecturas basadas en tecnologa Microsoft.

As, JSP se puede ejecutar en los sistemas operativos y servidores web ms populares, como
por ejemplo Apache, Netscape o Microsoft IIS. Mientras que ASP slo tiene soporte nativo para
los servidores IIS y Personal Web Server, que son los dos servidores web para sistemas
Microsoft, el primero con tecnologa NT y el segundo para sistemas Windows 98 y similares.

Proceso de desarrollo abierto (open source)

El API JSP se beneficia de la extendida comunidad JAVA existente, por el contrario la tecnologa
ASP es especfica de Microsoft que desarrolla sus procesos internamente.

TAGS

Mientras que tanto JSP como ASP usan una combinacin de tags y scripts para crear paginas
web dinmicas, la tecnologa JSP permite a los desarrolladores crear nuevos tags. As los
desarrolladores pueden crear nuevos tags y no depender tanto de los scripts.

Reusabilidad entre plataformas.

Los componentes JSP son reusables en distintas plataformas (UNIX, Windows).

La ventaja Java

La tecnologa JSP usa Java como lenguaje de Script mientras que ASP usa VBScript o Jscript.
Java es un lenguaje mas potente y escalable que los lenguajes de Script. Las pginas JSP son
compilados en Servlets por lo que actan como una puerta a todos los servicios Java de
Servidor y libreras Java para aplicaciones http. Java hace el trabajo del desarrollador ms fcil
p. e. ayuda a proteger el sistema contra las "cadas" mientras que las aplicaciones ASP sobre
sistemas NT son ms susceptibles a sufrirlas, tambin ayuda en el manejo de la memoria
protegiendo contra fallos de memoria y el duro trabajo de buscar los fallos de perdida de
punteros de memoria que pueden hacer mas lento el funcionamiento de una aplicacin.

Mantenimiento

Las aplicaciones que usan JSP tiene un mantenimiento ms fcil que las que usan ASP.
Los lenguajes de Script estn bien para pequeas aplicaciones, pero no encajan bien
para aplicaciones grandes. Java es un lenguaje estructurado y es ms fcil de construir y
mantenimientos grandes como aplicaciones modulares.
La tecnologa JSP hace mayor nfasis en los componentes que en los Scripts, esto hace
que sea ms fcil revisar el contenido sin que afecte a la lgica o revisar la lgica sin
cambiar el contenido.
La arquitectura EJB encapsula la lgica de p. e.: acceso a BD, seguridad, integridad
transaccional y aislamiento de la aplicacin.
Debido a que la tecnologa JSP es abierta y multiplataforma, los servidores web,
plataformas y otros componentes pueden ser fcilmente actualizados o cambiados sin
que afecte a las aplicaciones basadas en la tecnologa JSP.
Autor: Ing. Oscar R. Espeche

36
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

Conclusin

Las ventajas sobre utilizar la tecnologa Java con respecto a la propietaria de Microsoft (ASP)
son, como se ha podido ver, diversas e interesantes. Sin embargo, podemos apuntar una
ventaja de la programacin en ASP, pues resulta bastante ms fcil de aprender que JSP, por lo
menos si no se tiene una experiencia previa en programacin. Esto es debido a que Java es un
lenguaje muy potente, pero un poco ms complicado de usar porque es orientado a objetos y la
manera de escribir los programas es ms rgida.
XML

XML es una tecnologa en realidad muy sencilla que tiene a su alrededor otras tecnologas que
la complementan y la hacen mucho ms grande y con unas posibilidades mucho mayores.
XML, con todas las tecnologas relacionadas, representa una manera distinta de hacer las cosas,
ms avanzada, cuya principal novedad consiste en permitir compartir los datos con los que se
trabaja a todos los niveles, por todas las aplicaciones y soportes. As pues, el XML juega un
papel importantsimo en este mundo actual, que tiende a la globalizacin y la compatibilidad
entre los sistemas, ya que es la tecnologa que permitir compartir la informacin de una
manera segura, fiable, fcil. Adems, XML permite al programador y los soportes dedicar sus
esfuerzos a las tareas importantes cuando trabaja con los datos, ya que algunas tareas tediosas
como la validacin de estos o el recorrido de las estructuras corre a cargo del lenguaje y est
especificado por el estndar, de modo que el programador no tiene que preocuparse por ello.
Vemos que XML no est slo, sino que hay un mundo de tecnologas alrededor de l, de
posibilidades, maneras ms fciles e interesantes de trabajar con los datos y, en definitiva, un
avance a la hora de tratar la informacin, que es en realidad el objetivo de la informtica en
general. XML, o mejor dicho, el mundo XML no es un lenguaje, sino varios lenguajes, no es una
sintaxis, sino varias y no es una manera totalmente nueva de trabajar, sino una manera ms
refinada que permitir que todas las anteriores se puedan comunicar entre si sin problemas, ya
que los datos cobran sentido.
XML es interesante en el mundo de Internet y el e-bussiness, ya que existen muchos sistemas
distintos que tienen que comunicarse entre si, pero como se ha podido imaginar, interesa por
igual a todas las ramas de la informtica y el tratamiento de datos, ya que permite muchos
avances a la hora de trabajar con ellos.
Autor: Ing. Oscar R. Espeche

37
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

1.1.4 HTML

HTML es el lenguaje con el que se escriben las pginas web. Las pginas web pueden ser
vistas por el usuario mediante un tipo de aplicacin llamada navegador. Podemos decir por lo
tanto que el HTML es el lenguaje usado por los navegadores para mostrar las pginas webs al
usuario, siendo hoy en da la internase ms extendida en la red.

Con este tema nos introducimos a la parte prctica del curso donde empezaremos a ver
ejemplos y tcnicas que nos permitan programar un sitio para lograr nuestro objetivo final
como por ejemplo disear un sitio con caractersticas de comercio electrnico.

Este lenguaje nos permite aglutinar textos, sonidos e imgenes y combinarlos a nuestro gusto.
Adems, y es aqu donde reside su ventaja con respecto a libros o revistas, el HTML nos
permite la introduccin de referencias a otras pginas por medio de los enlaces hipertexto.

El HTML se cre en un principio con objetivos divulgativos. No se pens que la web llegara a ser
un rea de ocio con carcter multimedia, de modo que, el HTML se cre sin dar respuesta a
todos los posibles usos que se le iba a dar y a todos los colectivos de gente que lo utilizaran en
un futuro. Sin embargo, pese a esta deficiente planificacin, si que se han ido incorporando
modificaciones con el tiempo, estos son los estndares del HTML. Numerosos estndares se han
presentado ya. El HTML 4.01 es el ltimo estndar a septiembre de 2001.

Esta evolucin tan anrquica del HTML ha supuesto toda una seria de inconvenientes y
deficiencias que han debido ser superados con la introduccin de otras tecnologas accesorias
capaces de organizar, optimizar y automatizar el funcionamiento de las webs. Ejemplos que
pueden sonaros son las CSS, JavaScript u otros. Veremos ms adelante en qu consisten
algunas de ellas.

Otros de los problemas que han acompaado al HTML es la diversidad de navegadores
presentes en el mercado los cuales no son capaces de interpretar un mismo cdigo de una
manera unificada. Esto obliga al webmaster a, una vez creada su pgina, comprobar que esta
puede ser leda satisfactoriamente por todos los navegadores, o al menos, los ms utilizados.

Adems del navegador necesario para ver los resultados de nuestro trabajo, necesitamos
evidentemente otra herramienta capaz de crear la pgina en si. Un archivo HTML (una pgina)
no es ms que un texto. Es por ello que para programar en HTML necesitamos un editor de
textos.

Es recomendable usar el Bloc de notas que viene con windows, u otro editor de textos sencillo.
Hay que tener cuidado con algunos editores ms complejos como Wordpad o Microsoft Word,
pues colocan su propio cdigo especial al guardar las pginas y HTML es nicamente texto
plano, con lo que podremos tener problemas.

Existen otro tipo de editores especficos para la creacin de pginas web los cuales ofrecen
muchas facilidades que nos permiten aumentar nuestra productividad. No obstante, es
aconsejable en un principio utilizar una herramienta lo ms sencilla posible para poder prestar
la mxima atencin a nuestro cdigo y familiarizarnos lo antes posible con l. Siempre
tendremos tiempo ms delante de pasarnos a editores ms verstiles con la consiguiente
ganancia de tiempo.

En este curso solo veremos los aspectos ms avanzados y comunes a la vez, que nos
posibilitarn generar pginas con contenido complejo como lo es compartir cdigo HTML y PHP.

Autor: Ing. Oscar R. Espeche

38
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

Enlaces

Lo bsico es que una pgina web consiste en un archivo HTML en el que podemos incluir, entre
otras cosas, textos formateados a nuestro gusto e imgenes. Del mismo modo, un sitio web
podr ser considerado como el conjunto de archivos, principalmente pginas HTML e imgenes,
que constituyen el contenido al que el navegante tiene acceso.
Sin embargo, no podramos hablar de navegante o de navegacin si estos archivos HTML no
estuviesen debidamente conectados entre ellos y con el exterior de nuestro sitio por medio de
enlaces hipertexto. En efecto, el atractivo original del HTML radica en la posible puesta en
relacin de los contenidos de los archivos introduciendo referencias bajo forma de enlaces que
permitan un acceso rpido a la informacin deseada. De poco servira en la red tener pginas
aisladas a las que la gente no puede acceder y desde las que la gente no puede saltar a otras.
Un enlace puede ser fcilmente detectado en una pgina. Basta con deslizar el puntero del
ratn sobre las imgenes o el texto y ver como cambia de su forma original transformndose
por regla general en una mano con un dedo sealador. Adicionalmente, estos enlaces suelen ir,
en el caso de los textos, coloreados y subrayados para que el usuario no tenga dificultad en
reconocerlos. Si no especificamos lo contrario (ya tendremos ocasin de explicar como), estos
enlaces texto estarn subrayados y coloreados en azul. En el caso de las imgenes que sirvan
de enlace, veremos que estn delimitadas por un marco azul por defecto.
Para colocar un enlace, nos serviremos de las etiquetas <a> y </a>. Dentro de la etiqueta de
apertura deberemos especificar asimismo el destino del enlace. Este destino ser introducido
bajo forma de atributo, el cual lleva por nombre href.
La sintaxis general de un enlace es por tanto de la forma:
<a href="destino">contenido</a>
Siendo el contenido un texto o una imagen. Es la parte de la pgina que se colocar activa y
donde deberemos pulsar para acceder al enlace.
Por su parte, destino ser una pgina, un correo electrnico o un archivo.
En funcin del destino los enlaces son clsicamente agrupados del siguiente modo:
Enlaces internos: los que se dirigen a otras partes dentro de la misma pgina.
Enlaces locales: los que se dirigen a otras pginas del mismo sitio web.
Enlaces remotos: los dirigidos hacia pginas de otros sitios web.
Enlaces con direcciones de correo: para crear un mensaje de correo dirigido a una
direccin.
Enlaces con archivos: para que los usuarios puedan hacer download de archivos.

Enlaces internos

Son los enlaces que apuntan a un lugar diferente dentro de la misma pgina. Este tipo de
enlaces son esencialmente utilizados en pginas donde el acceso a los contenidos puede verse
dificultado debido al gran tamao de la misma. Mediante estos enlaces podemos ofrecer al
visitante la posibilidad de acceder rpidamente al principio o final de la pgina o bien a
diferentes prrafos o secciones.
Autor: Ing. Oscar R. Espeche

39
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

Para crear un enlace de este tipo es necesario, aparte del enlace de origen propiamente dicho,
un segundo enlace que ser colocado en el destino. Veamos ms claramente como funcionan
estos enlaces con un ejemplo sencillo:
Supongamos que queremos crear un enlace que apunte al final de la pgina. Lo primero ser
colocar nuestro enlace origen. Lo pondremos aqu mismo y lo escribiremos del siguiente modo:
<a href="#abajo">Ir abajo</a>
Como podemos ver, el contenido del enlace es el texto "Ir abajo" y el destino, abajo, es un
punto de la misma pgina que todava no hemos definido. Ojo al smbolo #; es l quien
especifica al navegador que el enlace apunta a una seccin en particular.
En segundo lugar, hay que generar un enlace en el destino. Este enlace llevara por nombre
abajo para poder distinguirlo de los otros posibles enlaces realizados dentro de la misma
pgina. En este caso, la etiqueta que escribiremos ser sta:
<a name="abajo"></a>
A decir verdad, estos enlaces, aunque tiles, no son los ms extendidos de cuantos hay. La
tendencia general es la de crear pginas (archivos) independientes con tamaos ms reducidos
enlazados entre ellos por enlaces locales (los veremos enseguida). De esta forma evitamos el
exceso de tiempo de carga de un archivo y la introduccin de exceso de informacin que pueda
desviar la atencin del usuario.
Una aplicacin corriente de estos enlaces consiste en poner un pequeo ndice al principio de
nuestro documento donde introducimos enlaces origen a las diferentes secciones.
Paralelamente, al final de cada seccin introducimos un enlace que apunta al ndice de manera
que podamos guiar al navegante en la bsqueda de la informacin til para l.

Enlaces locales
Como hemos dicho, un sitio web esta constituido de pginas interconectas. En el tema anterior
hemos visto como enlazar distintas secciones dentro de una misma pgina. Nos queda pues
estudiar la manera de relacionar los distintos documentos HTML que componen nuestro sitio
web.
Para crear este tipo de enlaces, hemos de crear una etiqueta de la siguiente forma:
<a href="archivo.html">contenido</a>
Por regla general, para una mejor organizacin, los sitios suelen estar ordenados por
directorios. Estos directorios suelen contener diferentes secciones de la pgina, imgenes,
sonidos...Es por ello que en muchos casos no nos valdr con especificar el nombre del archivo,
sino que tendremos que especificar adems el directorio en el que nuestro archivo.html esta
alojado.
Si hemos trabajado con MS-DOS no tendremos ningn problema para comprender el modo de
funcionamiento. Tan solo hay que tener cuidado en usar la barra "/" en lugar de la contrabarra
"\".
Para aquellos que no saben como mostrar un camino de un archivo, aqu van una serie de
indicaciones que ayudaran a comprender la forma de expresarlos. No resulta difcil en absoluto
y con un poco de prctica lo haremos fcilmente.
Autor: Ing. Oscar R. Espeche

40
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

1. Hay que situarse mentalmente en el directorio en el que se encuentra la pgina con el
enlace.
2. Si la pgina destino esta en un directorio incluido dentro del directorio en el que nos
encontramos, hemos de marcar el camino enumerando cada uno de los directorios por
los que pasamos hasta llegar al archivo y separndolos por el smbolo barra "/". Al final
obviamente, escribimos el archivo.
3. Si la pgina destino se encuentra en un directorio que incluye el de la pgina con el
enlace, hemos de escribir dos puntos y una barra "../" tantas veces como niveles
subamos en el rbol hasta dar con el directorio donde esta emplazado el archivo destino.
4. Si la pgina se encuentra en otro directorio no incluido ni incluyente del archivo origen,
tendremos que subir como en la regla 3 por medio de ".." hasta encontrar un directorio
que englobe el directorio que contiene a la pgina destino. A continuacin haremos
como en la regla 2. Escribiremos todos los directorios por los que pasamos hasta llegar
al archivo.
Ejemplo:


Para clarificar este punto podemos hacer un ejemplo a partir de la estructura de directorios
de la imagen.



Para hacer un enlace desde index.html hacia yyy.html:
<a href="seccion1/paginas/yyy.html">contenido</a>
Para hacer un enlace desde xxx.html hacia yyy.html:
<a href="../seccion1/paginas/yyy.html">contenido</a>
Para hacer un enlace desde yyy.html hacia xxx.html:
<a href="../../seccion2/xxx.html">contenido</a>

Los enlaces locales pueden a su vez apuntar ya no a la pgina en general sino ms
precisamente a una seccin concreta. Este tipo de enlaces resultan ser un hbrido de interno y
local. La sintaxis es de este tipo:
<a href="archivo.html#seccion">contenido</a>
Como para los enlaces internos, en este caso hemos de marcar la seccin con otro enlace del
tipo:
<a name="seccion"></a>
Enlaces externos, de correo y hacia archivos
Para concluir con los enlaces vamos a ver los ltimos 3 tipos de enlaces que habamos
sealado.
Enlaces remotos
Son los enlaces que se dirigen hacia pginas que se encuentran fuera de nuestro sitio web, es
decir, cualquier otro documento que no forma parte de nuestro sitio.
Autor: Ing. Oscar R. Espeche

41
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

Este tipo de enlaces es muy comn y no representa ninguna dificultad. Simplemente colocamos
en el atributo HREF de nuestra etiqueta <A> la URL o direccin de la pgina con la que
queremos enlazar. Ser algo parecido a esto.
<a href="http://www.pepe.com">ir a pepe.com</a>
Slo cabe destacar que todos las direcciones web (URLs) empiezan por http://. Esto indica
que el protocolo por el que se accede es HTTP, el utilizado en la web. No debemos olvidarnos de
colocarlas, porque si no los enlaces sern tratados como enlaces locales a nuestro sitio.
Otra cosa interesante es que no tenemos que enlazar con una pgina web con el protocolo
HTTP necesariamente. Tambin podemos acceder a recursos a travs de otros protocolos como
el FTP. En tal caso, las direcciones de los recursos no comenzarn por http:// sino por ftp://.
Enlaces a direcciones de correo
Los enlaces a direcciones de correo son aquellos que al pincharlos nos abre un nuevo mensaje
de correo electrnico dirigido a una direccin de mail determinada. Estos enlaces son muy
habituales en las pginas web y resultan la manera ms rpida de ofrecer al visitante una va
para el contacto con el propietario de la pgina.
Para colocar un enlace dirigido hacia una direccin de correo colocamos mailto: en el atributo
href del enlace, seguido de la direccin de correo a la que se debe dirigir el enlace.
<a href="mailto:pepe@pepe.com">pepe@pepe.com</a>
Consejo: Cuando coloques enlaces a direcciones de correo procura indicar en el contenido del
enlace (lo que hay entre <A> y </A>) la direccin de correo a la que se debe escribir. Esto es
porque si un usuario no tiene configurado un programa de correo en su computador no podr
enviar mensajes, pero por lo menos podr copiar la direccin de mail y escribir el correo a
travs de otro computador o un sistema web-mail.
Adems de la direccin de correo del destinatario, tambin podemos colocar en el enlace el
asunto del mensaje. Esto se consigue colocando despus de la direccin de correo un
interrogante, la palabra subject, un signo igual (=) y el asunto en concreto.
<a href="malito:pepe@pepe.com?subject=contacto a travs de la pagina">pepe@pepe.com</a>
Podemos colocar otros atributos del mensaje con una sintaxis parecida. En este caso indicamos
tambin que el correo debe ir con copia a info@pepe.com.
<a href="mailto:pepe@pepe.com?subject=contacto a travs de la
pagina&cc=info@pepe.com">pepe@pepe.com</a>
Nota: El visitante de la pgina necesitar tener configurada una cuenta de correo electrnico
en su sistema para enviar los mensajes. Lgicamente, si no tiene servicio de correo en el
computador no se podrn enviar los mensajes y este sistema de contacto con el visitante no
funcionar.

Enlaces con archivos
Este no es un tipo de enlace propiamente dicho, pero lo sealamos aqu porque son un tipo de
enlaces muy habitual y que presenta alguna complicacin para el usuario novato.
Autor: Ing. Oscar R. Espeche

42
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

El mecanismo es el mismo que hemos conocido en los enlaces locales y los enlaces remotos,
con la nica particularidad de que en vez de estar dirigidos hacia una pgina web est dirigido
hacia un archivo de otro tipo.
Si queremos enlazar con un archivo mi_archivo.zip que se encuentra en el mismo directorio que
la pgina se escribira un enlace as.
<a href="mi_archivo.zip">Descarga mi_archivo.zip</a>
Si pinchamos un enlace de este tipo nuestro navegador descargar el archivo, haciendo la
pregunta tpica de "Qu queremos hacer con el archivo. Abrirlo o guardarlo en disco".
Consejo: No colocar en Internet archivos ejecutables directamente sino archivos comprimidos.
Por dos razones:
1. El archivo ocupar menos, con lo que ser ms rpida su transferencia.
2. Al preguntar al usuario lo que desea hacer con el archivo le ofrece la opcin de abrirlo y
guardarlo en disco. Nosotros generalmente desearemos que el usuario lo guarde en
disco y no lo ejecute hasta que lo tenga en su disco duro. Si se decido a abrirlo en vez
de guardarlo simplemente lo pondr en marcha y cuando lo pare no se quedar
guardado en su sistema. Si los archivos estn comprimidos obligaremos al usuario a
descomprimirlos en su disco duro antes de ponerlos en marcha, con lo que nos
aseguramos que el usuario lo guarde en su computador antes de ejecutarlo.

Si queremos enlazar hacia otro tipo de archivo como un PDF o un mundo VRML (Realidad
virtual para Internet) lo seguimos haciendo de la misma manera. El navegador, si reconoce el
tipo de archivo, es el responsable de abrirlo utilizando el conector adecuado para ello. As, si
por ejemplo enlazamos con un PDF pondr el programa Acrobat Reader en funcionamiento para
mostrar los contenidos. Si enlazamos con un mundo VRML pondr en marcha el plug-in que el
usuario tenga instalado para ver los mundos virtuales (Cosmo Player por ejemplo).
Este sera un ejemplo de enlace a un documento PDF.
<a href="mi_documento_pdf">Descarga el PDF</a>

Autor: Ing. Oscar R. Espeche

43
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

Tablas
Una tabla en un conjunto de celdas organizadas dentro de las cuales podemos alojar distintos
contenidos.

En un principio nos podra parecer que las tablas son raramente tiles y que pueden ser
utilizadas principalmente para listar datos como agendas, resultados y otros datos de una
forma organizada. Nada ms lejos de la realidad.
Hoy, gran parte de los diseadores de pginas basan su diseo en este tipo de artilugios. En
efecto, una tabla nos permite organizar y distribuir los espacios de la manera ms optima. Nos
puede ayudar a generar texto en columnas como los peridicos, prefijar los tamaos ocupados
por distintas secciones de la pgina o poner de una manera sencilla un pie de foto a una
imagen.

Puede que en un principio nos resulte un poco complicado trabajar con estas estructuras pero,
si deseamos crear una pgina de calidad, tarde o temprano tendremos que vrnoslas con ellas
y nos daremos cuenta de las posibilidades nos ofrecen.
Para empezar, nada ms sencillo que por el principio: las tablas son definidas por las etiquetas
<table> y </table>.

Dentro de estas dos etiquetas colocaremos todas las otras etiquetas, textos e imgenes que
darn forma y contenido a la tabla.

Las tablas son descritas por lneas de izquierda a derecha. Cada una de estas lneas es definida
por otra etiqueta y su cierre: <tr> y </tr>

Asimismo, dentro de cada lnea, habr diferentes celdas. Cada una de estas celdas ser definida
por otro par de etiquetas: <td> y </td>. Dentro de estas etiquetas ser donde coloquemos
nuestro contenido.

Aqu tenemos un ejemplo de estructura de tabla:

<table>
<tr>
<td>Celda 1, linea 1</td>
<td> Celda 2, linea 1</td>
</tr>
<tr>
<td> Celda 1, linea 2</td>
<td> Celda 2, linea 2</td>
</tr>
</table>


El resultado:
Celda 1, linea 1 Celda 2, linea 1
Celda 1, linea 2 Celda 2, linea 2

A partir de esta idea simple y sencilla, las tablas adquieren otra magnitud cuando les
incorporamos toda una batera de atributos aplicados sobre cada tipo de etiquetas que las
componen.
Autor: Ing. Oscar R. Espeche

44
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

Las celdas son delimitadas por las etiquetas <td> o por las etiquetas <th> (si queremos texto
en negrita y centrado) y constituyen un entorno independiente del resto del documento. Esto
quiere decir que:
Podemos usar prcticamente cualquier tipo de etiqueta dentro de la etiqueta <td> para,
de esta forma, dar forma a su contenido.
Las etiquetas situadas en el interior de la celda no modifican el resto del documento.
Las etiquetas de fuera de la celda no son tenidas en cuenta por sta.
As pues, podemos especificar el formato de nuestras celdas a partir de etiquetas introducidas
en su interior o mediante atributos colocados dentro de la etiqueta de celda <td> o bien, en
algunos casos, dentro de la etiqueta <tr>, si deseamos que el atributo sea valido para toda la
lnea. La forma ms til y actual de dar forma a las celdas es a partir de las hojas de estilo en
cascada que ya tendremos la oportunidad de abordar ms adelante.
Veamos a continuacin algunos atributos tiles para la construccin de nuestras tablas.
Empecemos viendo atributos que nos permiten modificar una celda en concreto o toda una
lnea:
align Justifica el texto de la celda del mismo modo que si
fuese el de un prrafo.
valign Podemos elegir si queremos que el texto aparezca
arriba (top), en el centro (middle) o abajo (bottom)
de la celda.
bgcolor Da color a la celda o lnea elegida.
bordercolor Define el color del borde.

Otros atributos que pueden ser nicamente asignados a una celda y no al conjunto de celdas de
una lnea son:
background Nos permite colocar un fondo para la celda a partir
de un enlace a una imagen.
height Define la altura de la celda en pixels o porcentaje.
width Define la anchura de la celda en pixels o porcentaje.
colspan Expande una celda horizontalmente.
rowspan Expande una celda verticalmente.

Nota: El atributo height no funciona en todos los navegadores, adems, su uso no est
muy extendido. Las celdas por lo general tienen el alto que ncesitan para que quepa
todo el contenido que se le haya insertado, es decir, crecen lo suficiente para que quepa
lo que hemos colocado dentro.

El atributo width si que funciona en todos los navegadores y lo tendremos que utilizar
constantemente. Si le asignamos un ancho a la celda, el ancho ser respetado y si dicha
celda tiene mucho texto o cualquier otro contenido, la celda crecer hacia abajo todo lo
necesario para que quepa lo que hemos colocado.

Debemos tener en cuenta: que si definimos una celda de un ancho 100 por ejemplo, y
colocamos en la celda un contenido como una imagen que mida ms de 100 pixeles, la
celda crecer en horizontal todo lo necesario para que la imagen quepa. Si el elemento,
aunque ms ancho, fuera divisible (como un texto) el ancho sera respetado y el texto
crecera hacia abajo o lo que es lo mismo, en altura, como sealbamos en el anterior
prrafo.
Autor: Ing. Oscar R. Espeche

45
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP


Estos ltimos cuatro atributos descritos son de gran utilidad. Concretamente, height y width
nos ayudan a definir las dimensiones de nuestras celdas de una forma absoluta (en pixels o
puntos de pantalla) o de una forma relativa, es decir por porcentajes referidos al tamao total
de la tabla.

A titulo de ejemplo:
<td width="80">
Dar una anchura de 80 pixels a la celda. Sin embargo,

<td width="80%">
Dar una anchura a la celda del 80% de la anchura de la tabla.
Hay que tener en cuenta que, definidas las dimensiones de las celdas, el navegador va a hacer
lo que buenamente pueda para satisfacer al programador. Esto quiere decir que puede que en
algunas ocasiones el resultado que obtengamos no sea el esperado. Concretamente, si el texto
presenta una palabra excesivamente larga, puede que la anchura de la celda se vea aumentada
para mantener la palabra en la misma lnea. Por otra parte, si el texto resulta muy largo, la
celda aumentara su altura para poder mostrar todo su contenido.
Anlogamente, si por ejemplo definimos dos anchuras distintas a celdas de una misma
columna, el navegador no sabr a cual hacer caso. Es por ello que resulta conveniente tener
bien claro desde un principio como es la tabla que queremos disear. No esta de ms si la
prediseamos en papel si la complejidad es importante. El HTML resulta en general fcil pero
las tablas pueden convertirse en un verdadero quebradero de cabeza si no llegamos a
comprenderlas debidamente.
Los atributos rowspan y colspan son tambin utilizados frecuentemente. Gracias a ellos es
posible expandir celdas fusionando stas con sus vecinas. El valor que pueden tomar estas
etiquetas es numrico. El nmero representa la cantidad de celdas fusionadas.

As,
<td colspan="2">
Fusionara la celda en cuestin con su vecina derecha.
Esta celda tiene un colspan="2"
Celda normal Otra celda

Del mismo modo,
<td rowspan="2">
Celda
Normal
Esta celda tiene rowspan="2",
por eso tiene fusionada la
celda de abajo. Otra celda
normal

Expandir la celda hacia abajo fusionndose con la celda inferior.

El resto de los atributos presentados presentan una utilidad y uso bastante obvios. Los dejamos
a vuestra propia investigacin.
Autor: Ing. Oscar R. Espeche

46
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP


Adems de los atributos especficos de cada celda o lnea, las tablas pueden ser adicionalmente
formateadas a partir de los atributos que nos ofrece la propia etiqueta <table>. He aqu
aquellos que pueden parecernos en un principio importantes:

align Alinea horizontalmente la tabla con respecto a su
entorno.
background Nos permite colocar un fondo para la tabla a partir
de un enlace a una imagen.
bgcolor Da color de fondo a la tabla.
border Define el nmero de pixels del borde principal.
bordercolor Define el color del borde.
cellpadding Define, en pixels, el espacio entre los bordes de la
celda y el contenido de la misma.
cellspacing Define el espacio entre los bordes (en pixels).
height Define la altura de la tabla en pixels o porcentaje.
width Define la anchura de la tabla en pixels o porcentaje.

Los atributos que definen las dimensiones, height y width, funcionan de una manera anloga a
la de las celdas tal y como hemos visto en el capitulo anterior. Contrariamente, el atributo align
no nos permite justificar el texto de cada una de las celdas que componen la tabla, sino ms
bien, justificar la propia tabla con respecto a su entorno.
Vamos a poner tres ejemplos de alineado de tablas, centradas, alineadas a la derecha y a la
izquierda.
Ejemplo de tabla centrada
Esta tabla est centrada
(aling="center"). Solo tiene una celda.
Este sera un texto cualquiera colocado al lado de una tabla
centrada
Ejemplo de tabla alineada a la derecha
Para que se vea el
efecto de alineado a
la tabla debemos
colocar un texto al lado y el texto rodear la tabla, igual que
ocurra con las imgenes alineadas a un lado.
Esta tabla est alineada a la derecha
(aling="right"). Solo tiene una celda.
Ejemplo de tabla alineada a la izquierda
Para que se vea el
efecto de alineado a la
tabla debemos colocar
un texto al lado y el texto rodear la tabla, igual que ocurra
con las imgenes alineadas a un lado.
Esta tabla est alineada a la izquierda
(aling="left"). Solo tiene una celda.

Los atributos cellpading y cellspacing nos ayudaran a dar a nuestra tabla un aspecto ms
esttico. En un principio puede parecernos un poco confuso su uso pero un poco de practica
ser suficiente para hacerse con ellos.

En la siguiente imagen podemos ver grficamente el significado de estos atributos.

Se puede comprobar que los atributos definidos para una celda tienen prioridad con respecto a
los definidos para una tabla. Podemos definir, por ejemplo, una tabla con color de fondo rojo y
una de las celdas de color de fondo verde y se ver toda la tabla de color rojo menos la celda
verde. Del mismo modo, podemos definir un color azul para los bordes de la tabla y hacer que
Autor: Ing. Oscar R. Espeche

47
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

una celda particular sea mostrada con un borde rojo. (Aunque esto no funcionar en todos los
navegadores debido a que algunos no reconocen el atributo bordercolor.
Tabla de color
rojo de fondo
El atributo bgcolor de la
tabla est en rojo.
Celda normal
Esta celda est en verde.
tiene el atributo bgcolor en
color verde

Tablas anidadas
Muy til tambin es el uso de tablas anidadas. As, podemos incluir una tabla dentro de la celda
de otra. El modo de funcionamiento sigue siendo el mismo aunque la situacin puede
complicarse si el nmero de tablas embebidas dentro de otras es elevado.
Consejo: La mayora de las pginas avanzadas que basan su diseo en tablas,
realizan anidaciones de tablas constantemente para meter unos elementos de la
pgina dentro de otros. Se pueden anidar tablas sin lmite, sin embargo, en el caso de
Netscape 4 hay que tener cuidado con el nmero de tablas que anidamos, porque a
medida que metemos una tabla dentro de otra y otra dentro de esta y otra ms,
aumentando el grado de anidacin sucesivamente... podemos encontrar problemas en
su visualizacin y puede que la pgina tarde un poco de tiempo ms en mostrarse en
pantalla.


Vamos a ver un cdigo de anidacin de tablas. Veamos primero el resultado y luego el cdigo,
as conseguiremos entenderlo mejor.
Celda de la tabla principal
Tabla anidada, celda 1 Tabla anidada, celda 2
Tabla anidada, celda 3 Tabla anidada, celda 4

Este sera el cdigo:
<table cellspacing="10" cellpadding="10" border="3">
<tr>
<td align="center">
Celda de la tabla principal
</td>
<td align="center">
<table cellspacing="2" cellpadding="2" border="1">
<tr>
<td>Tabla anidada, celda 1</td>
<td>Tabla anidada, celda 2</td>
</tr>
<tr>
<td>Tabla anidada, celda 3</td>
<td>Tabla anidada, celda 4</td>
</tr>
</table>
</td>
</tr>
Autor: Ing. Oscar R. Espeche

48
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

</table>


Ejemplos prcticos
Hasta aqu la informacin que pretendamos transmitiros sobre las tablas en HTML. Sera
importante ahora realizar algn ejemplo de realizacin de una tabla un poco compleja. Por
ejemplo la siguiente:
Animales en peligro de extincin
Nombre Cabezas Previsin 2010 Previsin 2020
Ballena 6000 4000 1500
Oso Pardo 50
Lince 10
0
Tigre 300 210

Con el correspondiente cdigo fuente:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Ejemplo de tabla</title>
</head>
<body>
<table align="center" cellspacing="2" cellpadding="2" border="1" bgcolor=dddddd>
<tr>
<td colspan="4" align="center" bgcolor="666666"><font
color="#FFFFFF"><strong>Animales en peligro de extincin</strong></font></td>
</tr>
<tr bgcolor="aaaaaa">
<td>Nombre</td>
<td align="center">Cabezas</td>
<td align="center">Previsin 2010</td>
<td align="center">Previsin 2020</td>
</tr>
<tr>
Autor: Ing. Oscar R. Espeche

49
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

<td>Ballena</td>
<td align="center">6000</td>
<td align="center">4000</td>
<td align="center">1500</td>
</tr>
<tr>
<td>Oso Pardo</td>
<td align="center">50</td>
<td rowspan="2" colspan="2" align="center" bgcolor="red">0</td>
</tr>
<tr>
<td>Lince</td>
<td align="center">10</td>
</tr>
<tr>
<td>Tigre</td>
<td align="center">300</td>
<td colspan="2" align="center">210</td>
</tr>
</table>
</body>
</html>

Otro ejemplo de tabla con el que podemos practicar:
Climas de Amrica del Sur
Parte de arriba
de Amrica del
Sur. Pases
como:
Venezuela
Colombia
Ecuador
Per
Parte de abajo
de Amrica del
Sur. Pases
como:
Argentina
Chile
Uruguay
Paraguay
Autor: Ing. Oscar R. Espeche

50
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

Bosque tropical, clima de
sabana, clima martimo
con inviernos secos.
Climas martimos con
veranos secos, con
inviernos secos, climas
frios, clima de estepa,
clima desrtico.


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Ejemplo de tabla</title>
</head>
<body>
<table cellspacing="4" cellpadding="4" border="1" width=400 bgcolor=dddddd>
<tr>
<td colspan="2" bgcolor="666666" align="center"><font color="#FFFFFF"><strong>Climas
de Amrica del Sur</strong></font></td>
</tr>
<tr>
<td width="50%">
<table align="right" cellspacing="1" cellpadding="1" border="1">
<tr>
<td bgcolor="#cccccc" align="center">Venezuela</td>
</tr>
<tr>
<td bgcolor="#cccccc" align="center">Colombia</td>
</tr>
<tr>
<td bgcolor="#cccccc" align="center">Ecuador</td>
</tr>
<tr>
<td bgcolor="#cccccc" align="center">Per</td>
</tr>
</table>
Parte de arriba de Amrica del Sur. Pases como:
</td>
<td width="50%">
<table align="right" cellspacing="1" cellpadding="1" border="1">
<tr>
<td bgcolor="#cccccc" align="center">Argentina</td>
</tr>
<tr>
<td bgcolor="#cccccc" align="center">Chile</td>
</tr>
<tr>
<td bgcolor="#cccccc" align="center">Uruguay</td>
</tr>
<tr>
<td bgcolor="#cccccc" align="center">Paraguay</td>
</tr>
</table>
Parte de abajo de Amrica del Sur. Pases como:
</td>
</tr>
<tr>
<td bgcolor="#358391">Bosque tropical, clima de sabana, clima martimo con inviernos
Autor: Ing. Oscar R. Espeche

51
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

secos.</td>
<td bgcolor="#358391">Climas martimos con veranos secos, con inviernos secos, climas
frios, clima de estepa, clima desrtico.</td>
</tr>
</table>
</body>
</html>

Autor: Ing. Oscar R. Espeche

52
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

Formularios

Hasta ahora hemos visto la forma en la que el HTML gestiona y muestra la informacin,
esencialmente mediante texto, imgenes y enlaces. Nos queda por ver de qu forma podemos
intercambiar informacin con nuestro visitante. Desde luego, este nuevo aspecto resulta
primordial para gran cantidad de acciones que se pueden llevar a cabo mediante el Web:
Comprar un articulo, rellenar una encuesta, enviar un comentario al autor...
Hemos visto anteriormente que podamos, mediante los enlaces, contactar directamente con un
correo electrnico. Sin embargo, esta opcin puede resultar en algunos casos poco verstil si lo
que deseamos es que el navegante nos enve una informacin bien precisa. Es por ello que el
HTML propone otra solucin mucho ms amplia: Los formularios.
Los formularios son esas famosas cajas de texto y botones que podemos encontrar en muchas
pginas web. Son muy utilizados para realizar bsquedas o bien para introducir datos
personales por ejemplo en sitios de comercio electrnico. Los datos que el usuario introduce en
estos campos son enviados al correo electrnico del administrador del formulario o bien a un
programa que se encarga de procesarlo automticamente.
Usando solo HTML podemos nicamente enviar el formulario a un correo electrnico. Si
queremos procesar el formulario mediante un programa, la cosa puede resultar un poco ms
compleja ya que tendremos que emplear otros lenguajes ms sofisticados.
En este caso, la solucin ms sencilla es utilizar los programas prediseados que nos proponen
un gran nmero de servidores de alojamiento y que nos permiten almacenar y procesar los
datos en forma de archivos u otros formatos. Si las pginas estn alojadas en un servidor que
nos propone este tipo de ventajas, siempre se puede recurrir a servidores de terceros que
ofrecen este u otro tipo de servicios gratuitos para webs.
Por supuesto, existe otra alternativa que es la de aprender lenguajes como ASP o PHP que nos
permitirn, entre otras cosas, el tratamiento de formularios.
Los formularios son definidos por medio de las etiquetas <form> y </form>. Entre estas dos
etiquetas colocaremos todos los campos y botones que componen el formulario. Dentro de esta
etiqueta <form> debemos especificar algunos atributos:
action
Define el tipo de accin a llevar a cabo con el formulario. Como ya hemos dicho, existen dos
posibilidades:
El formulario es enviado a una direccin de correo electrnico
El formulario es enviado a un programa o script que procesa su contenido
En el primer caso, el contenido del formulario es enviado a la direccin de correo electrnico
especificada por medio de una sintaxis de este tipo:
<form action="mailto:direccion@correo.com" ...>
Si lo que queremos es que el formulario sea procesado por un programa, hemos de especificar
la direccin del archivo que contiene dicho programa. La etiqueta quedara en este caso de la
siguiente forma:
<form action="direccin del archivo" ...>
Autor: Ing. Oscar R. Espeche

53
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

La forma en la que se expresa la localizacin del archivo que contiene el programa es la misma
que la usada para los enlaces (links).
method
Este atributo se encarga de especificar la forma en la que el formulario es enviado. Los dos
valores posibles que puede tomar esta atributo son post y get. A efectos prcticos y, salvo que
se diga lo contrario, daremos siempre el valor post.
enctype
Se utiliza para indicar la forma en la que viajar la informacin que se mande por el formulario.
En el caso ms corriente, enviar el formulario por correo electrnico, el valor de este atributo
debe de ser "text/plain". As conseguimos que se enve el contenido del formulario como texto
plano dentro del email.
Si queremos que el formulario se procese automticamente por un programa, generalmente no
utilizaremos este atributo, de modo que tome su valor por defecto, es decir, no incluiremos
enctype dentro de la etiqueta <form>
Ejemplo de etiqueta <form> completa
As, para el caso ms habitual -el envo del formulario por correo- la etiqueta de creacin del
formulario tendr el siguiente aspecto:
<form action="mailto:direccion@correo.com (o nombre del archivo de proceso)"
method="post" enctype="text/plain">
Entre esta etiqueta y su cierre colocaremos el resto de etiquetas que darn forma a nuestro
formulario.
Elementos de formulario

El HTML nos propone una gran diversidad de alternativas a la hora de crear nuestros
formularios. Estas van desde la clsica caja de texto hasta la lista de opciones pasando por las
cajas de validacin.
Veamos en qu consiste cada una de estas modalidades y como podemos implementarlas en
nuestro formulario.
Texto corto
Las cajas de texto son colocadas por medio de la etiqueta <input>. Dentro de esta etiqueta
hemos de especificar el valor de dos atributos: type y name.
La etiqueta es de la siguiente forma:
<input type="text" name="nombre">
De este modo expresamos nuestro deseo de crear una caja de texto cuyo contenido ser
llamado nombre (por ejemplo). El aspecto de este tipo de cajas es de sobra conocido, aqu lo se
puede ver:

Autor: Ing. Oscar R. Espeche

54
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

El nombre del elemento del formulario es de gran importancia para poder identificarlo en
nuestro programa de procesamiento o en el mail recibido. Por otra parte, es importante indicar
el atributo type, ya que, como veremos, existen otras modalidades de formulario que usan esta
misma etiqueta.
El empleo de estas cajas esta fundamentalmente destinado a la toma de datos breves: palabras
o conjuntos de palabras de longitud relativamente corta. Veremos ms adelante que existe otra
forma de tomar textos ms largos a partir de otra etiqueta.
Adems de estos dos atributos, esenciales para el correcto funcionamiento de nuestra etiqueta,
existen otra serie de atributos que pueden resultarnos de utilidad pero que no son
imprescindibles:
size
Define el tamao de la caja en nmero de caracteres. Si al escribir el usuario llega al final de la
caja, el texto ira desfilando a medida que se escribe haciendo desaparecer la parte de texto que
queda a la izquierda.
maxlength
Indica el tamao mximo del texto que puede ser tomado por el formulario. Es importante no
confundirlo con el atributo size. Mientras el primero define el tamao aparente de la caja de
texto, maxlength indica el tamao mximo real del texto que se puede escribir. Podemos tener
una caja de texto con un tamao aparente (size) que es menor que el tamao mximo
(maxlength). Lo que ocurrir en este caso es que, al escribir, el texto ira desfilando dentro de la
caja hasta que lleguemos a su tamao mximo definido por maxlength, momento en el cual
nos ser imposible continuar escribiendo.
value
En algunos casos puede resultarnos interesante asignar un valor pre-definido al campo en
cuestin. Esto puede ayudar al usuario a rellenar ms rpidamente el formulario o darle alguna
idea sobre la naturaleza de datos que se requieren. Este valor inicial del campo puede ser
expresado mediante el atributo value. Veamos su efecto con un ejemplo sencillo:
<input type="text" name="nombre" value="Perico Peres">
Genera un campo de este tipo:
Perico Pere



Nota: estamos obligados a utilizar la etiqueta <form>

Aunque de lo que se lee en estos captulos sobre formularios se puede entender bien
esto, hemos querido remarcarlo para que quede muy claro: Cuando queremos utilizar
en cualquer situacin elementos de formulario debemos escribirlos siempre entre las
etiquetas <form> y </form>. De lo contrario, los elementos se vern perfectamente
en Explorer pero no en Netscape.

Dicho de otra forma, en Netscape no se visualizan los elementos de formulario a no
ser que estn colocados entre las correspondientes etiquetas de inicio y fin de
formulario.

Es por ello que para mostrar un campo de texto no vale con poner la etiqueta
<input>, sino que habr que ponerla dentro de un formulario. As:

Autor: Ing. Oscar R. Espeche

55
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

<form>
<input type="text" name="nombre" value="Perico Peres">
</form>
Veremos posteriormente que este atributo puede resultar relevante en determinadas
situaciones.
Texto oculto
Podemos esconder el texto escrito por medio asteriscos de manera a aportar una cierta
confidencialidad. Este tipo de campos son anlogos a los de texto con una sola diferencia:
remplazamos el atributo type="text" por type="password":
<input type="password" name="nombre">
En este caso, se puede comprobar que al escribir dentro del campo en lugar de texto se vern
asteriscos.
Estos campos son ideales para la introduccin de datos confidenciales, principalmente cdigos
de acceso. Se ve en funcionamiento a continuacin.
***

Texto largo
Si deseamos poner a la disposicin de usuario un campo de texto donde pueda escribir
cmodamente sobre un espacio compuesto de varias lneas, hemos de invocar una nueva
etiqueta: <textarea> y su cierre correspondiente.
Este tipo de campos son prcticos cuando el contenido a enviar no es un nombre telfono o
cualquier otro dato breve, sino ms bien, un comentario, opinin, etc.
Dentro de la etiqueta textarea deberemos indicar, como para el caso visto anteriormente, el
atributo name para asociar el contenido a un nombre que ser asemejado a una variable en los
programs de proceso. Adems, podemos definir las dimensiones del campo a partir de los
atributos siguientes:
rows
Define el nmero de lneas del campo de texto.
cols
Define el nmero de columnas del campo de texto.
La etiqueta queda por tanto de esta forma:
<textarea name="comentario" rows="10" cols="40"></textarea>
El resultado es el siguiente:
Autor: Ing. Oscar R. Espeche

56
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP



Asimismo, es posible predefinir el contenido del campo. Para ello, no usaremos el atributo value
sino que escribiremos dentro de la etiqueta el contenido que deseamos atribuirle. Vemoslo:
<textarea name="comentario" rows="10" cols="40">Escribe tu comentario....</textarea>
Dar como resultado:
Escribe tu comentario....


Otros elementos
ente, los textos son un manera muy practica de hacernos llegar la informacin del
navegante. No obstante, en muchos casos, los textos son difcilmente adaptables a programas
rminados casos, puede resultar ms efectivo proponer una eleccin al
anteamiento de una serie de opciones.
Las lis o de mens desplegables que nos permiten elegir una (o
varias) e nos proponen. Para construirlas emplearemos una
etiquet ct>
Como ro de esta etiqueta definiremos su nombre por medio del
atribut ida en una lnea precedida de la etiqueta <option>.

Efectivam
que puedan procesarlos debidamente o bien, puede que su contenido no se ajuste al tipo de
informacin que requerimos.

Es por ello que, en dete
navegante a partir del pl
Este es el caso de, por ejemplo, ofrecer una lista de pases, el tipo de tarjeta de crdito para un
pago,...
Este tipo de opciones pueden ser expresadas de diferentes formas. Veamos a continuacin
cuales son:
Listas de opciones
tas de opciones son ese tip
de las mltiples opciones qu
a con su respectivo cierre: <sele
para los casos ya vistos, dent
o name. Cada opcin ser inclu
Autor: Ing. Oscar R. Espeche

57
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

odemos ver, a partir de estas directivas, la forma ms tpica y sencilla de esta etiqueta:
<select name="estacion">
<option Primavera</option>
<option>Verano</option>
</select>
P
>
<option>Otoo</option>
<option>Invierno</option>

El resultado es:
Primavera

Esta estructura puede verse modificada principalmente a partir de otros dos atributos:

size
Indic . El resto pueden ser vistos por medio de la
barra lateral de desplazamiento.

mul
Perm se
hace tributo se
expresa sin valor alguno, es decir, no se utiliza con el igual: simplemente se pone para
onseguir el efecto, o no se pone si queremos una lista desplegable comn.
a el nmero de valores mostrados de la lista
tiple
ite la seleccin de ms varios elementos de la lista. La eleccin de ms de un elemento
como con el explorador de Windows, a partir de las teclas ctrl o shift. Este a
c
Consejo: Si es posible, no uses multiple

No recomendamos especialmente la puesta en practica de esta opcin ya que el
manejo de las teclas ctrl o shift para elegir varias opciones puede ser desconocido
para el navegante. Evidentemente, siempre cabe la posibilidad de explicarle como
funciona aunque no dejara de ser una complicacin para ms para el visitante.

eamos cual es el efecto producido por estos dos atributos cambiando la lnea:
<select name="estacion">
por:
<select name="estacion" size="3" multiple>
V


La lista quedara de esta forma:
Verano
Otoo
Invierno

iqueta <option> puede asimismo ser matizada por medio de otros atributos
selected

La et


Autor: Ing. Oscar R. Espeche

58
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

el mismo modo que multiple, este atributo no toma ningn valor sino que simplemente indica
presenta esta elegida por defecto.
As, si cambiamos la lnea del cdigo anterior:
option>Otoo</option>
<option selected>Otoo</option>

El resultado ser:
D
que la opcin que lo
<

por:
Otoo

value
Define el opcin que ser enviado al programa o correo electrnico si el usuario elige
esa op ributo puede resultar muy til si el formulario es enviado a un programa
puesto que a cada opcin se le puede asociar un nmero o letra, lo cual es ms fcilmente
anipulable que una palabra o texto. podramos as escribir lneas del tipo:


alor 1. En el correo electrnico recibiramos:

estacion=1

Botones de radio
Existe otra alternativa para plantear una eleccin, en este caso, obligamos al internauta a elegir
nicamente una de las opciones que se le proponen.
La etiqueta empleada en este caso es <input> en la cual tendremos el atributo type ha de
tomar el valor radio. Veamos un ejemplo:
valor de la
cin. Este at
m
<option value="1">Primavera</option>
De este modo, si el usuario elige primavera, lo que le llegara al programa (o correo) es una
variable llamada estacion que tendr com v
Autor: Ing. Oscar R. Espeche

59
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

<input type="radio" name="estacion" value="1">Primavera
<br>
<input type="radio" name="estacion" value="2">Verano
<br>
<input type="radio" name="estacion" value="3">Otoo
<br>
<input type="radio" name="estacion" value="4">Invierno

Nota: Hay que fijarse que la etiqueta <input type="radio"> slo coloca la casilla
pinchable en la pgina. Los textos que aparecen al lado, as como los saltos de lnea
los colocamos con el correspondiente texto en el cdigo de la pgina y las etiquetas
HTML que necesitemos.

El resultado es el siguiente:
Primavera
Verano
Otoo
Invierno
Si
el usuario elige supuestamente Otoo, recibiremos en nuestro correo una lnea tal que esta:
estacion=3
or defecto una de las opciones. Esto puede ser
conseguido por medio del atributo checked:
<input type="radio" name="estacion" value="2" checked>Verano
Veamos el efecto:
Como puede verse, a cada una de las opciones se le atribuye una etiqueta input dentro de la
cual asignamos el mismo nombre (name) para todas las opciones y un valor (value) distinto.


Cabe sealar que es posible preseleccionar p


Primavera
Verano
Otoo
Invierno

Autor: Ing. Oscar R. Espeche

60
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

Cajas de validacin
Este tipo de elementos pueden ser activados o desactivados por el visitante por un simple clic
sobre la caja en cuestin. La sintaxis utilizada es muy similar a las vistas anteriormente:

<input type="checkbox" name="deportes">Me gusta el basquet

El efecto:
Me gusta el bsquet

La nica diferencia fundamental es el valor adoptado por el atributo type.

Del mismo modo que para los botones de radio, podemos activar la caja por medio del atributo
checked.

El tipo de informacin que llegara a nuestro correo (o al programa) ser del tipo:

eportes = on (u off dependiendo si ha sido activada o no) d


tra informacin a enviar O

Los formularios han de permitirnos su envo mediante un botn. Tambin puede resultar
prctico poder proponer un botn de borrado o bien acompaarlo de datos ocultos que puedan
ayudarnos en su procesamiento.
En este capitulo, para terminar la saga de formularios, daremos a conocer los medios de
instalar todas estas funciones.
botn de envo
Para dar por finalizado el proceso de relleno del formulario y hacerlo llegar a su gestor, el
navegante ha de validarlo por medio de un botn previsto a tal efecto. La construccin de dicho
botn no reviste ninguna dificultad una vez familiarizados con las etiquetas input ya vistas:
<input type="submit" value="Enviar">
Con este cdigo generamos un botn como este:
Enviar

Como puede verse, tan solo hemos de especificar que se trata de un botn de envo
(type="submit") y hemos de definir el mensaje del botn por medio del atributo value.
botn de borrado
Este botn nos permitir borrar el formulario por completo en el caso de que el usuario desee
rehacerlo desde el principio. Su estructura sintctica es anloga a la anterior:
<input type="reset" value="Borrar">
Autor: Ing. Oscar R. Espeche

61
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

A diferencia del botn de envo, indispensable en cualquier formulario, el botn de borrado
resulta meramente optativo y no es utilizado frecuentemente. Hay que tener cuidado de no
ponerlo muy cerca del botn de envo y de distinguir claramente el uno del otro.
Datos ocultos
En algunos casos, aparte de los propios datos enviados por el usuario, puede resultar prctico
enviar datos definidos por nosotros mismos que ayuden al programa en su procesamiento del
formulario. Este tipo de datos, que no se muestran en la pgina pero si pueden ser detectados
solicitando el cdigo fuente, no son frecuentemente utilizados por pginas construidas en HTML,
son ms bien usados por pginas que emplean tecnologas de servidor. Veremos ms adelante
qu quiere decir esto. Tan solo queremos dar constancia de su existencia y de su modo
creacin. He aqu un ejemplo:
<input type=hidden name="sitio" value="www.pepe.com">
Esta etiqueta, incluida dentro de nuestro formulario, enviar un dato adicional al correo o
programa encargado de la gestin del formulario. podramos, a partir de este dato, dar a
conocer al programa el origen del formulario o algn tipo de accin a llevar a cabo (una
redireccin por ejemplo).
Botones normales
Dentro de los formularios tambin podemos colocar botones normales, pulsables como
cualquier otro botn. Igual que ocurre con los campos hidden, estos botones por si solos no
tienen mucha utilidad pero podremos necesitarlos para realizar acciones en el futuro. Su
sintaxis es la siguiente.
<input type=button value="Texto escrito en el botn">
Quedara de esta manera:
El uso ms frecuente de un botn es en la programacin en el cliente. Utilizando lenguajes
como Javascript podemos definir acciones a tomar cuando un visitante pulse el botn de una
pgina web.
Ejemplo de formulario
Con este tema finalizamos la explicacin de los formularios. Pasemos ahora a ejemplificar todo
lo aprendido a partir de la creacin de un formulario que consulta el grado de satisfaccin de los
usuarios de una lnea de autobuses ficticia. El formulario est construido para que enve los
datos por correo electrnico a un buzn determinado.
Vemos el formulario en esta pgina. Vosotros tratar de construirlo para ver si habis entendido
bien los temas sobre formularios.
Nombre
Email
@

Poblacin
Sexo
Hombre
Mujer
Autor: Ing. Oscar R. Espeche

62
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP


Frecuencia de los viajes
Varias veces al dia


Comentarios sobre su satisfaccin personal


Deseo recibir notificacin de las novedades en las lneas de autobuses.

Enviar formulario


Borrar to

A continuacin tambin mostraremos el cdigo fuente de este formulario, qu
que tod
do
e es importante
os le echemos un vistazo, aunque sea rpidamente.
<form action="mailto:info@pepe.com" method="post" enctype="text/plain">
Nombre <input type="text" name="nombre" size="30" maxlength="100">
<br>
Email <input type="text" name="email" size="25" maxlength="100" value="@">
<br>
Poblacin <input type="text" name="poblacion" size="20" maxlength="60">
<br>
Sexo
<br>
<input type="radio" name="sexo" value="Varon" checked> Hombre
<br>
<input type="radio" name="sexo" value="Hembra"> Mujer
<br>
<br>
Frecuencia de los viajes
<br>
<select name="utilizacion">
<option value="1">Varias veces al dia
<option value="2">Una vez al dia
<option value="3">Varias veces a la semana
<option value="4">varias veces al mes
</select>
<br>
<br>
Comentarios sobre su satisfaccin personal
<br>
<textarea cols="30" rows="7" name="comentarios"></textarea>
<br>
<br>
<input type="checkbox" name="recibir_info" checked>
Deseo recibir notificacin de las novedades en las lneas de autobuses.
Autor: Ing. Oscar R. Espeche

63
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

<br>
<br>
<input type="submit" value="Enviar formulario">
<br>
<br>
<input type="Reset" value="Borrar todo">
</form>
Para acabar, vamos a ver lo que recibiran por correo electrnico en la
cuando un usuari
empresa de autobuses
o cualquiera rellenase este formulario y pulsase sobre el botn de envio.
nombre=Juan Peres
email=jperes@pepe.com
poblacion=Catamarca, Beln
sexo=Varon
utilizacion=2
comentarios=No creo que sea una buena linea. Poner ms autobuses.
recibir_info=on
Autor: Ing. Oscar R. Espeche

64
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

CSS, hoj as de estilos

El lenguaje HTML est limitado a la hora de aplicarle forma a un documento. Esto es as porque
fue concebido para otros usos (cientficos sobretodo), distinto a los actuales, mucho ms
amplios.

Para solucionar estos problemas los diseadores han utilizado tcnicas tales como la utilizacin
de tablas imgenes transparentes para ajustarlas, utilizacin de etiquetas que no son
estndares del HTML y otras. Estas "trampas" han causado a menudo problemas en las pginas
a la hora de su visualizacin en distintas plataformas.

Adems, los diseadores se han visto frustrados por la dificultad con la que, aun utilizando
estos trucos, se encontraban a la hora de disear las pginas, ya que muchos de ellos venan
diseando pginas sobre el papel, donde el control sobre la forma del documento es absoluto.

Finalmente, otro antecedente que ha hecho necesario el desarrollo de esta tecnologa consiste
en que las pginas web tienen mezclado en su cdigo HTML el contenido del documento con las
etiquetas necesarias para darle forma. Esto tiene sus inconvenientes ya que la lectura del
cdigo HTML se hace pesada y difcil a la hora de buscar errores o depurar las pginas. Aunque,
desde el punto de vista de la riqueza de la informacin y la utilidad de las pginas a la hora de
almacenar su contenido, es un gran problema que estos textos estn mezclados con etiquetas
incrustadas para dar forma a estos: se degrada su utilidad.

En estas pginas de CSS pretendemos dar a conocer la tecnologa con un enfoque prctico para
que en pocos captulos puedan usar las CSS de una manera depurada, reflejando toda nuestra
experiencia en su uso. No pretendemos explorar todos los aspectos de la tecnologa ya que
para realizar esto necesitaramos un la extensin de un libro entero.

Caractersticas y ventajas de las CSS

El modo de funcionamiento de las CSS consiste en definir, mediante una sintaxis especial, la
forma de presentacin (estilo) que le aplicaremos a:
Un sitio web entero, de modo que se puede definir la forma de todo el web de una sola vez.

Un documento HTML o pgina, se puede definir la forma, en un pequeo trozo de cdigo en la
cabecera, a toda la pgina.

Una porcin del documento, aplicando estilos visibles en un trozo de la pgina.
Una etiqueta en concreto, llegando incluso a poder definir varios estilos diferentes para una sola
etiqueta. Esto es muy importante ya que ofrece potencia en nuestra programacin. Podemos
definir, por ejemplo, varios tipos de prrafos: en rojo, en azul, con mrgenes, sin ellos...

La potencia de la tecnologa salta a la vista. Pero no solo se queda aqu, ya que adems esta
sintaxis CSS permite aplicar al documento formato de modo mucho ms exacto. Si antes el
HTML se nos quedaba corto para disear las pginas y tenamos que utilizar trucos para
conseguir nuestros efectos, ahora tenemos muchas ms herramientas que nos permiten definir
esta forma:

Podemos definir la distancia entre lneas del documento.
Se puede aplicar identado a las primeras lneas del prrafo.
Podemos colocar elementos en la pgina con mayor precisin, y sin lugar a errores.
Y mucho ms, como definir la visibilidad de los elementos, mrgenes, subrayados,
tachados...

Y seguimos mostrando ventajas, ya que si con el HTML tan slo podamos definir atributos en
las pginas con pxeles y porcentajes, ahora podemos definir utilizando muchas ms unidades
como:
Autor: Ing. Oscar R. Espeche

65
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP


Pxeles (px) y porcentaje (%), como antes.
Pulgadas (in)
Puntos (pt)
Centmetros (cm)

Navegadores que lo soportan

Esta tecnologa es bastante nueva, por lo que no todos los navegadores la soportan. En
concreto, slo los navegadores de Netscape versiones de la 4 en adelante y de Microsoft a
partir de la versin 3 son capaces de comprender los estilos en sintaxis CSS. Adems cabe
destacar que no todos los navegadores implementan las mismas funciones de hojas de estilos,
por ejemplo, Microsoft Internet Explorer 3 no soporta todo lo relativo a capas.

Esto quiere decir que debemos de usar esta tecnologa con cuidado, ya que muchos usuarios no
podrn ver los formatos que apliquemos a las pginas con CSS. As pues, utilizad las hojas de
estilos cuando estas no vayan a suponer un problema.

Usos de las CSS

Vamos ahora a describir los diferentes usos de las CSS introducidos en el anterior captulo.
Vamos por orden, describiendo los puntos segn su dificultad e importancia.

Pequeas partes de la pgina

Para definir estilos en secciones reducidas de una pgina se utiliza la etiqueta <SPAN>. Con su
atributo style indicamos en sintaxis CSS las caractersticas de estilos. Lo vemos con un
ejemplo, pondremos un prrafo en el que determinadas palabras las vamos a visualizar en color
verde.

<p>
Esto es un prrafo en varias palabras <SPAN style="color:green">en color verde</SPAN>.
resulta muy fcil.
</p>

Que tiene como resultado:

Esto es un prrafo con varias palabras en color verde. resulta muy fcil.
Estilo definido para una etiqueta

De este modo podemos hacer que toda una etiqueta muestre un estilo determinado. Por
ejemplo, podemos definir un prrafo entero en color rojo y otro en color azul. Para ello
utilizamos el atributo style, que es admitido por todas las etiquetas del HTML (siempre y
cuando dispongamos de un navegador compatible con CSS).

<p style="color:#990000">
Esto es un prrafo de color rojo.
</p>
<p style="color:#000099">
Esto es un prrafo de color azul.
</p>

Que tiene como resultado:

Esto es un prrafo de color rojo.
Esto es un prrafo de color azul.
Autor: Ing. Oscar R. Espeche

66
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP


Estilo definido en una parte de la pgina

Con la etiqueta <DIV> podemos definir secciones de una pgina y aplicarle estilos con el
atributo style, es decir, podemos definir estilos de una vez a todo un bloque de la pgina.

<div style="color:#000099; font-weight:bold">
<h3>Estas etiquetas van en <i>azul y negrita</i></h3>
<p>
Seguimos dentro del DIV, luego permanecen los etilos
</p>
</div>

Que tiene como resultado:

Estas etiquetas van en azul y negrita
Seguimos dentro del DIV, luego permanecen los etilos

Estilo definido para toda una pgina

Podemos definir, en la cabecera del documento, estilos para que sean aplicados a toda la
pgina. Es una manera muy cmoda de darle forma al documento y muy potente, ya que estos
estilos sern seguidos en toda la pgina y nos ahorraremos as muchas etiquetas HTML que
apliquen forma al documento. Adems, si deseamos cambiar los estilos de la pgina lo haremos
de una sola vez.

Este ejemplo es ms complicado, puesto que se utiliza la sintaxis CSS de manera ms
avanzada. Pero no te preocupes puesto que con los ejemplos irs aprendiendo su uso y ms
tarde comentaremos la sintaxis en profundidad.

En el ejemplo vemos que se utiliza la etiqueta <STYLE> colocada en la cabecera de la pgina
para definir los distintos estilos del documento.

A grandes rasgos, entre de <STYLE> y </STYLE>, se coloca el nombre de la etiqueta que
queremos definir los estilos y entre llaves -{}- colocamos en sintaxis CSS las caractersticas de
estilos.

<html>
<head>
<title>Ejemplo de estilos para toda una p&aacute;gina</title>
<STYLE type="text/css">
<!--
H1 {text-decoration: underline; text-align:center}
P {font-Family:arial,verdana; color: white; background-color: black}
BODY {color:black;background-color: #cccccc; text-indent:1cm}
// -->
</STYLE>
</head>
<body>
<h1>P&aacute;gina con estilos</h1>
Bienvenidos...
<p>Eesto es un ejemplo sin m&aacute;s importancia</p>
</body>
</html>

Como se puede apreciar en el cdigo, hemos definido que la etiqueta <H1> se presentar
Autor: Ing. Oscar R. Espeche

67
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP


Subrayada
Centrada

Tambin, por ejemplo, hemos definido que el cuerpo entero de la pgina (etiqueta <BODY>) se
le apliquen los estilos siguientes:

Color del texto negro
Color del fondo grisceo
Margen lateral de 1 centmetro

Caber destacar que si aplicamos estilos a la etiqueta <BODY>, estos sern heredados por el
resto de las etiquetas del documento. Esto es as siempre y cuando no se vuelvan a definir esos
estilos en las siguientes etiquetas, en cuyo caso el estilo de la etiqueta ms concreta ser el
que mande. Puede verse este detalle en la etiqueta <P>, que tiene definidos estilos que ya
fueron definidos para <BODY>. Los estilos que se tienen en cuenta son los de la etiqueta <P>,
que es ms concreta.

Por ltimo, ha de apreciarse los comentarios HTML que engloban toda la declaracin de estilos:
<!--Declaracin de estilos-->. Estos comentarios se utilizan para que los navegadores antiguos,
que no comprenden la sintaxis CSS, no incluyan ese texto en el cuerpo de la pgina. Si no se
pusiera, los navegadores antiguos (por ejemplo Netscape 3) escribiran ese cdigo en la pgina.

Estilo definido para todo un sitio web

Una de las caractersticas ms potentes de la programacin con hojas de estilos consiste en
que, de una vez, podemos definir los estilos de todo un sitio web.

Esto se consigue creando un archivo donde tan slo colocamos las declaraciones de estilos de la
pgina y enlazando todas las pginas del sitio con ese archivo.

De este modo, todas las pginas comparten una misma declaracin de estilos y, por tanto, si la
cambiamos, cambiarn todas las pginas.

Con las ventajas aadidas de que se ahorra en lneas de cdigo HTML (lo que reduce el peso del
documento) y se evita la molestia de definir una y otra vez los estilos con el HTML, tal como se
coment anteriormente.

Veamos ahora cmo el proceso para incluir estilos con un archivo externo.

1- Creamos el archivo con la declaracin de estilos

Es un archivo de texto normal, que puede tener cualquier extensin, aunque le podemos
asignar la extensin .css para aclararnos qu tipo de archivo es. El texto que debemos incluir
debe ser escrito exclusivamente en sintaxis CSS, es decir, sera errneo incluir cdigo HTML en
el.

Podemos ver un ejemplo a continuacin.

P {
font-size : 12pt;
font-family : arial,helvetica;
font-weight : normal;
}
H1 {
font-size : 36pt;
font-family : verdana,arial;
Autor: Ing. Oscar R. Espeche

68
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

text-decoration : underline;
text-align : center;
background-color : Teal;
}
TD {
font-size : 10pt;
font-family : verdana,arial;
text-align : center;
background-color : 666666;
}
BODY {
background-color : #006600;
font-family : arial;
color : White;
}


2- Enlazamos la pna web con la hoja de estilos

Para ello, vamos a colocar la etiqueta <LINK> con los atributos:

rel="STYLESHEET" indicando que el enlace es con una hoja de estilos
type="text/css" porque ela archivo es de texto, en sintaxis CSS
href="estilos.css" indica el nombre del archivo fuente de los estilos

Veamos una pgina web entera que enlaza con la declaracin de estilos anterior:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<link rel="STYLESHEET" type="text/css" href="estilos.css">
<title>P&aacute;gina que lee estilos</title>
</head>
<body>
<h1>P&aacute;gina que lee estilos</h1>
Esta p&aacute;gina tiene en la cabecera la etiqueta necesaria para enlazar con la hoja de
estilos. Es muy f&aacute;cil.
<br>
<br>
<table width="300" cellspacing="2" cellpadding="2" border="0">
<tr>
<td>Esto est&aacute; dentro de un TD, luego tiene estilo propio, declarado en el archivo
externo</td>
</tr>
<tr>
<td>La segunda fila del TD</td>
</tr>
</table>
</body>
</html>

Reglas de importancia en los estilos

Los estilos se heredan de una etiqueta a otra, como se indic anteriormente. Por ejemplo, si
tenemos declarado en el <BODY> unos estilos, por lo general, estas declaraciones tambin
Autor: Ing. Oscar R. Espeche

69
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

afectarn a etiquetas que estn dentro de esta etiqueta, o lo que es lo mismo, dentro de todo
el cuerpo.

En muchas ocasiones ms de una declaracin de estilos afecta a la misma porcin de la pgina.
Siempre se tiene en cuenta la declaracin ms particular.

Se puede ver a continuacin esta jerarqua, primero ponemos las formas de declaracin ms
generales, y por tanto menos respetadas en caso de conflicto:

Declaracin de estilos con archivo externo. (Para todo un sitio web)
Declaracin de estilos para toda la pgina. (Con la etiqueta <STYLE> en la cabecera de
la pgina)
Estilos definidos en una parte de la pgina. (Con la etiqueta <DIV>)
Definidos en una etiqueta en concreto. (Utilizando el atributo style en la etiqueta en
cuestin)
Declaracin de estilo para una porcin pequea del documento. (Con la etiqueta
<SPAN>)

Ya vimos cmo incluir estilos en la pgina, de todas las maneras posibles e hicimos un repaso
con la lista anterior. Ahora ests en condiciones de empezar a usar las hojas de estilo en
cascada para mejorar tus pginas y aumentar la productividad de tu trabajo.

Otra forma de definir estilos en un archivo externo

Veamos ahora otra manera de importar una declaracin externa de estilos CSS:

@import url("archivo_a_importar.css"), que se utiliza para importar unas declaraciones de
estilos guardadas en la ruta que se indica entre parntesis.
(las comillas son opcionales, pero los parntesis son obligatorios, por lo menos, en Explorer).

Se debe incluir en la declaracin de estilos global a una pgina, es decir entre las etiquetas
<style type="text/css"> y </style>, que se colocan en la cabecera del documento.

Es importante sealar que la sentencia de importacin del archivo CSS se debe escribir en la
primera lnea de la declaracin de estilos, algo parecido al cdigo siguiente.

<style type="text/css">
@import url ("estilo.css");
body{
background-color:#ffffcc;
}
</style>


El funcionamiento es el mismo que si escribisemos todo el archivo a importar dentro de las
etiquetas de los estilos, con la salvedad de que, si redefinimos dentro del cdigo HTML (entre
las etiquetas </style>) estilos que haban quedado definidos en el archivo externo, los que se
aplicarn sern los que hayamos redefinido.

As, en el ejemplo anterior, aunque hubisemos definido en estilo.css un color de fondo para la
pgina, el color que prevalecera sera el definido a continuacin de la importacin: #ffffcc

La diferencia entre este tipo de importacin del tipo y la que hemos visto anteriormente:

<link rel="stylesheet" type="text/css" href="hoja.css">

Autor: Ing. Oscar R. Espeche

70
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

Es que @import url ("estilo.css") se suele utilizar cuando hay unas pautas bsicas en el trabajo
con los estilos (que se definen en un archivo a importar) y unos estilos especficos para cada
pgina, que se definen a continuacin, dentro del cdigo HTML entre las etiquetas </style>,
como es el caso del ejemplo visto anteriormente.

Sintaxis CSS

Tal como se vio en los ejemplos la sintaxis es bastante sencilla y repetitiva. Vamos a verla:

Para definir un estilo se utilizan atributos como font-size,text-decoration... seguidos de dos
puntos y el valor que le deseemos asignar. Podemos definir un estilo a base de definir muchos
atributos separados por punto y coma.

Ejemplo:

font-size: 10pt; text-decoration: underline; color: black; (el ltimo punto y coma de la
lista de atributos es opcional)

Para definir el estilo de una etiqueta se escribe la etiqueta seguida de la lista de atributos
encerrados entre llaves.

Ejemplo:

H1{text-align: center; color:black}
Muchos de estos valores son unidades de medida, por ejemplo, el valor del tamao de un
margen o el tamao de la fuente. Las unidades de medida son las siguientes:

Puntos pt
Pulgadas in
Centmetros cm
pixels px

Atributos de las hojas de estilo

Tanto para practicar en tu aprendizaje como para trabajar con las CSS lo mejor es disponer de
una tabla donde se vean los distintos atributos y valores de estilos que podemos aplicarle a las
pginas web.

Aqu puedes ver la tabla de los atributos CSS, tenla a mano cuando utilices las CSS.

Nombre del
atributo
Posibles valores Ejemplos
FUENTES - FONT
color valor RGB o nombre de color
color: #009900;
color: red;
Sirve para indicar el color del texto. Lo admiten casi todas las etiquetas de HTML. No todos
los nombres de colores son admitidos en el estndar, es aconsejable entonces utilizar el
valor RGB.
font-size
xx-small | x-small | small | medium |
large | x-large | xx-large
Unidades de CSS
font-size:12pt;
font-size: x-large;
Sirve para indicar el tamao de las fuentes de manera ms rgida y con mayor exactitud.
font-family
serif | sans-serif | cursive | fantasy |
monospace
font-family:arial,helvetica;
font-size: fantasy;
Autor: Ing. Oscar R. Espeche

71
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

Todas las fuentes habituales
Con este atributo indicamos la familia de tipografa del texto. Los primeros valores son
genricos, es decir, los exploradores las comprenden y utilizan las fuentes que el usuario
tenga en su sistema.
Tambin se pueden definir con tipografas normales, como ocurra en html. Si el nombre de
una fuente tiene espacios se utilizan comillas para que se entienda bien.
font-weight
normal | bold | bolder | lighter | 100 |
200 | 300 | 400 | 500 | 600 | 700 | 800 |
900
font-weight:bold;
font-weight: 200;
Sirve para definir la anchura de los caracteres, o dicho de otra manera, para poner negrillas
con total libertad.
Normal y 400 son el mismo valor, as como bold y 700.
font-style normal | italic | oblique
font-style:normal;
font-style: italic;
Es el estilo de la fuente, que puede ser normal, itlica u oblicua. El estilo oblique es similar
al italic.
PRRAFOS - TEXT
line-height normal y unidades CSS
line-height: 12px;
line-height: normal;
El alto de una lnea,y por tanto, el espaciado entre lneas. Es una de esas caractersticas
que no se podan modificar utilizando HTML.
text-
decoration
none | [ underline || overline || line-
through ]
text-decoration: none;
text-decoration: underline;
Para establecer la decoracin de un texto, es decir, si est subrayado, sobrerayado o
tachado.
text-align left | right | center | justify
text-align: right;
text-align: center;
Sirve para indicar la alineacin del texto. Es interesante destacar que las hojas de estilo
permiten el justificado de texto, aunque recuerda que no tiene por que funcionar en todos
los sistemas.
text-indent Unidades CSS
text-indent: 10px;
text-indent: 2in;
Un atributo que sirve para hacer sangrado o mrgenes en las pginas. Muy til y novedosa.
text-
transform
capitalize | uppercase | lowercase | none
text-transform: none;
text-transform: capitalize;
Nos permite transformar el texto, haciendo que tenga la primera letra en maysculas de
todas las palabras, todo en maysculas o minsculas.
FONDO - BACKGROUND
Background-
color
Un color, con su nombre o su valor RGB
background-color: green;
background-color: #000055;
Sirve para indicar el color de fondo de un elemento de la pgina.
Background-
image
El nombre de la imagen con su camino
relativo o absoluto
background-image:
url(mrmol.gif) ;
background-image:
url(http://www.x.com/fondo.gif)
Colocamos con este atributo una imagen de fondo en cualquier elemento de la pgina.
BOX - CAJA
Margin-left Unidades CSS
margin-left: 1cm;
margin-left: 0,5in;
Indicamos con este atributo el tamao del margen a la izquierda
Margin-right Unidades CSS margin-right: 5%;
Autor: Ing. Oscar R. Espeche

72
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

margin-right: 1in;
Se utiliza para definir el tamao del margen a la derecha
Margin-top Unidades CSS
margin-top: 0px;
margin-top: 10px;
Indicamos con este atributo el tamao del margen arriba de la pgina
Margin-
bottom
Unidades CSS
margin-bottom: 0pt;
margin-top: 1px;
Con el se indica el tamao del margen en la parte de abajo de la pgina
Padding-left Unidades CSS
padding-left: 0.5in;
padding-left: 1px;
Indica el espacio insertado, por la izquierda, entre el borde del elemento-continente y el
contenido de este. Es parecido a el atributo cellpadding de las tablas.
El espacio insertado tiene el mismo fondo que el fondo del elemento-continente.
Padding-right Unidades CSS
padding-right: 0.5cm;
padding-right: 1pt;
Indica el espacio insertado, en este caso por la derecha, entre el borde del elemento-
continente y el contenido de este. Es parecido a el atributo cellpadding de las tablas.
El espacio insertado tiene el mismo fondo que el fondo del elemento-continente.
Padding-top Unidades CSS
padding-top: 10pt;
padding-top: 5px;
Indica el espacio insertado, por arriba, entre el borde del elemento-continente y el
contenido de este.
Padding-
bottom
Unidades CSS
padding-right: 0.5cm;
padding-right: 1pt;
Indica el espacio insertado, en este caso por abajo, entre el borde del elemento-continente
y el contenido de este.
Border-color color RGB y nombre de color
border-color: red;
border-color: #ffccff;
Para indicar el color del borde del elemento de la pgina al que se lo aplicamos. Se puede
poner colores por separado con los atributos border-top-color, border-right-color, border-
bottom-color, border-left-color.
Border-style
none | dotted | solid | double | groove |
ridge | inset | outset
border-style: solid;
border-style: double;
El estilo del borde, los valores significan: none=ningun borde, dotted=punteado (no parece
funcionar), solid=solido, double=doble borde, y desde groove hasta outset son bordes con
varios efectos 3D.
border-width Unidades CSS
border-width: 10px;
border-width: 0.5in;
El tamao del borde del elemento al que lo aplicamos.
float none | left | right float: right;
Sirve para alinear un elemento a la izquierda o la derecha haciendo que el texto se agrupe
alrededor de dicho elemento. Igual que el atributo align en imgenes en sus valores right y
left.
clear none | right | left clear: right;
Si este elemento tiene a su altura imagenes u otros elementos alineados a la derecha o la
izquierda, con el atributo clear hacemos que se coloque en un lugar donde ya no tenga esos
elementos a el lado que indiquemos.


La especificacin de estilos CSS es muy amplia, pero creo que la inmensa mayora estn, y por
supuesto la seleccin de los ms importantes.
Autor: Ing. Oscar R. Espeche

73
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

Trucos avanzados con CSS

Las hojas de estilos son un tema largo del que se han escrito libros enteros. Nosotros nos
centramos en los temas prcticos ms importantes.

Definir estilos utilizando clases

Las clases nos sirven para crear definiciones de estilos personalizadas que se pueden utilizar
repetidas veces.

Una clase se puede definir entre las etiquetas <STYLE> (en la cabecera del documento), o en
un archivo externo a la pgina.

Para definirlas utilizamos la siguiente sintaxis, un punto seguido del nombre de la clase y entre
llaves los atributos de estilos deseados. De esta manera:

.nombredelaclase {atributo: valor;atributo2:valor2; ...}

Una vez que tenemos una clase, podemos utilizarla en cualquier etiqueta HTML. Para ello
utilizaremos el atributo class, ponindole como valor el nombre de la clase, de esta forma:

<ETIQUETA class="nombredelaclase">

Ejemplo de la utilizacin de clases

<html>
<head>
<title>Ejemplo de la utilizaci&oacute;n de clases</title>
<STYLE type="text/css">
.fondonegroletrasblancas {background-color:black;color:white;font-size:12;font-family:arial}
.letrasverdes {color:#009900}
</STYLE>
</head>
<body>
<h1 class=letrasverdes>Titulo 1</h1>
<h1 class=fondonegroletrasblancas>Titulo 2</h1>
<p class=letrasverdes>
Esto es un p&aacute;rrafo con estilo de letras verdes</p>
<p class=fondonegroletrasblancas>
Esto es un p&aacute;rrafo con estilo de fondo negro y las letras blancas. Es todo!</p>
</body>
</html>

Estilo en los enlaces

Una tcnica muy habitual, que se puede realizar utilizando las hojas de estilo en cascada y no
se poda en HTML, es la definicin de estilos en los enlaces, quitndoles el subrayado o hacer
enlaces en la misma pgina con distintos colores.

Para aplicar estilo a los enlaces debemos definirlos para los distintos tipos de enlaces que
existen (visitados, activos...). Utilizaremos la siguiente sintaxis, en la declaracin de estilos
global de la pgina (<STYLE>) o del sitio (Definicin en un archivo externo):

Enlaces normales

A:link {atributos}

Autor: Ing. Oscar R. Espeche

74
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

Enlaces visitados

A:visited {atributos}

Enlaces activos (Los enlaces estn activos en el preciso momento en que se pincha sobre
ellos)
A:active {atributos}

Enlaces hover (Cuando el ratn est encima de ellos, solo funciona en iexplorer)
A:hover {atributos}

El atributo para definir enlaces sin subrayado es text-decoration:none, y para darles color es
color:tu_color.

Tambin podemos definir el estilo de cada enlace en la propia etiqueta <A>, con el atributo
style. De esta manera podemos hacer que determinados enlaces de la pgina se vean de
manera distinta

Ejemplo de estilos en enlaces

<html>
<head>
<title>Ejemplos de estilo en enlaces</title>
<STYLE type="text/css">
A:link {text-decoration:none;color:#0000cc;}
A:visited {text-decoration:none;color:#ffcc33;}
A:active {text-decoration:none;color:#ff0000;}
A:hover {text-decoration:underline;color:#999999;font-weight:bold}
</STYLE>
</head>
<body>
<a href="http://dominioinexistente.nofunciona.com">Enlace normal</a>
<br>
<br>
<a href="enlaces.html">Enlace visitado</a>
Pulsar este enlace para verlo activo,
poner el rat&oacute;n por encima para que cambie.
</body>
</html>

URL como valor de un atributo

Determinados atributos de estilos, como background-image necesitan una URL como valor,
para indicarlas podemos definir tanto caminos relativos como absolutos. As pues, podemos
indicar la URL de la imagen de fondo de estas dos maneras:

background-image: url(fondo.gif) En caso de que la imagen est en el mismo
directorio que la pgina.
background-image: url(http://www.pepe.imges/fondo.gif) en este caso damos
la ruta absoluta del arcchivo.

Ocultar estilos en navegadores antiguos

En caso de definir dentro de la etiqueta <STYLE> unas declaraciones de estilos debemos
asegurarnos que estas no se imprimirn en la pgina web con navegadores antiguos.

Autor: Ing. Oscar R. Espeche

75
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

Pensar en un navegador que no reconozca la etiqueta <STYLE>, este supondr que es algo que
no entiende y se olvidar de la etiqueta. Lo siguiente que encuentra es texto normal y har que
este se vea en la pgina, como con cualquier otro texto.

Para evitarlo debemos ocultar con comentarios HTML (<!-- esto es un comentario -->) todo lo
que hay dentro de la etiqueta <STYLE>.

Aplicacin de estilo avanzada a los enlaces

Vamos a ver cmo podramos crear una barra de navegacin bastante dinmica utilizando
nicamente las Hojas de Estilo en Cascada. En el ejemplo vamos a construir una barra de
navegacin que contiene enlaces de varios colores que cambian de tonalidad al pasar el ratn
por encima. El color verde aparece cuando se pone el puntero del ratn encima.



El cdigo es el siguiente.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Ejemplo CSS para enlaces</title>
<style type="text/css">
A:link {color:#0000cc;}
A:visited {color:#0000cc;}
A:active {color:#0000cc;}
A:hover {color:#0000ff;}

A.clase1:visited {color:#ffff00;}
A.clase1:active {color:#ffff00;}
A.clase1:link {color:#ffff00}
A.clase1:hover {color:#00ff00}
A.clase2:visited {font-size:12;color:#ffffff;}
A.clase2:active {font-size:12;color:#ffffff;}
A.clase2:link {font-size:12;color:#ffffff;}
A.clase2:hover {font-size:12;color:#ffff33;}

body {font-family:arial;font-size:11;font-weight:bold}
td {font-family:arial;font-size:11;font-weight:bold}
</style>
</head>
<body>
<a href="#">Este enlace es normal</a>
<br>
<br>
Autor: Ing. Oscar R. Espeche

76
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

<br>
<span style="font-weight:normal;font-size:10">
Los enlaces de esta barra son especiales,
<br>
est&aacute;n definidos por clases
</span>
<br>
<table width="110" cellspacing="1" cellpadding="2" border="0">
<tr>
<td bgcolor="#aa0000"><a href="#" class="clase2">Opciones 1</a></td>
</tr>
<tr>
<td bgcolor="red"><a href="#" class="clase1">Enlace clase1</a></td>
</tr>
<tr>
<td bgcolor="red"><a href="#" class="clase1">Otro de clase1</a></td>
</tr>
<tr>
<td bgcolor="red"><a href="#" class="clase1">M&aacute;s enlaces</a></td>
</tr>
<tr>
&iacute;a m&aacute;s</a></td> <td bgcolor="red"><a href="#" class="clase1">Todav
</t r>
</table>
</body>
</html>

C

mo poner estilo a los enlaces
a lo vimos, pero lo repetimos aqu. Se define el estilo de los enlaces asignando su apariencia
n sus distintos estados:

isi
con active.
sta definicin se realiza en la cabecera de la pgina, entre las etiquetas <STYLE> Y
Y
e

Enlace no visitado. Se define con el atributo link.
Enlace v tado. Se define con el atributo visited.
Enlace activo (cuando se est pulsando). Se define
Enlace con el reton encima. Se define con hover.

E
</STYLE>, y es global a toda la pgina.

Un ejemplo de esto se puede ver en esta declaracin de estilos:


<STYLE type="text/css">
A:link {text-decoration:none;color:#0000cc;}
A:visited {text-decoration:none;color:#ffcc33;}
A:active {text-decoration:none;color:#ff0000;}
A:hover {text-decoration:underline;color:#999999;}
</STYL
i queremos resaltar nuestra barra de navegacin probablemente querramos colocarla en una
navegacin y los enlaces normales de la
gina tengan colores distintos, por estar situados sobre dos tipos de fondos distintos.
E>

Cmo dar estilo a un enlace en concreto

S
tabla de nuestra pgina web, con un color que contraste un poco con el fondo. En un caso como
este, ser necesario que los enlaces de la barra de
p

Autor: Ing. Oscar R. Espeche

77
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

que los enlaces de la barra van a tener un color distinto de los definidos en la
de la pgina, con los estilos. Esto lo podemos conseguir de esta manera.
finido el color de un enlace de una manera especfica, utilizando el atributo style, de
ente de su estado.
Es por esto
cabecera

<a href="#" style="color:#ff0000">Mi enlace</a>

Hemos de
modo que este enlace siempre tendr el color indicado, independientem

Es un enlace amarillo, que quedara muy bien resaltado sobre un fondo oscuro, como se puede
ver en el ejemplo de barra de navegacin siguiente.

Enlace 1
Otro enlace
Enlace 3

En la t arillos en una web donde los enlaces son azules por
efecto
bin vimos que el uso de clases puede ser muy til a la hora de definir estilos especiales
al utilizar las clases con los estilos de los enlaces es que podemos especificar un
el ratn sobre
Por si n
que el
activo,
al que

Otras v ilos y que
podem

Las ca

Veamo

mo ya hemos visto, <SPAN> sirve para aplicarle estilo a una
La diferencia entre <SPAN> y <DIV> es que con esta ltima si que podemos aplicar
estilo a una parte ms amplia de la pgina, por ejemplo a tres prrafos. Adems que la
etiqueta <DIV> tiene un uso adicional que es el de crear divisiones en la pgina a las
abla anterior tenemos enlaces am
. d

Cmo utilizar las clases al aplicar estilo a los enlaces

Tam
que podemos aplicar a las etiquetas que queramos. A la hora de trabajar con los enlaces
tambin podemos aplicar las clases para definir distintos tipos de enlaces, que tienen distintos
tipos de estilos.

A.clase1:visited {color:#ff0000;}
A.clase1:active {color:#ff0000;}
A.clase1:link {color:#ff0000}
A.clase1:hover {color:#00ff00}

La ventaja
formato distinto al enlace dependiendo de su estado: visitado o no, activo o con
l.

o qued claro, al especificar el estilo con el atributo style del enlace slo podamos decir
enlace lo queremos en amarillo, y siempre lo tendremos en amarillo (sea visitado o no,
o estemos o no con el ratn encima). Con las clases definimos un nuevo tipo de enlace
podemos dar distintos formatos dependiendo su estado.
entajas de utilizar las clases consisten en que escribimos una nica vez los est
os cambiar el color de todos los enlaces de la clase con cambiar la declaracin.
pas
s un repaso como una pequea introduccin a lo que son las capas:
La etiqueta HTML <DIV> utilizada para construirla y los atributos CSS con los que
podemos aplicar estilos. Co
pequea parte de una pgina HTML. Por ejemplo, con ella podramos hacer que una
parte de un prrafo se coloree en rojo. Con <SPAN> no es habitual englobar un trozo
muy grande de texto, por ejemplo el que comprenda a varios prrafos.

Con <DIV> tambin podemos aplicar estilo a partes de la pgina HTML.
Autor: Ing. Oscar R. Espeche

78
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

o. Pero su uso ms destacado es el de convertir
esa divisin en una capa.
. En el uso de capas se basan muchos de los efectos ms comunes del DHTML.
Las eti o estas no son
compa dable utilizar la etiqueta <DIV> para
acer capas preferentemente a las otras dos.

esta
anera:

style="text-decoration:underline;font-weight:bold">...</SPAN>
le="color:red;font-size:10px">...</DIV>
ven para
osicionar la divisin en la pgina como una capa. Estos atributos se pueden aplicar a la
n:absolute; left: 200px; top: 100px;">
Hola!
ay otros atributos especiales para capas como width y height para indicar la anchura y
emos visto en el captulo anterior qu son las capas y algunas pequeas muestras sobre cmo
n estilo. Ahora vamos a ver en detenimiento los atributos especficos para
plicar posicionamiento a una capa y otros estilos.
ntes que nada cabe decir que una capa puede tener cualquier atributo de estilos de los que
idad, etc, que veremos a continuacin.
ion
que podremos aplicar una cantidad adicional de atributos HTML para modificar sus
comportamientos. Por ejemplo, con el atributo align de HTML podemos alinear la divisin
al centro, izquierda, derecha o justificad

Una capa es una divisin, una parte de la pgina, que tiene un comportamiento muy
independiente dentro de la ventana del navegador, ya que la podemos colocar en cualquier
parte de la misma y la podremos mover por ella independientemente, por indicar dos
cualidades

quetas <LAYER> e <ILAYER> tienen como objetivo construir capas, per
tibles ms que con Netscape, por lo que es recomen
h

Los atributos que podemos aplicar a estas etiquetas, pero en concreto a las dos recomendadas
<SPAN> y <DIV>, son principalmente de estilos CSS. Estos atributos nos permiten, como
hemos podido ver, modificar de una manera muy exhaustiva la presentacin de los contenidos
en la pgina. Para aplicar estilos a estas etiquetas se utiliza el atributo de HTML style, de
m
<SPAN
<DIV sty

A esto ya lo pudimos ver en ejemplos anteriores, nos referimos a ellos para ampliar esta
informacin. Pero no habamos visto todava una serie de atributos que nos sir
p
etiqueta <DIV> que es la que serva para crear capas compatibles con todos los navegadores.
Los atributos para que la divisin sea una capa son varios y se pueden ver a continuacin.

<div id="c1" style="positio
</div>

El primero, position, indica que se posicione de manera absoluta en la pgina y los siguientes,
left y top, son la distancia desde el borde izquierdo de la pgina y el borde superior.

H
altura de la capa, Z-index que sirve para indicar qu capas se ven encima de qu otras, clip
que sirve para recortar una capa y hacer que partes de ella no sean visibles, o visibility para
definir si la capa es visible o no.

Atributos para capas

H
crearlas y darle alg
a

A
hemos visto. As, el atributo color indica el color del texto de la capa, el atributo font-size indica
el tamao del texto y as con todos los atributos ya vistos.

Ahora bien, existen una serie de atributos que sirven para indicar la forma, el tamao de las
capas, la visibil

Atributo posit

Indica el tipo de posicionamiento de la capa. Puede tener dos valores, relative o absolute.
Autor: Ing. Oscar R. Espeche

79
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

a que la posicin de la capa se calcula con respecto al punto superior izquierdo
e la pgina.
en vertical donde se colocar la capa. Si el atributo position es absolute, top
dica la distancia del borde superior de la capa con respecto al borde superior de la pgina. Si
estaba escribiendo en
se momento en la pgina hasta el borde superior de la capa.
tributo left
sicamente funciona igual que el atributo top, con la diferencia que el atributo left indica la
al a la que estar situada la capa.
irve para indicar el tamao de la capa en vertical, es decir, su altura.

Atr u

Indica

Atribu
si la capa se puede ver en la pgina o permanece oculta al usuario. Este
ributo puede tener tres valores.
defecto, que quiere decir que hereda la visibilidad de la capa
donde est metida la capa en cuestin. Si la capa no est metida dentro de ninguna otra
e que est metida en la capa documento, que es toda la pgina y que siempre
st visible.

Atribu

Sirve p je z que tendrn las distintas capas de la pgina. Dicho
de otra forma, con z-index podemos decir qu capas se vern encima o debajo de otras, en
caso de que e valores numricos y a mayor z-index,
s arriba se ver la pgina.
Es un atributo un poco difcil de explicar. En concreto sirve para recortar determinadas
reas de la capa y que no se puedan ver. Una capa que est visible se puede recortar
para que se vea, pero que no se vea algn trozo de esta. El cliping se indica por medio
de 4 valores, con esta sintaxis.

rect (<top>, <right>, <bottom>, <left>)



- relative indica que la posicin de la capa es relativa a el lugar donde se estaba escribiendo en
la pgina en el momento de escribir la capa con su etiqueta

- absolute indic
d

Atributo top

Indica la distancia
in
el atributo position era relative, top indica la distancia desde donde se
e

A

B
distancia en horizont

Atributo height

S
ib to width
la anchura de la capa
to visibility

Sirve para indicar
at

visible sirve para indicar que la capa se podr ver.
hidden indicar que la capa est oculta.
inherit es el valor por
se supon
e
to z-index
ara indicar la posicin sobre el e
stn superpuestas. El atributo z-index toma
m

Atributo clip

Autor: Ing. Oscar R. Espeche

80
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

Los valores <top>, <right>, <bottom> y <left> indican distancias que se pueden apreciar en
este esquema.


Vemos el siguiente ejemplo:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Prueba con capas</title>
</head>
<body>
<div style="height: 180px; width: 170px; left: 10px; top: 10px; position: absolute; visibility:
visible; font-size: 14pt; font-family: verdana; text-align: center; background-color: #bbbbbb">
Esto es una capa de prueba
<br>
<br>
Este texto es totalmente indiferente
</div>
<div style="clip: rect(0,158,148,15); height: 250px; width: 170px; left: 10px; top: 220px;
position: absolute; visibility: visible; font-size: 14pt; font-family: verdana; text-align: center;
background-color: #bbbbbb">
Esta capa tiene un cliping, por eso se ve entrecortada.
<br>
<br>
Esto es una capa de prueba
</div>
</body>
</html>
Que tiene la siguiente salida en el navegador:



Autor: Ing. Oscar R. Espeche

81
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP



Nota sobre el posicionamiento de capas

S
a la izquierda. Si la pgina est alineada en el centro, entonces lo que sucede es que
dependiendo de la resolucin de pantalla que tengas (ancho de 800px,1024px,etc) la pgina
no cuad

Primero que todo, debemos saber que si trabajamos con el position relative las capas se
colocan en el lugar donde aparecen dentro del cdigo HTML. De este modo, si colocamos una
capa con position relative dentro de una celda de una tabla, dicha capa aparecera dentro de la
celda donde la estamos colocando, independientemente del lugar donde se site la celda al
c

i trabajamos con position:absolute dando un left y un top funciona si tienes tu pgina alineada
ra nada.
ambiar la definicin de la pantalla.
El problema de esta solucin es que la capa hara crecer la celda de la tabla donde queremos
colocarla (al igual que cualquier otro elemento HTML que colocsemos dentro de la tabla) y es
muy probable que nuestro diseo no nos permita este hecho. Seguramente ya habras notado
este problema y si no es as te invito a que crees la capa que intentas colocar con el atributo
position a relative para ver si con eso tu problema ya est resuelto.

En casi todos los casos, la capa que intentamos colocar va a tener que tener el position
absolute, porque con relative no arreglamos totalmente el problema. Entonces volvemos a el
problema inicial, que era situar la capa con position absolute en el lugar exacto,
independientemente de la definicin de pantalla.

La solucin final que propongo pasa por aplicar algn truquillo. La idea es un poco compleja y
para su puesta en marcha debemos realizar una serie de acciones que, sinceramente, considero
excesivas para un problema inicialmente sencillo. As pues, que no asuste lo que voy a soltar a
continuacin, que luego tratar de explicarlo un poco mejor.

Nuestro esquema de trabajo consistir en una capa con posicin relativa, que nos servir de
"ancla" y otra con la posicin absoluta, donde colocaremos el contenido final a mostrar en la
capa.

La capa relativa la colocaremos en el lugar aproximado donde queramos que aparezca la capa
absoluta. La capa absoluta la posicionaremos, una vez cargada la pgina, en un lugar prximo a
la capa relativa. Por supuesto, estas acciones las vamos a tener que realizar con Javascript, que
es el lenguaje que nos permite actualizar las posiciones de las capas dinmicamente.


Autor: Ing. Oscar R. Espeche

82
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

Detenidamente

Decamos que habra que colocar una capa relativa cercana al lugar donde tiene que aparecer la
capa con position absolute. Insisto en que las capas relativas se colocan en el lugar donde las
metemos dentro del cdigo HTML, por lo que ser fcil colocar la capa relativa en el lugar
exacto y que este lugar sea vlido para cualquier definicin.

La segunda capa, la que tiene el contenido final, la pondremos inicialmente en una posicin
cualquiera y escondida, de manera que no se vea que est mal colocada. Una vez terminada de
cargar la pgina, podremos acceder a la posicin de la capa relativa, extrayendo sus valores top
y left y colocndolos en los correspondientes top y left de la capa con posicin absoluta. Una
vez marcada la posicin de la capa absoluta podemos volverla visible.




A la vista de la imagen siguiente, la capa con posicin relativa la hemos colocado en el enlace.
En realidad habra tres capas con posicin relativa para poder posicionar otras tantas capas con
posicin absoluta. La parte que vemos sombreada de verde corresponde al espacio que
abarcara la capa relativa.

Su posicin sera la que est marcada por el aspa roja que aparece en su esquina superior
izquierda. Dicha posicin depende del lugar donde aparezcan los enlaces en la pgina.

Luego, con Javascript deberamos asignar la posicin de la capa absoluta de una manera
parecida a esta.


left de la capa absoluta = left de la capa relativa

top de la capa absoluta = top de la capa relativa + altura de la capa relativa


Podemos sumarle algn pxel ms a la posicin de la capa, si es que queremos moverla un poco
abajo y a la derecha, tal como hemos visto en la imagen.

No pretendo en este artculo, muy a mi pesar y por falta de espacio y tiempo, explicar cmo se
hacen esas operaciones de Javascript. Advierto que si no se conoce nada de Javascript va a ser
imposible ponerse con una tarea tan tediosa como el manejo de capas. Si por el contrario, ya
hemos tenido contacto con Javascript y DHTML anteriormente, no debera ser un problema
realizar esas acciones.

Cmo evitar que una pgina se imprima

Para ello, hay que echar mano de las hojas de estilo. Tanto si el documento tiene una hoja ya
Autor: Ing. Oscar R. Espeche

83
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

asociada como sino, lo que vamos a hacer es asociarle un nueva hoja de estilos. Dicha hoja
contendr un nico estilo, con el cdigo necesario para ocultar un elemento:

.nover{
visibility:hidden
}

A la hora de asociar la hoja de estilos, se le aade un modificador a la etiqueta HTML que
enlaza con el archivo .css que permite especificar para qu tipo de medio se aplicar esta hoja.
En nuestro caso, se aplica en el mbito de la impresin, por lo que se utiliza el atributo
media="print".


<link href="nombre_hoja" rel="stylesheet" type="text/css" media="print">


Una vez hecho esto, basta que toda nuestra pgina este dentro de un elemento div, que
pertenezca a la clase nover.

<body>
<div class="nover">

-- Contenido --

</div>
</body>

Al hacer esto se provoca que en pantalla se visualice la pgina, pero que si por el contrario se
decide imprimir, se le aplicar la hoja de estilos de impresin, en la que el elemento esta
puesto como no visible, por lo que no se imprimir.

Codigo Completo:

Veamos el cdigo ntegro de la pgina web y la hoja de estilos asociada.

Pgina HTML


<html>
<head>
<link href="estilos.css" rel="stylesheet" type="text/css" media="print">
</head>
<body>
<div class="nover">

contenido de la pagina

</div>
</body>
</html>


Hoja estilos: estilos.css

.nover{
visibility:hidden
}
Autor: Ing. Oscar R. Espeche

84
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP


Autor: Ing. Oscar R. Espeche

85
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

1.2 Tcnicas para solapar cdigo PHP y HTML
PHP es un lenguaje especialmente pensado para desarrollos web y el cual puede ser embebido
en pginas HTML. La mayora de su sintaxis es similar a C, Java y Perl y es fcil de aprender. La
meta de este lenguaje es permitir escribir a los creadores de pginas web, pginas dinmicas
de una manera rpida y fcil, aunque se pueda hacer mucho ms con PHP.
PHP (acronimo de "PHP: Hypertext Preprocessor") es un lenguaje "open source" interpretado de
alto nivel embebido en pginas HTML y ejecutado en el servidor.
Una respuesta corta y concisa, pero que significa realmente? Un ejemplo nos aclarar las
cosas:

ej1.php
<html>
<head>
<title>Ejemplo</title>
</head>
<body>

<?php
echo "Este es el script PHP";
?>

</body>
</html>


Podemos ver que no es lo mismo que un script escrito en otro lenguaje de programacin como
Perl o C -- En vez de escribir un programa con muchos comandos para crear una salida en
HTML, escribimos el cdigo HTML con cierto cdigo PHP embebido (introducido) en el mismo,
que producir cierta salida (en nuestro ejemplo, producir un texto). El cdigo PHP se incluye
entre etiquetas especiales de comienzo y final que nos permitirn entrar y salir del modo PHP.

Lo que distingue a PHP de la tecnologa Javascript, la cual se ejecuta en la mquina cliente, es
que el cdigo PHP es ejecutado en el servidor. Si tuvisemos un script similar al de nuestro
ejemplo en nuestro servidor, el cliente solamente recibira el resultado de su ejecucin en el
servidor, sin ninguna posibilidad de determinar que cdigo ha producido el resultado recibido.

Lo mejor de usar PHP es que es extremadamente simple para el principiante, pero a su vez,
ofrece muchas caractersticas avanzadas para los programadores profesionales.

Aunque el desarrollo de PHP est concentrado en la programacin de scripts en la parte del
servidor, se puede utilizar para muchas otras cosas.
Lo que se puede hacer con PHP
PHP puede hacer cualquier cosa que se pueda hacer con un script CGI, como procesar la
informacin de formularios, generar pginas con contenidos dinmicos, o mandar y recibir
cookies. Y esto no es todo, se puede hacer mucho ms.
Existen tres campos en los que scripts escritos en PHP son usados.
Scripts en la parte del servidor. Este es el campo ms tradicional y el principal campo
de trabajo. Se necesitan tres cosas para que esto funcione. El analizador (procesador)
PHP (CGI mdulo), un servidor web y un navegador. Se necesita correr el servidor
web con PHP instalado. El resultado del programa PHP se puede obtener a travs del
navegador, conectando con el servidor web.
Autor: Ing. Oscar R. Espeche

86
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

Scripts en lnea de comandos. Se puede crear un script PHP y correrlo sin ningn
servidor web navegador. Solamente se necesita el intrprete PHP para usarlo de esta
manera. Este tipo de uso es ideal para scripts ejecutados regularmente desde cron (en
*nix Linux) el Planificador de tareas (en Windows). Estos scripts tambin pueden ser
usados para tareas simples de procesado de texto.
Escribir aplicaciones grficas clientes. PHP no es probablemente el mejor lenguaje
para escribir aplicaciones grficas, pero si se sabe bien PHP, y se necesita utilizar
algunas caractersticas avanzadas en programas clientes, se puede utilizar PHP-GTK
para escribir dichos programas. Es tambin posible escribir aplicaciones independientes
de una plataforma. PHP-GTK es una extensin de PHP, no disponible en la distribucin
principal.
PHP puede ser utilizado en cualquiera de los principales sistemas operativos del mercado,
incluyendo Linux, muchas variantes Unix (incluido HP-UX, Solaris y OpenBSD), Microsoft
Windows, Mac OS X, RISC OS y probablemente alguno ms. PHP soporta la mayora de
servidores web de hoy en da, incluyendo Apache, Microsoft Internet Information Server,
Personal Web Server, Netscape y iPlanet, Oreilly Website Pro server, Caudium, Xitami,
OmniHTTPd y muchos otros. PHP tiene mdulos disponibles para la mayora de los servidores,
para aquellos otros que soporten el estndar CGI, PHP puede usarse como procesador CGI.
As que, con PHP se tiene la libertad de escoger el sistema operativo y el servidor de su gusto.
Tambin se tiene la posibilidad de usar programacin de procedimientos programacin
orientada a objetos. Aunque no todas la caractersticas estndares de la programacin
orientada a objetos estn implementadas en la versin actual de PHP, muchas libreras y
aplicaciones grandes (incluyendo la librera PEAR) estn escritas ntegramente usando
programacin orientada a objetos.

Con PHP no se est limitado a resultados en HTML. Entre las habilidades de PHP se incluyen,
creacin de imgenes, archivos PDF y pelculas Flash (usando libswf y Ming) sobre la marcha.
Tambin se puede presentar otros resultados, como XHTM y archivos XML. PHP puede auto
generar estos archivos y grabarlos en el sistema de archivos en vez de presentarlos en la
pantalla.

Quizas la caracterstica ms potente y destacable de PHP es su soporte para una gran cantidad
de bases de datos. Escribir un interfaz via web para una base de datos es una tarea simple con
PHP. Las siguientes bases de datos estn soportadas actualmente:


Adabas D Ingres Oracle (OCI7 and OCI8)
dBase InterBase Ovrimos
Empress FrontBase PostgreSQL
FilePro (read-only) mSQL Solid
Hyperwave Direct MS-SQL Sybase
IBM DB2 MySQL Velocis
Informix ODBC Unix dbm


Tambin tenemos una extensin DBX de abstraccin de base de datos que permite usar de
forma transparente cualquier base de datos soportada por la extensin.

Adicionalmente, PHP soporta ODBC (The Open Database Connection standard), as que se
puede conectar a cualquier base de datos que soporte este estndar.

PHP tambin tiene soporte para comunicarse con otros servicios usando protocolos tales como
LDAP, IMAP, SNMP, NNTP, POP3, HTTP, COM (en Windows) y muchos otros. Tambin se pueden
Autor: Ing. Oscar R. Espeche

87
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

crear raw sockets. PHP soporta WDDX para intercambio de datos entre lenguajes de
programacin en web. Y hablando de interconexin, PHP puede utilizar objetos Java de forma
transparente como objetos PHP Y la extensin de CORBA puede ser utilizada para acceder a
objetos remotos (objetos distribuidos).

PHP tiene unas caractersticas muy tiles para el proceso de texto, desde expresiones regulares
POSIX Extended Perl hasta intrprete de documentos XML. Para parsear (analizar) y acceder
documentos XML, soportamos los estndares SAX y DOM. Se puede utilizar la extensin XSLT
para transformar documentos XML.

Si se usa PHP en el campo del comercio electrnico, se encontrarn muy tiles las funciones
Cybercash, CyberMUT, VeriSign Payflow Pro y CCVS para los programas de pago.

Comenzar a trabajar con PHP

En este manual vamos a asumir que tienes un servidor que soporta PHP y que todos los
archivos con la extensin .php son manejados por PHP. En la mayora de servidores esta es la
extensin que archivos PHP toman por defecto, pero pregunta al administrador de tu servidor
para estar seguro.

Si tu servidor soporta PHP entonces no necesitas hacer nada, solamente crea tus archivos .php
y gurdalos en tu directorio web y el servidor como por magia los analizara por voz. No hay
necesidad de compilar nada, tampoco tienes necesidad de instalar otras herramientas. Mralo
de esta manera, estos archivos de PHP son tan simples como archivos de HTML con una nueva
familia de etiquetas (tags) que te dejan hacer una gran cantidad de cosas.

Digamos que tu tienes limitado acceso al Internet y estas programando localmente. En este
caso, tu quieres instalar un servidor de web como Apache con PHP . Lo mas seguro es que
tambin quieres instalar una base de datos como MySQL.

Tu primera pgina con PHP
Empieza por crear un archivo llamado hola.php y ponlo en el "directorio raz"
(DOCUMENT_ROOT) con el siguiente contenido:

ej2.php
<html>
<head>
<title> Ejemplo de PHP</title>
</head>
<body>
<?php echo "<p>Hola Mundo</p>"; ?>
</body>
</html>
Utiliza tu navegador de web para acceder tu archivo, con el URL terminando en "/hola.php". Si
estas programando localmente este URL lucir algo como http://localhost/hola.php o
http://127.0.0.1/hola.php pero esto depende en la configuracin de tu servidor de web.
Aunque esto es fuera del alcance de este manual, tambin puedes ver las directivas
DocumentRoot y ServerName en la configuracin de tu servidor (en Apache esto es httpd.conf).
Si todo esta configurado correctamente, el archivo ser analizado por PHP y es siguiente
contenido aparecer en tu navegador:
<html>
Autor: Ing. Oscar R. Espeche

88
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

<head>
<title>Ejemplo de PHP</title>
</head>
<body>
<p>Hola Mundo</p>
</body>
</html>


Debes observar que esto no es como scripts de CGI . El archivo no necesita ninguna clase
especial de permisos para ser ejecutado. Piensa al respecto como si fueran archivos de HTML
con un set muy especial de tags disponibles, y que hacen muchas cosas interesantes.

Este programa es extremadamente simple, y no necesitas usar PHP para crear una pgina
como esta. Todo lo que hace es mostrar: Hola Mundo usando la declaracin echo().

Si has intentado usar este ejemplo, y no produjo ningn resultado, te pregunta si queras
descargar el archivo, o te muestra todo el archivo como texto, lo mas seguro es que tu servidor
no a activado PHP. Pdele a tu administrador que active esta funcin , o instlalo si est en tus
posibilidades.

El objetivo de este ejemplo es para demostrar como puedes usar las tags PHP. En este ejemplo
usamos <?php para indicar el inicio de la tag PHP Despus describimos la declaracin y
dejamos el modo PHP usando ?>. Tu puedes salir de PHP y regresar cuantas veces quieras
usando este mtodo.
Una Nota acerca de editores de texto: Hay muchos editores de texto y
Ambientes de Diseo integrado (IDE) que tu puedes usar para crear, editar, y
organizar archivos de PHP.
Una Nota acerca de editores de texto sofisticados: Programas como
"StarOffice", "Microsoft word" y "Abiword" no son buenas opciones para editar
archivos de PHP. Si tu deseas usar uno de estos programas para probar tus
scripts, primero debes asegurarte de que guardes el documento en como "Texto"
puro, o PHP no sera capaz de ejecutar el script.
Una nota acerca de "Windows Notepad": Si tu quieres escribir tus archivos
PHP usando "Windows Notepad" y en algunos otros editores de texto para
Windows necesitaras asegurarte que tus archivos son guardados con la extensin
.php (La mayora de los editores de texto en Windows automticamente trataran
de aadir la .txt extensin a los archivos a menos de que tomes los siguientes
pasos para prevenirlo.) Cuando guardes tus archivos y el programa te pregunte
que nombre le quieres dar a tu archivo utiliza comillas cuando escribes el nombre
(i. e. "hola.php"). Una alternativa es oprimir en la lista de opciones "Archivos de
Texto *.txt" seleccionar la opcin "Todos los archivos *.*". Aqu puedes escribir el
nombre del archivo sin las comillas.
Ahora que as creado un pequeo script de PHP que funciona correctamente, es hora de que
trabajemos con el script de PHP mas famoso; vamos a hacer una llamada a la funcin
phpinfo() para que obtener informacin acerca de tu sistema y configuracin como las
variables disponibles predefinidas , los mdulos utilizados por PHP, y las diferentes opciones de
configuracin. Tomemos unos segundos para revisar esta informacin.
Consideraciones tiles
Hagamos ahora algo que puede ser til. Vamos a chequear que clase de navegador de la web
utilizas. Para hacerlo, vamos a mirar la informacin que el navegador nos manda como parte de
su request a HTTP. Esta informacin es guardada en una variable. Las variables siempre
Autor: Ing. Oscar R. Espeche

89
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

comiensan con un signo de dolar ("$") en PHP. La variable que vamos a utilizar en esta
situacin es $_SERVER["HTTP_USER_AGENT"].
Notas acerca de PHP Autoglobals: $_SERVER es una variable reservada por
PHP que contiene toda la informacin del servidor de web. Es conocida como
Autoglobal (o Superglobal). Estas son variables especiales que son introducidas
en la versin 4.1.0 de PHP. Antes podamos usar los, $HTTP_*_VARS arrays,
tales como $HTTP_SERVER_VARS. Aunque estos han sido despreciados, estas
antiguas variables todava existen.
Para poder ver esta variable solo necesitas:

ej3.php
<?php echo $_SERVER["HTTP_USER_AGENT"]; ?>
Un ejemplo de resultado de este script puede ser:
Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)


Hay muchas clases de variables en PHP. En el ejemplo anterior imprimimos un Array. Los
Arrays pueden ser muy tiles,
$_SERVER es simplemente una variable que es automticamente disponible para ti en PHP.
Puedes obtener una lista completa creando un archivo con el contenido como se muestra a
continuacin:

ej4.php
<?php phpinfo(); ?>


Si abres este archivo con tu navegador, puedes ver una pgina con informacin acerca de PHP,
junto a una lista de todas las variables que puedes usar. Este es el archivo ms simple que
puedes crear para probar si tu servidor de Web esta trabajando con PHP.

Puedes usar mas de un declaracin PHP dentro de una tag PHP, y crear pequeos segmentos de
cdigo que pueden hacer mas que un "echo". Por ejemplo, si queremos detectar por "Internet
Explorer" haramos algo as:

ej5.php
<?php
if (strstr($_SERVER["HTTP_USER_AGENT"], "MSIE")) {
echo "Estas usando Internet Explorer<br />";
}
?>
Un ejemplo de los resultado del script puede ser:
Estas usando Internet Explorer<br />


Aqu introduciremos un par de conceptos nuevos. Tenemos una declaracin if. Si estas
familiarizado con los la sintaxis bsica del lenguaje "C", esto se vera lgico, Pero si tu no
entiendes "C" o otros lenguajes de programacin donde encuentras la sintaxis usada
anteriormente no te preocupes que luego abordaremos este tema en profundidad.

Autor: Ing. Oscar R. Espeche

90
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

El segundo concepto que introducimos fue el concepto llamado strstr(). strstr() es una
funcin integrada en PHP que busca un cadena (string) dentro de otra cadena (string) mas
larga. En el caso anterior estamos buscando por "MSIE" dentro de
$_SERVER["HTTP_USER_AGENT"]. Si la cadena (string) fue encontrada, la funcin
devolver verdadero ("TRUE"),la declaracin "if se evala a verdadero ("TRUE") y el cdigo
adentro de las {braces} es ejecutado.

Podemos dar paso mas y demostrar como puedes saltar adentro y afuera del modo PHP en el
medio de un bloque de cdigo PHP

ej6.php
<?php
if (strstr($_SERVER["HTTP_USER_AGENT"], "MSIE")) {
?>
<h3>strstr tiene que haber devuelto verdadero </h3>
<center><b>Estas usando Internet Explorer</b></center>
<?php
} else {
?>
<h3>strstr tiene que haber devuelto falso</h3>
<center><b>No estas usando Internet Explorer</b></center>
<?php
}
?>
Un ejemplo de los resultados de este script pueden ser:
<h3>strstr tiene que haber devuelto verdadero </h3>
<center><b>Estas usando Internet Explorer</b></center>


En vez de usar una declaracin PHP "echo" para mostrar algo, saltamos fuera del cdigo PHP y
escribimos HTML puro. Este es un punto muy importante y potente que debemos observar aqu,
este es que la fluidez lgica del script esta intacta. Solamente las partes donde hay HTML sern
mandadas a tu navegador dependiendo en los resultados que strstr() ah devuelto, si fue
(verdadero [TRUE], o falso [FALSE]). En otras palabras, si la cadena (string) MSIE fue
encontrada o no.
Usando Formularios HTML
Una de las caractersticas de PHP es que maneja formularios de HTML. Observemos un
ejemplo:

<form action="accion.php" method="POST">
Tu nombre: <input type="text" name="nombre" />
Tu edad: <input type="text" name="edad" />
<input type="submit">
</form>


No hay nada especial acerca de este formulario, es HTML limpio sin ninguna clase de tags
desconocidas. Cuando el cliente llena este formulario, y oprime el botn llamado "Submit", una
pgina titulada accion.php es llamada. En este archivo encontraras algo as (es un ejemplo
tomado al azar):

Autor: Ing. Oscar R. Espeche

91
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

Hola <?php echo $_POST["nombre"]; ?>.
Tienes <?php echo $_POST["edad"]; ?> aos de viejo
Un ejemplo del resultado de este script podra ser:
Hola Jos.
Tienes 22 aos de viejo


Creo que es obvio lo que hace. No hay mucho mas al respecto. las variables $_POST["nombre"]
y $_POST["edad"] son asignadas automticamente por PHP.

Hace un ratito usamos la variable $_SERVER Autoglobal, ahora hemos introducido $_POST
Autoglobal, que contiene toda la informacin POST. Pon atencin al method en nuestra forma;
es POST. Si hubiramos usado GET entonces nuestra informacin estara en $_GET Autoglobal.

Tambin puedes utilizar $_REQUEST Autoglobal si a ti no te importa el origen de tu consulta
informtica. Esta contiene una mezcla de informacin GET, POST, COOKIE y FILE (despus se
te aclararn estos conceptos si es la primera vez que te enfrentas a ellos).
Usando cdigo antiguo con nuevas versiones de PHP
Ahora que PHP ha crecido y se ha convertido en un lenguaje popular, hay muchas mas fuentes
de recursos conteniendo cdigo que puedes reusar en tu propio programa. Por la mayor parte
las personas que mantienen PHP tratan de que el lenguaje sea compatible con versiones
anteriores, para que los programas escritos con versiones antiguas continen funcionando
cuando instalas una nueva versin de PHP.

En un mundo perfecto tu nunca necesitaras modificar tu cdigo para hacerlo funcionar con
versiones nuevas del lenguaje; pero como todos sabemos este no es un mundo perfecto,
usualmente cambios en tu cdigo son necesarios. Dos de los cambios mas importantes que
afectan cdigo viejo son:
La definicin de abandonar el uso de los arrays $HTTP_*_VARS (que usualmente
son indicados como una global cuando su usan dentro de una funcin o mtodo). Los
siguientes arrays de Autoglobal (no necesitan ser declarados como globales en una
funcin) son introducidos en su reemplazo en la versin 4.1.0. de PHP. Estas son:
$_GET, $_POST, $_COOKIE, $_SERVER, $_ENV, $_REQUEST, y $_SESSION.
Los antiguos $HTTP_*_VARS como $HTTP_POST_VARS, todava existen, y han
existido desde PHP 3.
Las variables externas que ya no son registradas automticamente. En otras
palabras, desde PHP 4.2.0, la directiva PHP register_globals esta off (desactivada) en
php.ini (el archivo de configuracin de PHP).
El mtodo preferido actualmente para obtener acceso a estos valores es por medio de los
"Autoglobal arrays" mencionados anteriormente.
Scripts que son antiguos en libros y tutoriales pueden asumir que esta directiva es
automticamente "On". En este caso conviene poner dicha variable en On para poder
utilizar las viejas variables globales.
Autor: Ing. Oscar R. Espeche

92
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

Solapar cdigo PHP y HTML
Para interpretar un archivo php simplemente interpreta el texto del archivo hasta que
encuentra uno de los caracteres especiales que delimitan el inicio de cdigo PHP. El intrprete
ejecuta entonces todo el cdigo que encuentra, hasta que encuentra una etiqueta de fin de
cdigo, que le dice al intrprete que siga ignorando el cdigo siguiente. Este mecanismo
permite embeber cdigo PHP dentro de HTML: todo lo que est fuera de las etiquetas PHP se
deja tal como est y se enva al navegador, mientras que el resto se interpreta como cdigo,
generando salidas al navegador solamente cuando el cdigo lo indica mediante rdenes como
echo ..... , como ya vimos.

Hay cuatro conjuntos de etiquetas que pueden ser usadas para denotar bloques de cdigo PHP.
De estas cuatro, slo 2 (<?php. . .?> y <script language="php">. . .</script>) estn siempre
disponibles; el resto pueden ser configuradas en el archivo de php.ini para ser o no aceptadas
por el intrprete.

Mientras que el formato corto de etiquetas (short-form tags) y el estilo ASP (ASP-style tags)
pueden ser convenientes, no son portables como la versin de formato largo de etiquetas.
Adems, si se pretende embeber cdigo PHP en XML o XHTML, ser obligatorio el uso del
formato <?php. . .?> para la compatibilidad con XML.

Las etiquetas soportadas por PHP son:

1. <?php echo("si quieres servir documentos XHTML o XML, haz como aqu"); ?>

2. <? echo ("esta es la ms simple, una instruccin de procesado SGML \n"); ?>
<?= expresin ?> Esto es una abreviatura de "<? echo expresin; ?>"

3. <script language="php">
echo ("muchos editores (como FrontPage) no
aceptan instrucciones de procesado");
</script>

4. <% echo ("Opcionalmente, puedes usar las etiquetas ASP"); %>
<%= $variable; # Esto es una abreviatura de "<% echo . . ." %>


El mtodo primero, <?php. . .?>, es el ms conveniente, ya que permite el uso de PHP en
cdigo XML como XHTML.

El mtodo segundo no siempre est disponible. El formato corto de etiquetas est disponible
con la funcin short_tags() (slo PHP 3), activando el parmetro del archivo de configuracin
de PHP short_open_tag, o compilando PHP con la opcin --enable-short-tags del comando
configure. Aunque est activa por defecto en php.ini-dist, se desaconseja el uso del formato
de etiquetas corto.
El mtodo cuarto slo est disponible si se han activado las etiquetas ASP en el archivo de
configuracin: asp_tags.
Nota: El soporte de etiquetas ASP se aadi en la versin 3.0.4.
Nota: No se debe usar el formato corto de etiquetas cuando se desarrollen
aplicaciones o libreras con intencin de redistribuirlas, o cuando se desarrolle
para servidores que no estn bajo nuestro control, porque puede ser que el
formato corto de etiquetas no est soportado en el servidor. Para generar cdigo
portable y redistribuble, asegrate de no usar el formato corto de etiquetas.
Autor: Ing. Oscar R. Espeche

93
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

La etiqueta de fin de bloque incluir tras ella la siguiente lnea si hay alguna presente. Adems,
la etiqueta de fin de bloque lleva implcito el punto y coma; no necesitas por lo tanto aadir el
punto y coma final de la ltima lnea del bloque PHP.

PHP permite estructurar bloques como:

ej9.php
<?php
$expresion = 1;
if ($expresion) {
?>
<strong>Esto es verdadero</strong>
<?php
} else {
?>
<strong>Esto es falso</strong>
<?php
}
?>


Este ejemplo realiza lo esperado, ya que cuando PHP encuentra las etiquetas ?> de fin de
bloque, empieza a escribir (enva al navegador) lo que encuentra tal cual hasta que encuentra
otra etiqueta de inicio de bloque. El ejemplo anterior es, por supuesto, inventado. Para escribir
bloques grandes de texto generalmente es ms eficiente separarlos del cdigo PHP que enviar
todo el texto mediante las funciones echo(), print() o similares.
Separacin de instrucciones
Las separacin de instrucciones se hace de la misma manera que en C o Perl - terminando cada
declaracin con un punto y coma.
La etiqueta de fin de bloque (?>) implica el fin de la declaracin, por lo tanto lo siguiente es
equivalente:

ej10.php
<?php
echo "Esta prueba funciona con ; ";
?>

<br><br>

<?php echo "Esta prueba funciona sin ; "?>


Comentarios
PHP soporta el estilo de comentarios de 'C', 'C++' y de la interfaz de comandos de Unix. Por
ejemplo:

<?php
echo "Esto es una prueba"; // Este es un comentario al estilo c++
/* Este es un comentario multilnea
esta es otra lnea */
echo "Esta es otra prueba";
echo "Una prueba final"; # Este es un comentario al estilo shell de Unix
Autor: Ing. Oscar R. Espeche

94
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

?>

Los estilos de comentarios de una linea actualmente slo comentan hasta el final de la linea o el
bloque actual de cdigo PHP, lo primero que ocurra.

<h1>Este es un <?php # echo "simple";?> ejemploh1>
<p>la lnea anterior dice Este es un ejemplo.

Hay que tener cuidado con no anidar comentarios de estilo 'C', algo que puede ocurrir al
comentar bloques largos de cdigo.

<?php
/*
echo "Esto es una prueba"; /* Este comentario puede causar un problema */
*/
?>

Los estilos de comentarios de una linea actualmente slo comentan hasta el final de la linea o
del bloque actual de cdigo PHP, lo primero que ocurra. Esto implica que el cdigo HTML tras //
?> ser impreso: ?> sale del modo PHP, retornando al modo HTML, el comentario // no le
influye.
Autor: Ing. Oscar R. Espeche

95
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

1.3 Tipos de variables

PHP soporta los siguientes tipos:
1. enteros
2. nmeros de punto flotante
3. cadenas
4. arrays
5. objetos
El tipo de una variable normalmente no lo declara el programador; en su lugar, lo decide PHP
en tiempo de ejecucin dependiendo del contexto en el que se utilice esa variable.

Si se quisiese obligar a que una variable se convierta a un tipo concreto, se podra forzar la
variable o usar la funcin settype() para ello.

Ntese que una variable se puede comportar de formas diferentes en ciertas situaciones,
dependiendo de qu tipo sea en ese momento. Para ms informacin, vea la seccin
Conversin de Tipos.

1.3.1 Variable Enteros
Los enteros se puede especificar usando una de las siguientes sintaxis:

$a = 1234; # nmero entero positivo de base diez (decimal)
$a = -123; # un nmero negativo
$a = 0123; # nmero octal (equivalente al 83 decimal)
$a = 0x12; # nmero hexadecimal (equivalente al 18 decimal)

1.3.2 Variables Nmeros en punto flotante
Los nmeros en punto flotante ("double") se pueden especificar utilizando cualquiera de las
siguientes sintaxis:

$a = 1.234; $a = 1.2e3;
Autor: Ing. Oscar R. Espeche

96
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

1.3.3 Variables Cadenas
Las cadenas de caracteres se pueden especificar usando uno de dos tipos de delimitadores.
Si la cadena est encerrada entre dobles comillas ("), las variables que estn dentro de la
cadena sern expandidas (sujetas a ciertas limitaciones de interpretacin). Como en C y en
Perl, el carcter de barra invertida ("\") se puede usar para especificar caracteres especiales:

secuencia significado
\n Nueva lnea
\r Retorno de carro
\t Tabulacin horizontal
\\ Barra invertida
\$ Signo del dlar
\" Comillas dobles
\[0-7]{1,3}
la secuencia de caracteres que coincide con la expresin regular anterior, es
un carcter en notacin octal
\x[0-9A-Fa-
f]{1,2}
la secuencia de caracteres que coincide con la expresin regular anterior, es
un carcter en notacin hexadecimal

Se puede proteger cualquier otro carcter, pero se producir una advertencia en el nivel de
depuracin ms alto.

Estos cambios de lnea y tabulaciones tienen nicamente efecto en el cdigo (que se ejecuta en
el servidor) y no en el texto ejecutado por el navegador.
En otras palabras, si queremos que nuestro texto ejecutado cambie de lnea hemos de
introducir un echo "<br>" y no echo "\n" ya que este ultimo slo cambia de lnea en el archivo
HTML creado y enviado al navegador cuando la pgina es ejecutada en el servidor.
La diferencia entre estos dos elementos puede ser fcilmente comprendida mirando el cdigo
fuente producido al ejecutar este script:
<HTML>
<HEAD>
<TI TLE>cambiolinea.php</ TI TLE>
</ HEAD>
<BODY>
<?
echo "Hola, \ n sigo en la misma lnea ej ecutada ( salida del navegador) pero no en
cdigo fuente del navegador.<br>Cambi de lnea ej ecutada pero continuo en la
misma en el cdigo fuente del navegador."
?>
</ BODY>
</ HTML>

Echamos un vistazo al codigo fuente del navegador para comparar.

El cdigo fuente que observaramos en el navegador, seria el siguiente:
<HTML>
<HEAD>
<TITLE>cambiolinea.php</TITLE>
</HEAD>
Autor: Ing. Oscar R. Espeche

97
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

<BODY>
Hola,
sigo en la misma lnea ejecutada (salida del navegador) pero no en cdigo fuente del
navegador.<br>Cambi de lnea ejecutada pero continuo en la misma en el cdigo fuente del
navegador.</BODY>
</HTML>

Las cadenas pueden asimismo ser tratadas por medio de funciones de todo tipo. Veremos estas
funciones ms adelante con ms detalle. Tan slo debemos retener que existen muchas
posibles acciones que podemos realizar sobre ellas: Dividirlas en palabras, eliminar espacios
sobrantes, localizar secuencias, remplazar caracteres especiales por su correspondiente en
HTML o incluso extraer las etiquetas META de una pgina web.

La segunda forma de delimitar una cadena de caracteres usa el carcter de comilla simple (" '
"). Cuando una cadena va encerrada entre comillas simples, los nicos caracteres de escape
que sern comprendidos son \\ (imprime: \ ) y \' (imprime: ' ). Esto es por convenio, as que
se pueden tener comillas simples y barras invertidas en una cadena entre comillas simples. Las
variables no se expandirn dentro de una cadena entre comillas simples.

Otra forma de delimitar cadenas es usando la sintaxis de documento incrustado ("<<<"). Se
debe proporcionar un identificador despus de <<<, despus la cadena, y despus el mismo
identificador para cerrar el entrecomillado.

ej12.php
<?php
$str = <<<EOD
Ejemplo de cadena
Expandiendo mltiples lneas
usando sintaxis de documento incrustado.
EOD;
Echo $str;
?>
Nota: La sintaxis de documento incristado fue aadida en PHP 4.
Las cadenas se pueden concatenar usando el operador '.' (punto). Ntese que el operador '+'
(suma) no sirve para esto.

Se puede acceder a los caracteres dentro de una cadena tratndola como un array de
caracteres indexado numricamente, usando una sintaxis similar a la de C. Veamos ejemplos
de lo que enunciamos.

ej13.php
<?php
/* Asignando una cadena. */
$str = "Esto es una cadena";
echo $str;
echo"<br>";
/* Aadiendo a la cadena. */
$str = $str . " con algo ms de texto";
echo $str;
echo"<br>";
/* Otra forma de aadir, incluye un carcter de nueva lnea protegido. */
$str .= " Y un carcter de nueva lnea al final.\n";
echo $str;
echo"<br>";
Autor: Ing. Oscar R. Espeche

98
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

/* Esta cadena terminar siendo '<p>Nmero: 9</p>' */
$num = 9;
$str = "<p>Nmero: $num</p>";
echo $str;
echo"<br>";
/* Esta ser '<p>Nmero: $num</p>' */
$num = 9;
$str = '<p>Nmero: $num</p>';
echo $str;
echo"<br>";
/* Obtener el primer carcter de una cadena */
$str = 'Esto es una prueba.';
$first = $str[0];
echo $str;
echo "este es el primer caracter: $first";
echo"<br>";
/* Obtener el ltimo carcter de una cadena. */
$str = 'Esto es an una prueba';
$last = $str[strlen($str)-1];
echo $str;
echo "este es el ltimo caracter: $last";
?>



Funciones de manejo de cadenas
Dado que en el lenguaje PHP el tratamiento de cadenas es muy importante, existen bastantes
funciones para el manejo de cadenas, a continuacin explicaremos algunas de las ms usadas.
strlen(cadena). Nos devuelve el nmero de carcteres de una cadena.
split(separador,cadena). Divide una cadena en varias usando un carcter
separador.
sprintf(cadena de formato, var1, var2...). Formatea una cadena de texto al igual
que printf pero el resultado es devuelto como una cadena.
substr(cadena, inicio, longitud). Devuelve una subcadena de otra, empezando
por inicio y de longitud longitud.
chop(cadena). Elimina los saltos de lnea y los espacios finales de una cadena.
strpos(cadena1, cadena2). Busca la cadena2 dentro de cadena1 indicndonos la
posicin en la que se encuentra.
str_replace(cadena1, cadena2, texto). Reemplaza la cadena1 por la cadena2 en
el texto.
Veamos los siguientes ejemplos:

<html>
<head>
<title>Ejemplo de cadenas con PHP</title>
</head>
<body>
<?php
echo strlen("12345"),"<br>";

$palabras=split(" ","Esto es una prueba");
for($i=0;$palabras[$i];$i++)
Autor: Ing. Oscar R. Espeche

99
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

echo $palabras[$i]."<br>";

$resultado=sprintf("8x5 = %d <br>",8*5);
echo $resultado."<br>";

echo substr("Devuelve una subcadena de otra",9,3),"<br><br>";

if (chop("Cadena \n\n ") == "Cadena")
echo "Iguales<br><br>";

echo strpos("Busca la palabra dentro de la frase", "palabra"),"<br><br>";

echo str_replace("verde","rojo","Un pez de color verde, como verde es la
hierba."),"<br>";

?>
</body>
</html>

Conversin de cadenas
Cuando una cadena se evala como un valor numrico, el valor resultante y el tipo se
determinan como sigue.

La cadena se evaluar como un doble si contiene cualquiera de los caracteres '.', 'e', o
'E'. En caso contrario, se evaluar como un entero.

El valor viene dado por la porcin inicial de la cadena. Si la cadena comienza con datos
de valor numrico, este ser el valor usado. En caso contrario, el valor ser 0 (cero). Los
datos numricos vlidos son un signo opcional, seguido por uno o ms dgitos (que
opcionalmente contengan un punto decimal), seguidos por un exponente opcional. El
exponente es una 'e' o una 'E' seguidos por uno o ms dgitos.

Cuando la primera expresin es una cadena, el tipo de la variable depender de la
segunda expresin.

ej15.php
<?
$algo = 1 + "10.5"; // $algo es doble (11.5)
echo '1) $algo='.$algo. ", el tipo es " . gettype( $algo ) . "<br>";

$algo = 1 + "-1.3e3"; // $algo es doble (-1299)
echo '2)$algo='.$algo. ", el tipo es " . gettype( $algo ) . "<br>";

$algo = 1 + "juan-1.3e3"; // $algo es entero (1)
echo '3)$algo='.$algo. ", el tipo es " . gettype( $algo ) . "<br>";

$algo = 1 + "juan3"; // $algo es entero (1)
echo '4)$algo='.$algo. ", el tipo es " . gettype( $algo ) . "<br>";

$algo = 1 + "10 Cerditos"; // $algo es entero (11)
echo '5)$algo='.$algo. ", el tipo es " . gettype( $algo ) . "<br>";

$algo = "10.0 cerdos " + 1; // $algo es entero (11)
echo '6)$algo='.$algo. ", el tipo es " . gettype( $algo ) . "<br>";
Autor: Ing. Oscar R. Espeche

100
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP


$algo = "10 cerdos " + 1.0; // $algo es double (11)
echo '7)$algo='.$algo. ", el tipo es " . gettype( $algo ) . "<br>";
?>


La salida en el navegador ser:
1) $algo=11.5, el tipo es double
2)$algo=-1299, el tipo es double
3)$algo=1, el tipo es integer
4)$algo=1, el tipo es integer
5)$algo=11, el tipo es integer
6)$algo=11, el tipo es double
7)$algo=11, el tipo es double
Autor: Ing. Oscar R. Espeche

101
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

Resumen de funciones con cadenas

AddCSlashes(PHP 4 >= 4.0b4)

Marca una cadena con barras al estilo del C

string addcslashes (string cad, string listcar)

Devuelve una cadena con barras invertidas antes de los caracteres listados en el
parmetro listcar. Tambin marca \n, \r etc. Al estilo del C, los caracteres con cdigo
ASCII inferior a 32 y superior a 126 son convertidos a representacin octal. Tenga
cuidado cuando marque caracteres alfanumricos. Puede especificar un rango en listcar
como el "\0..\37", que marcara todos los caracteres con cdigo ASCII entre 0 y 37.

Ejemplo de Addcslashes()

ej16.php
<?
$a = ' xx@yy,nombre="juan" ';
$b = addcslashes ($a, ' @" ');
echo $b;
?>

La salida ser:

xx\@yy,nombre=\"juan\"

Nota: Aadida en PHP4b3-dev.

Vea tambin stripcslashes(), stripslashes(), htmlspecialchars(),
htmlspecialchars(), y quotemeta().

AddSlashes (PHP 3, PHP 4 )

Marca una cadena con barras

string addslashes (string cad)

Devuelve una cadena con barras invertidas frente a los caracteres que necesitan
marcarse en consultas de bases de datos, etc. Estos son: la comilla simple (), comilla
doble ("), barra invertida (\) y NULL (el byte nulo).

ej17.php
<?
$a = 'xx@yy,nombre="juan"';
$b = addslashes ($a);
echo $b;
?>

La salida ser:

xx@yy,nombre=\"juan\"


Vea tambin stripslashes(), htmlspecialchars(), y quotemeta().

Chop(PHP 3, PHP 4 )
Autor: Ing. Oscar R. Espeche

102
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP


Elimina espacios sobrantes al final

string chop (string cad)

Devuelve la cadena argumento sin los espacios sobrantes, incluyendo los saltos de lnea.

Ejemplo de Chop()

ej18.php
<?
$linea = " hola como te va ";
$recortada = chop ($linea);
if($recortada == " hola como te va")
echo "no tiene espacios al final";
else
echo " si tiene espacios al final";
?>



Podemos observar como cambia la salida si incorporamos espacios al final de la cadena
en la expresin del if.

Vea tambin trim().

Chr(PHP 3, PHP 4 )

Devuelve un caracter especfico

string chr (int ascii)

Devuelve una cadena de un caracter que contiene el caracter especificado por ascii.

Ejemplo de Chr()

ej19.php
<?
$cad = "hola";
$cad .= chr (27); /* aade un caracter de escape al final de $cad */
echo $cad;
echo "<br>";
/* A veces esto es ms til */
$cad = sprintf ("hola%c", 27);
echo $cad;
?>

Esta funcin complementa a ord(). Vea tambin sprintf() con una cadena de formato
%c.

count_chars(PHP 4 >= 4.0b4)

Devuelve informacin sobre los caracteres usados en una cadena

mixto count_chars (string cadena [, modo])

Autor: Ing. Oscar R. Espeche

103
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

Cuenta el nmero de apariciones de cada valor de byte (0..255) en cadena y lo devuelve
de varias maneras. El parmetro opcional modo vale por defecto 0. Dependiendo de
modo, count_chars() puede devolver:

0. una matriz con el valor del byte como clave y la frecuencia de cada uno como valor.
1. como el 0, pero listando nicamente los valores de byte con frecuencia superior a
cero.
2. como el 0, pero listando nicamente los valores de byte con frecuencia igual a 0.
3. se devuelve una cadena que contiene todos los valores de byte utilizados.

ej20.php
<?
$datos = "hola como te va";
$nueva = count_chars($datos,1);
print_r( $nueva) ;
?>


Nota: Esta funcin se aadi en el PHP 4.0.

crc32 (PHP 4 >= 4.0.1)

Calcula el polinomio crc32 de una cadena

int crc32 (string cad)

Genera el polinomio de comprobacin de reduncancia cclica de 32 bits de cad. Se suele
utilizar para validad la integridad de los datos transmitidos.

Vea tambin: md5()

crypt (PHP 3, PHP 4 )

Encripta una cadena mediante DES

string crypt (string cad [, string semilla])

crypt() encriptar una cadena utilizando el mtodo estndar de encriptacin del Unix
DES. Los argumentos son una cadena a encriptar y una cadena semilla de 2 caracteres
en la que basar la encriptacin.

Si el argumento de semilla no se proporciona, ser generado aleatoriamente por el PHP.

La funcin estndar de encriptacin crypt() contiene la semilla como los dos primeros
caracteres de la salida.

ej21.php
<?
$contrasena= "estaesmicontrasea";
$pass = crypt($contrasena,"ab");
echo( $pass) ;
?>

Vea tambin: md5().

echo(unknown)

Autor: Ing. Oscar R. Espeche

104
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

Da salida a una o ms cadenas

echo (string arg1, string [argn]...)

Da salida a todos sus parmetros.

echo() no es realmente una funcin (es una sentencia del lenguaje) de modo que no se
requiere el uso de los parntesis.

Ejemplo de Echo()

ej22.php
<?
echo "Hola Mundo","<br>";
echo "Esto se extiende por varias lneas. Los saltos de lnea tambin se envan<br>";
echo "Esto se extiende\npor varias lneas. Los saltos de lnea\ntambin se
envan"."<br>";
echo (" fin<br>");
?>


Vea tambin: print(), printf(), y flush().

explode (PHP 3, PHP 4 )

Divide una cadena por otra

array explode (string separador, string cadena [, int limite])

Devuelve una matriz de cadenas, cada una de las cuales es una subcadena de cadena
formada mediante su divisin en las fronteras marcadas por la cadena separador. Si se
especifica limite, la matriz devuelta contendr un mximo de limite elementos con el
ltimo conteniendo el resto de la cadena.

Ejemplo de Explode()

ej23.php
<?
$pizza = "trozo1 trozo2 trozo3 trozo4 trozo5 trozo6";
$trozos = explode (" ", $pizza,3);
print_r($trozos);
?>


Vea tambin split() e implode().

get_html_translation_table (PHP 4 >= 4.0b4)

Devuelve la tabla de traduccin utilizada por htmlspecialchars() y htmlentities()

string get_html_translation_table (int tabla)

get_html_translation_table() devolver la tabla de traduccin que se usa
internamente para htmlspecialchars() y htmlentities(). Hay dos nuevas definiciones
(HTML_ENTITIES, HTML_SPECIALCHARS) que le permiten especificar la tabla deseada.


Autor: Ing. Oscar R. Espeche

105
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

Ejemplo de Tabla de Traduccin

ej24.php
<?
$trad = get_html_translation_table (HTML_ENTITIES);
$cad = "Hola <Dr> Perez";
echo $cad;
echo "<br>";
$codif = strtr ($cad, $trad);
echo $codif;
echo "<br>";
//otra forma
echo(strtr($cad,get_html_translation_table (HTML_ENTITIES)));
?>


Lo interesante es usar la funcin array_flip() para cambiar la direccin de la
traduccin.

ej25.php
<?
$trad = get_html_translation_table (HTML_ENTITIES);
$cad = "Hola <Dr> Perez";
echo $cad;
echo "<br>";
$codif = strtr ($cad, $trad);
echo $codif;
echo "<br>";
//otra forma
echo(strtr($cad,get_html_translation_table (HTML_ENTITIES)));
echo "<br>";
$trad = array_flip ($trad);
$original = strtr ($cad, $trad);
echo $original;
?>


Si viramos el codigo fuente en el navegador tendramos lo siguiente:

Hola <Dr> Perez<br>Hola &lt;Dr&gt; Perez<br>Hola &lt;Dr&gt; Perez<br>Hola <Dr>
Perez

Nota: Esta funcin fue aadida en PHP 4.0.

Vea tambin: htmlspecialchars(), htmlentities(), strtr(), y array_flip().

get_meta_tags(PHP 3>= 3.0.4, PHP 4 )

Extrae todas las etiquetas meta de un archivo y retorna un array (matriz). La bsqueda
se detiene en </head>.

array get_meta_tags (string nombrearchivo [, int use_ruta_include])

Abre el nombrearchivo y lo trocea lnea a lnea buscando etiquetas <meta> de la forma:

<meta name = nombre_clave content = valor>

Autor: Ing. Oscar R. Espeche

106
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP


Ejemplo de Etiquetas Meta

<meta name="autor" content="nombre">
<meta name="etiquetas" content="documentacin de php3">
</head> <!- el proceso se detiene aqu ->

El valor de la propiedad name queda como clave y el valor de la propiedad content
queda como el valor de la matriz devuelta, de modo que pueda usar fcilmente
funciones estndar de matrices para recorrerla o para acceder a valores individuales. Los
caracteres especiales en el valor de name son sustitudos por _ y el resto es convertido
a minsculas.
Fijando use_ruta_include a 1 har que el PHP intente abrir el archivo a travs de la ruta
de inclusin.

htmlentities (PHP 3, PHP 4 )

Convierte todos los caracteres aplicables a entidades HTML

string htmlentities (string cadena)

Esta funcin es del todo idntica a htmlspecialchars(), excepto que traduce todos los
caracteres que tienen equivalente como entidad HTML.

Actualmente se utiliza el juego de caracteres ISO-8859-1.

entidades.htm
24.2.1 Lista de caracteres
<br>

ENTITY nbsp ----> "&#160;" : espacio de no separacin, U+00A0 ISOnum <br>
ENTITY iexcl ----> "&#161;" : signo de exclamacin invertido, U+00A1 ISOnum<br>
ENTITY cent ----> "&#162;" : signo de centavo, U+00A2 ISOnum <br>
ENTITY pound ----> "&#163;" : signo de libra, U+00A3 ISOnum <br>
ENTITY curren ----> "&#164;" : signo de moneda, U+00A4 ISOnum <br>
ENTITY yen ----> "&#165;" : signo de yen, U+00A5 ISOnum <br>
ENTITY brvbar ----> "&#166;" : barra partida = barra vertical partida,
U+00A6 ISOnum <br>
ENTITY sect ----> "&#167;" : signo de seccin, U+00A7 ISOnum <br>
ENTITY uml ----> "&#168;" : diresis, U+00A8 ISOdia <br>
ENTITY copy ----> "&#169;" : signo de copyright, U+00A9 ISOnum <br>
ENTITY ordf ----> "&#170;" : indicador ordinal femenino, U+00AA ISOnum <br>
ENTITY laquo ----> "&#171;" : comillas dobles angulares abiertas,
U+00AB ISOnum <br>
ENTITY not ----> "&#172;" : signo de negacin, U+00AC ISOnum <br>
ENTITY shy ----> "&#173;" : guin blando = guin discrecional,
U+00AD ISOnum <br>
ENTITY reg ----> "&#174;" : signo de registrado = signo de marca comercial
registrada, U+00AE ISOnum <br>
ENTITY macr ----> "&#175;" : macron (marca larga) = superguin = guin alto,
U+00AF ISOdia <br>
ENTITY deg ----> "&#176;" : signo de grados, U+00B0 ISOnum <br>
ENTITY plusmn ----> "&#177;" : signo ms-menos = signo ms-o-menos,
U+00B1 ISOnum <br>
ENTITY sup2 ----> "&#178;" : dos superndice = al cuadrado,
U+00B2 ISOnum <br>
ENTITY sup3 ----> "&#179;" : tres superndice = al cubo,
Autor: Ing. Oscar R. Espeche

107
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

U+00B3 ISOnum <br>
ENTITY acute ----> "&#180;" : acento agudo, U+00B4 ISOdia <br>
ENTITY micro ----> "&#181;" : signo de micras, U+00B5 ISOnum <br>
ENTITY para ----> "&#182;" : signo de prrafo, U+00B6 ISOnum <br>
ENTITY middot ----> "&#183;" : punto medio = coma georgiana, U+00B7 ISOnum <br>
ENTITY cedil ----> "&#184;" : cedilla, U+00B8 ISOdia <br>
ENTITY sup1 ----> "&#185;" : uno superndice, U+00B9 ISOnum <br>
ENTITY ordm ----> "&#186;" : indicador ordinal masculino,
U+00BA ISOnum <br>
ENTITY raquo ----> "&#187;" : comillas dobles angulares cerradas,
U+00BB ISOnum <br>
ENTITY frac14 ----> "&#188;" : fraccin comn un cuarto
= fraccin de un cuarto, U+00BC ISOnum <br>
ENTITY frac12 ----> "&#189;" : fraccin comn un medio
= fraccin de un medio, U+00BD ISOnum <br>
ENTITY frac34 ----> "&#190;" : fraccin comn tres cuartos
= fraccin de tres cuartos, U+00BE ISOnum <br>
ENTITY iquest ----> "&#191;" : signo de interrogacin invertido,
U+00BF ISOnum <br>
ENTITY Agrave ----> "&#192;" : letra mayscula latina A con acento grave,
U+00C0 ISOlat1 <br>
ENTITY Aacute ----> "&#193;" : letra mayscula latina A con acento agudo,
U+00C1 ISOlat1 <br>
ENTITY Acirc ----> "&#194;" : letra mayscula latina A con acento circunflejo,
U+00C2 ISOlat1 <br>
ENTITY Atilde ----> "&#195;" : letra mayscula latina A con tilde,
U+00C3 ISOlat1 <br>
ENTITY Auml ----> "&#196;" : letra mayscula latina A con diresis,
U+00C4 ISOlat1 <br>
ENTITY Aring ----> "&#197;" : letra mayscula latina A con anillo,
U+00C5 ISOlat1 <br>
ENTITY AElig ----> "&#198;" : letra mayscula latina AE,
= ligadura mayscula latina AE,
U+00C6 ISOlat1 <br>
ENTITY Ccedil ----> "&#199;" : letra mayscula latina C con cedilla,
U+00C7 ISOlat1 <br>
ENTITY Egrave ----> "&#200;" : letra mayscula latina E con acento grave,
U+00C8 ISOlat1 <br>
ENTITY Eacute ----> "&#201;" : letra mayscula latina E con acento agudo,
U+00C9 ISOlat1 <br>
ENTITY Ecirc ----> "&#202;" : letra mayscula latina E con acento circunflejo,
U+00CA ISOlat1 <br>
ENTITY Euml ----> "&#203;" : letra mayscula latina E con diresis,
U+00CB ISOlat1 <br>
ENTITY Igrave ----> "&#204;" : letra mayscula latina I con acento grave,
U+00CC ISOlat1 <br>
ENTITY Iacute ----> "&#205;" : letra mayscula latina I con acento agudo,
U+00CD ISOlat1 <br>
ENTITY Icirc ----> "&#206;" : letra mayscula latina I con acento circunflejo,
U+00CE ISOlat1 <br>
ENTITY Iuml ----> "&#207;" : letra mayscula latina I con diresis,
U+00CF ISOlat1 <br>
ENTITY ETH ----> "&#208;" : letra mayscula latina ETH, U+00D0 ISOlat1 <br>
ENTITY Ntilde ----> "&#209;" : letra mayscula latina N con tilde
= ee mayscula, U+00D1 ISOlat1 <br>
ENTITY Ograve ----> "&#210;" : letra mayscula latina O con acento grave,
U+00D2 ISOlat1 <br>
Autor: Ing. Oscar R. Espeche

108
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

ENTITY Oacute ----> "&#211;" : letra mayscula latina O con acento agudo,
U+00D3 ISOlat1 <br>
ENTITY Ocirc ----> "&#212;" : letra mayscula latina O con acento circunflejo,
U+00D4 ISOlat1 <br>
ENTITY Otilde ----> "&#213;" : letra mayscula latina O con tilde,
U+00D5 ISOlat1 <br>
ENTITY Ouml ----> "&#214;" : letra mayscula latina O con diresis,
U+00D6 ISOlat1 <br>
ENTITY times ----> "&#215;" : signo de multiplicacin, U+00D7 ISOnum <br>
ENTITY Oslash ----> "&#216;" : letra mayscula latina O tachada,
letra mayscula latina O con barra inclinada,
U+00D8 ISOlat1 <br>
ENTITY Ugrave ----> "&#217;" : letra mayscula latina U con acento grave,
U+00D9 ISOlat1 <br>
ENTITY Uacute ----> "&#218;" : letra mayscula latina U con acento agundo,
U+00DA ISOlat1 <br>
ENTITY Ucirc ----> "&#219;" : letra mayscula latina U con acento circunflejo,
U+00DB ISOlat1 <br>
ENTITY Uuml ----> "&#220;" : letra mayscula latina U con diresis,
U+00DC ISOlat1 <br>
ENTITY Yacute ----> "&#221;" : letra mayscula latina Y con acento agudo,
U+00DD ISOlat1 <br>
ENTITY THORN ----> "&#222;" : letra mayscula latina THORN,
U+00DE ISOlat1 <br>
ENTITY szlig ----> "&#223;" : letra minscula latina s muda = ess-zed,
U+00DF ISOlat1 <br>
ENTITY agrave ----> "&#224;" : letra minscula latina a con acento grave,
U+00E0 ISOlat1 <br>
ENTITY aacute ----> "&#225;" : letra minscula latina a con acento agudo,
U+00E1 ISOlat1 <br>
ENTITY acirc ----> "&#226;" : letra minscula latina a con acento circunflejo,
U+00E2 ISOlat1 <br>
ENTITY atilde ----> "&#227;" : letra minscula latina a con tilde,
U+00E3 ISOlat1 <br>
ENTITY auml ----> "&#228;" : letra minscula latina a con diresis,
U+00E4 ISOlat1 <br>
ENTITY aring ----> "&#229;" : letra minscula latina a con anillo,
U+00E5 ISOlat1 <br>
ENTITY aelig ----> "&#230;" : letra minscula latina ae,
= ligadura minscula latina ae, U+00E6 ISOlat1 <br>
ENTITY ccedil ----> "&#231;" : letra minscula latina c con cedilla,
U+00E7 ISOlat1 <br>
ENTITY egrave ----> "&#232;" : letra minscula latina e con acento grave,
U+00E8 ISOlat1 <br>
ENTITY eacute ----> "&#233;" : letra minscula latina e con acento agudo,
U+00E9 ISOlat1 <br>
ENTITY ecirc ----> "&#234;" : letra minscula latina e con acento circunflejo,
U+00EA ISOlat1 <br>
ENTITY euml ----> "&#235;" : letra minscula latina e con diresis,
U+00EB ISOlat1 <br>
ENTITY igrave ----> "&#236;" : letra minscula latina i con acento grave,
U+00EC ISOlat1 <br>
ENTITY iacute ----> "&#237;" : letra minscula latina i con acento agudo,
U+00ED ISOlat1 <br>
ENTITY icirc ----> "&#238;" : letra minscula latina i con acento circunflejo,
U+00EE ISOlat1 <br>
ENTITY iuml ----> "&#239;" : letra minscula latina i con diresis,
Autor: Ing. Oscar R. Espeche

109
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

U+00EF ISOlat1 <br>
ENTITY eth ----> "&#240;" : letra minscula latina eth, U+00F0 ISOlat1 <br>
ENTITY ntilde ----> "&#241;" : letra minscula latina n con tilde
= ee minscula, U+00F1 ISOlat1 <br>
ENTITY ograve ----> "&#242;" : letra minscula latina o con acento grave,
U+00F2 ISOlat1 <br>
ENTITY oacute ----> "&#243;" : letra minscula latina o con acento agudo,
U+00F3 ISOlat1 <br>
ENTITY ocirc ----> "&#244;" : letra minscula latina o con acento circunflejo,
U+00F4 ISOlat1 <br>
ENTITY otilde ----> "&#245;" : letra minscula latina o con tilde,
U+00F5 ISOlat1 <br>
ENTITY ouml ----> "&#246;" : letra minscula latina o con diresis,
U+00F6 ISOlat1 <br>
ENTITY divide ----> "&#247;" : signo de divisin, U+00F7 ISOnum <br>
ENTITY oslash ----> "&#248;" : letra minscula latina o tachada,
= letra minscula latina o con barra inclinada,
U+00F8 ISOlat1 <br>
ENTITY ugrave ----> "&#249;" : letra minscula latina u con acento grave,
U+00F9 ISOlat1 <br>
ENTITY uacute ----> "&#250;" : letra minscula latina u con acento agudo,
U+00FA ISOlat1 <br>
ENTITY ucirc ----> "&#251;" : letra minscula latina u con acento circunflejo,
U+00FB ISOlat1 <br>
ENTITY uuml ----> "&#252;" : letra minscula latina u con diresis,
U+00FC ISOlat1 <br>
ENTITY yacute ----> "&#253;" : letra minscula latina y con acento agudo,
U+00FD ISOlat1 <br>
ENTITY thorn ----> "&#254;" : letra minscula latina thorn,
U+00FE ISOlat1 <br>
ENTITY yuml ----> "&#255;" : letra minscula latina y con diresis,
U+00FF ISOlat1 <br>

Si vermos el archivo entidades.htm con el navegador, nos muestra la representacin grfica de
las entidades HTML.

Vea tambin htmlspecialchars() y nl2br().

htmlspecialchars (PHP 3, PHP 4 )

Convierte caracteres especiales a entidades HTML

string htmlspecialchars (string cadena)

Ciertos caracteres tienen significados especiales en HTML, y deben ser representados por
entidades HTML si se desea preservar su significado. Esta funcin devuelve una cadena
con dichas conversiones realizadas.

Esta funcin es til para evitar que el texo entrado en formularios por el usuario
contenga marcas HTML, como ocurre en aplicaciones de foros o libros de visita.

Actualmente, las traducciones hechas son:

& (ampersand) se convierte en &amp;
" (doble comilla) se convierte en &quot;
< (menor que) se convierte en &lt;
> (mayor que) se convierte en &gt;
Autor: Ing. Oscar R. Espeche

110
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP


Ntese que esta funcin no traduce nada ms que lo mostrado ms arriba. Para una
traduccin de entidades completa, vea htmlentities().
Vea tambin htmlentities() y nl2br().

implode (PHP 3, PHP 4 )

Unir elementos de una matriz mediante una cadena

string implode (string cola, array piezas)

Devuelve una cadena que contiene una representacin de todos los elementos de la
matriz en el mismo orden, pero con la cadena cola en medio de los mismos.

Ejemplo de Implode()

ej26.php
<?
$matriz = array("uno", "dos" ,"tres", "cuatro" ,"cinco");
print_r($matriz);
echo "<br>";
$separada_dospuntos = implode (":", $matriz);
print_r($separada_dospuntos);
?>

Vea tambin explode(), join(), y split().

join (PHP 3, PHP 4 )

Une elementos de una matriz formando una cadena

string join (string cola, array piezas)

join() es un alias para implode(), y es idntica en todo.

Vea tambin explode(), implode(), y split().

ltrim (PHP 3, PHP 4 )

Elimina el espacio en blanco del principio de una cadena

string ltrim (string cad)

Esta funcin elimina el espacio en blanco del principio de una cadena y devuelve la
cadena resultante. Los caracteres de espacio que elimina realmente son: "\n", "\r", "\t",
"\v", "\0", y el espacio en s.

Vea tambin chop() y trim().

md5(PHP 3, PHP 4 )

Calcula el hash md5 de una cadena

string md5 (string cad)

Calcula el hash (extracto) MD5 de cad usando el Algoritmo de Resumen de Mensajes
MD5 de RSA Data Security, Inc.
Autor: Ing. Oscar R. Espeche

111
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP


ej27.php
<?
$clave = "clavesecreta";
echo $clave;
echo "<br>";
$pass = md5($clave);
echo $pass;
?>


(http://www.faqs.org/rfcs/rfc1321.html).

Vea tambin: crc32()

nl2br (PHP 3, PHP 4 )

Convierte nuevas lneas a saltos de lnea HTML

string nl2br (string cadena)

Devuelve la cadena con <BR> insertados antes de cada nueva lnea.

ej28.php
<?
$cad = "cadena \n otracadena";
echo $cad;
echo "<br>";
$cadhtml = nl2br($cad);
echo "<br>";
echo $cadhtml;
?>

Vea tambin htmlspecialchars(), htmlentities() y wordwrap().

Ord(PHP 3, PHP 4 )

Devuelve el valor ASCII de un carcter

int ord (string cadena)

Devuelve el valor ASCII del primer caracter de cadena. Esta funcin complementa a
chr().

Ejemplo de ord()

ej29.php
<?
$cad = "\n una cadena";
if (ord ($cad) == 10) {
echo "El primer caracter de \$cad es un salto de lnea.\n";
}
echo "<br>";
echo $cad;
?>


Autor: Ing. Oscar R. Espeche

112
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

Vea tambin chr().

parse_str (PHP 3, PHP 4 )

Divide la cadena en variables

void parse_str (string cad)

Divide cad como si fuera la cadena de consulta enviada por un URL y crea las variables
en el mbito actual.

Usando parse_str()

ej30.php
<?
$cad = "primero=valor&segundo[]=esto+funciona&segundo[]=otro";
parse_str($cad);
echo $primero;
/* escribe "valor" */
echo "<br>";
echo $segundo[0];
/* escribe "esto funciona" */
echo "<br>";
echo $segundo[1];
/* escribe "otro" */
?>


print ()

Emite una cadena

print (string arg)

Emite arg.

Vea tambin: echo(), printf(), y flush().

printf (PHP 3, PHP 4 )

Emite una cadena con formato

int printf (string formato [, mixto args...])

Produce una salida segn el formato, que es descrito en la documentacin para
sprintf().

Vea tambin: print(), sprintf(), sscanf(), fscanf(), y flush().

rtrim (PHP 3, PHP 4 )

Elimina espacios en blanco al final de la cadena.

string rtrim (string cad)

Devuelve la cadena argumento sin espacios en blanco ni saltos de lnea al final. Es un
alias para chop().
Autor: Ing. Oscar R. Espeche

113
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP


Ejemplo de rtrim()

$recortada = rtrim ($linea);

Vea tambin trim(), ltrim().

sscanf (PHP 4 >= 4.0.1)

Trocea la entrada desde una cadena segn un formato dado

array sscanf (string cad, string formato [, string var1...]).

La funcin sscanf() es la funcin inversa de sprintf(). sscanf() lee del parmetro de
cadena cad y lo interpreta segn el formato especificado. Los valores devueltos se harn
en una matriz.

Ejemplo de sscanf()

ej31.php
<?
// obteniendo el nmero de serie
$numserie = sscanf("SN/2350001","SN/%d");
// y la fecha de fabricacin
$fecha = "01 Enero 2004";
list($dia, $mes, $anno) = sscanf($fecha,"%d %s %d");
echo "El objeto $numserie[0] fue fabricado el: $dia-".substr($mes,0,3)."-$anno\n";
?>


Si se pasan los parmetros opcionales, la funcin devolver el nmero de valores
asignados. Los parmetros opcionales deben ser pasados por referencia.

Ejemplo de sscanf() - usando parmetros opcionales

ej32.php
<?
// obtener autor y generar la ficha DocBook (xml)
$autor = "24\tLewis Carroll";
$n = sscanf($autor,"%d\t%s %s", &$id, &$nombre, &$apell);
echo "<autor id=$id>
<firstname>$nombre</firstname>
<surname>$apell</surname>
</author>\n";
?>


Vea tambin: fscanf(), printf(), y sprintf().

setlocale (PHP 3, PHP 4 )

Fija la informacin de localidad

string setlocale (string categoria, string localidad)

categoria es una cadena que especifica la categora de las funciones afectadas por el
ajuste de localidad:
Autor: Ing. Oscar R. Espeche

114
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP


LC_ALL para todas las funciones
LC_COLLATE para la comparacin de cadenas - an no includa en el PHP
LC_CTYPE para la conversin y clasificacin de caracteres, como por ejemplo
strtoupper()
LC_MONETARY para localeconv() - an no includa en el PHP
LC_NUMERIC para el separador decimal
LC_TIME para el formato de fecha y hora con strftime()

ej33.php
<?
//convierte la fecha al formato espaol
setlocale (LC_TIME,"spanish");
$fecha = str_replace("De","de",ucwords(strftime("%A, %d de %B de %Y")));
print ($fecha);// imprime la fecha
?>

Si localidad es la cadena vaca "", los nombres de localidad se fijarn a partir de las
variables de entorno con los mismos nombres de las categoras anteriores, o desde
"LANG".
Si la localidad es cero o "0", el ajuste de localidad no se ve afectado y slo se devuelve
el ajuste actual.

setlocale devuelve la nueva localidad, o false si la funcionalidad de localizacin no est
disponible en la plataforma, la localidad especificada no existe o el nombre de categora
no es vlido. Un nombre de categora no vlido tambin produce un mensaje de aviso.


sprintf (PHP 3, PHP 4 )

Devuelve una cadena con formato

Devuelve una cadena producida de acuerdo a la cadena de formato.

La cadena de formato est compuesta por cero o ms directivas: caracteres ordinarios
(excepto %) que son copiados directamente al resultado, y especificaciones de
conversin, cada una de las cuales provoca la obtencin de su propio parmetro. Esto se
aplica tanto a sprintf() como a printf().

Cada especificacin de conversin consiste en uno de estos elementos, por orden:

1. Un especificador de relleno opcional que indica qu caracter se utilizar para rellenar
el resultado hasta el tamao de cadena correcto. Este puede ser un espacio o un 0
(caracter cero). El valor por defecto es rellenar con espacios. Un caracter de relleno
alternativo se puede especificar prefijndolo con una comilla simple (). Vea los ejemplos
ms abajo.

2. Un especificador de alineacin opcional que indica si el resultado debe ser alineado a
la izquierda o a la derecha. Por defecto se alinea a la derecha; un caracter - aqu lo
justificar a la izquierda.

3. Un nmero opcional, un especificador de ancho que dice el nmero de caracteres
(mnimo) en que debera resultar esta conversin.

Autor: Ing. Oscar R. Espeche

115
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

4. Un especificador de precisin opcional que indica cuntos dgitos decimales deben
mostrarse para los nmeros en coma flotante. Esta opcin no tienen efecto para otros
tipos que no sean double. (Otra funcin til para formatear nmeros es
number_format()).

5. Un especificador de tipo que indica el tipo a usar para tratar los datos de los
argumentos. Los tipos posibles son:

% - un caracter literal de porcentaje. No se precisa argumento.
b - el argumento es tratado como un entero y presentado como un nmero binario.
c - el argumento es tratado como un entero, y presentado como el caracter con dicho
valor ASCII.
d - el argumento es tratado como un entero y presentado como un nmero decimal.
f - el argumento es tratado como un doble y presentado como un nmero de coma
flotante.
o - el argumento es tratado como un entero, y presentado como un nmero octal.
s - el argumento es tratado como una cadena y es presentado como tal.
x - el argumento es tratado como un entero y presentado como un nmero hexadecimal
(con minsculas).
X - el argumento es tratado como un entero y presentado como un nmero hexadecimal
(con maysculas).

Vea tambin: printf(), sscanf(), fscanf(), y number_format().

Ejemplo de Sprintf(): enteros rellenos con ceros

ej34.php
<?
$anno= date("y");
$mes=date("m");
$dia=date("d");
$fechaiso = sprintf ("%04d %02d %02d", $anno, $mes, $dia);
print ($fechaiso);
?>


Ejemplo de Sprintf(): formateando monedas

ej35.php
<?
$peras = 68.75;
$papas = 54.35;
$total = $peras + $papas;
// echo $total mostrar "123.1";
echo $total;
echo "<br>";
$formateado = sprintf ("%08.4f", $total);
// echo $formateado mostrar "00000123.1000"
echo $formateado;
?>

strcasecmp(PHP 3>= 3.0.2, PHP 4 )

Comparacin de cadenas insensible a maysculas y minsculas y segura en modo
binario

int strcasecmp (string cad1, string cad2)
Autor: Ing. Oscar R. Espeche

116
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP


Devuelve < 0 si cad1 es menor que cad2; > 0 si cad1 es mayor que cad2, y 0 si son
iguales.

Ejemplo de strcasecmp()

ej36.php
<?
$var1 = "Hola";
$var2 = "hola";
if (strcasecmp ($var1, $var2)==0) {
echo '$var1 es igual a $var2 en una comparacin sin tener en cuenta'
.'maysculas o minsculas';
}
?>

Vea tambin ereg(), strcmp(), substr(), stristr(), y strstr().

strchr (PHP 3, PHP 4 )

Encuentra la primera aparicin de un carcter y devuelve verdadero , sino lo encuentra
devuelve falso.

string strchr (string pajar, string aguja)

Si encuentra el string aguja en el string pajar devuelve verdadero.

Esta funcin es un alias para strstr(), y es idntica en todo.

Ejemplo que muestra los archivos del directorio actual, que no tienen .en su nombre.

ej37.php
<?
$dir = opendir(".");
while($item = readdir($dir)){
if(strchr($item,".")) continue;
else
echo $item;
}
closedir($dir);
?>


strcmp(PHP 3, PHP 4 )

Comparacin de cadenas sensible a maysculas y minsculas.

int strcmp (string cad1, string cad2)

Devuelve < 0 si cad1 es menor que cad2; > 0 si cad1 es mayor que cad2, y 0 si son
iguales.

Ntese que esta comparacin es sensible a maysculas y minsculas.

Vea tambin ereg(), strcasecmp(), substr(), stristr(), strncmp(), y strstr().

strip_tags(PHP 3>= 3.0.8, PHP 4 >= 4.0b2)
Autor: Ing. Oscar R. Espeche

117
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP


Elimina marcas HTML y PHP de una cadena

string strip_tags (string cad [, string etiq_permitidas])

Esta funcin intenta eliminar todas las etiquetas HTML y PHP de la cadena dada. Causa
error por precaucin en caso de etiquetas incompletas o falsas. Utiliza la misma mquina
de estados para eliminar las etiquetas que la funcin fgetss().

Puede usar el parmetro opcional para especificar las etiquetas que no deben eliminarse.

Nota: etiq_permitidas fue aadido en PHP 3.0.13, PHP4B3.

stripcslashes (PHP 4 >= 4.0b4)

Desmarca la cadena marcada con addcslashes()

string stripcslashes (string cad)

Devuelve una cadena con las barras invertidas eliminadas. Reconoce las marcas tipo C
\n, \r ..., y la representacin octal y hexadecimal.

Vea tambin addcslashes().

stripslashes (PHP 3, PHP 4 )

Desmarca la cadena marcada con addslashes()

string stripslashes (string cad)

Devuelve una cadena con las barras invertidas eliminadas (\ se convierte en , etc.). Las
barras invertidas dobles se convierten en sencillas.

Vea tambin addslashes().

stristr (PHP 3>= 3.0.6, PHP 4 )

strstr() sin tener en cuenta maysculas o minsculas

string stristr (string pajar, string aguja)

Devuelve todo el pajar desde la primera aparicin de la aguja, siendo el pajar examinado
sin tener en cuenta maysculas o minsculas.

Si la aguja no se encuentra, devuelve false.

Si la aguja no es una cadena, es convertida a entero y usada como cdigo de un
carcter ASCII.

Vea tambin strchr(), strrchr(), substr(), y ereg().

strlen (PHP 3, PHP 4 )

Obtiene la longitud de la cadena

int strlen (string cad)

Autor: Ing. Oscar R. Espeche

118
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

Devuelve la longitud de la cadena.

strnatcmp (PHP 4 >= 4.0RC2)

Compara cadenas usando un algoritmo de "orden natural"

int strnatcmp (string cad1, string cad2)

Esta funcin implementa un algoritmo de comparacin que ordena las cadenas
alfanumricas como lo hara un ser humano, que es lo que se denomina "orden natural".
A continuacin se puede ver un ejemplo de la diferencia entre este algoritmo y los
algoritmos de ordenacin de cadenas habituales en los computadores (utilizados en
strcmp()):

ej38.php
<?
$matriz1 = $matriz2 = array ("img12.png","img10.png","img2.png","img1.png");
echo "Comparacin de cadenas estndar\n";
usort($matriz1,"strcmp");
print_r($matriz1);
echo "<br>";
echo "\nComparacin de cadenas en orden natural\n";
usort($matriz2,"strnatcmp");
print_r($matriz2);
?>

El cdigo anterior generar la siguiente salida:

Comparacin de cadenas estndar

Array
(
[0] => img1.png
[1] => img10.png
[2] => img12.png
[3] => img2.png
)

Comparacin de cadenas en orden natural

Array
(
[0] => img1.png
[1] => img2.png
[2] => img10.png
[3] => img12.png
)

De forma similar a otras funciones de comparacin de cadenas, esta devuelve < 0 si
cad1 es menor que cad2; > 0 si cad1 es mayor que cad2, y 0 si son iguales.
Ntese que esta comparacin es sensible a maysculas y minsculas.

Vea tambin ereg(), strcasecmp(), substr(), stristr(), strcmp(), strncmp(),
strnatcasecmp(), y strstr().

strnatcasecmp (PHP 4 >= 4.0RC2)

Autor: Ing. Oscar R. Espeche

119
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

Comparacin de cadenas insensible a maysculas y minsculas usando un algoritmo de
"orden natural"

int strnatcasecmp (string cad1, string cad2)

Esta funcin implementa un algoritmo de comparacin que ordena las cadenas
alfanumricas como lo hara un ser humano. El comportamiento de esta funcin es
similar a strnatcmp(), pero la comparacin no es sensible a maysculas y minsculas.
Para ms informacin, vea la pgina de Martin Pool sobre Comparacin de Cadenas en
Orden Natural (http://www.linuxcare.com.au/projects/natsort/).

De forma similar a otras funciones de comparacin de cadenas, esta devuelve < 0 si
cad1 es menor que cad2; > 0 si cad1 es mayor que cad2, y 0 si son iguales.

Vea tambin ereg(), strcasecmp(), substr(), stristr(), strcmp(), strncmp(),
strnatcmp(), y strstr().

strncmp(PHP 4 >= 4.0b4)

Comparacin de los n primeros caracteres de cadenas, con seguridad binaria

int strncmp (string cad1, string cad2, int largo)

Esta funcin es similar a strcmp(), con la diferencia que se puede especificar el (lmite
superior del) nmero de caractares (largo) de cada cadena que se usarn en la
comparacin. Si alguna de las cadenas es menor que el largo, se usar su longitud para
la comparacin.

Devuelve < 0 si cad1 es menor que cad2; > 0 si cad1 es mayor que cad2, y 0 si son
iguales.
Ntese que esta comparacin es sensible a maysculas y minsculas.

Vea tambin ereg(), strcasecmp(), substr(), stristr(), strcmp(), y strstr().

str_pad (PHP 4 >= 4.0.1)

Rellena una cadena con otra hasta una longitud dada

string str_pad (string entrada, int tamao_relleno [, string cad_relleno [, int
tipo_relleno]])

Esta funcin rellena la cadena entrada por la derecha, la izquierda o por ambos lados
hasta el largo indicado. Si no se especifica el argumento opcional cad_relleno, entrada
es rellenada con espacios. En caso contrario, ser rellenada con los caracteres de
cad_relleno hasta el lmite.

El argumento opcional tipo_relleno puede valer STR_PAD_RIGHT, STR_PAD_LEFT, o
STR_PAD_BOTH. Si no se especifica, se asume que vale STR_PAD_RIGHT.

Si el valor de tamao_relleno es negativo o menor que la longitud de la cadena de
entrada, no se produce rellenado alguno.

Ejemplo de str_pad()

ej39.php
<?
$entrada = "PHP";
Autor: Ing. Oscar R. Espeche

120
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

print str_pad($entrada, 10); // produce "PHP ";
echo "<br>";
print str_pad($entrada, 10, "-=", STR_PAD_LEFT); // produce "-=-=-=-PHP";
echo "<br>";
print str_pad($entrada, 10, "_", STR_PAD_BOTH); // produce "___PHP ____
?>

strpos (PHP 3, PHP 4 )

Encuentra la posicin de la primera aparicin de una cadena

int strpos (string pajar, string aguja [, int desplazamiento])

Devuelve la posicin numrica de la primera aparicin de la aguja en la cadena pajar. A
diferencia de strrpos(), esta funcin puede tomar una cadena completa como aguja y
se utilizar en su totalidad.

Si la aguja no es hayada, devuelve false.

Nota: Es fcil confundir los valores de retorno para "caracter encontrado en la posicin
0"y "caracter no encontrado".

Aqu se indica cmo detectar la diferencia:

ej40.php
<?
$micadena = "bamc";
// en PHP 4.0b3 y posteriores:
$pos = strpos ($micadena, "b");
if ($pos === false) { // nota: tres signos igual
echo "no encontr 'b' incluido en $micadena";
}
?>

Si la aguja no es una cadena, se convierte a entero y se aplica como el valor ordinal de
un caracter.

El parmetro opcional desplazamiento le permite especificar a partir de qu caracter del
pajar comenzar a buscar.

La posicin devuelta es an relativa al comienzo de pajar.

Vea tambin strrpos(), strrchr(), substr(), stristr(), y strstr().

strrchr (PHP 3, PHP 4 )

Encuentra la ltima aparicin de un caracter en una cadena

string strrchr (string pajar, string aguja)

Esta funcin devuelve la porcin del pajar que comienza en la ltima aparicin de la
aguja y contina hasta el final del pajar.

Devuelve false si la aguja no es hallada.

Si la aguja contiene ms de un caracter, slo se usar el primero.
Autor: Ing. Oscar R. Espeche

121
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

Si la aguja no es una cadena, se convierte a entero y se aplica como el valor ordinal de
un caracter.

Ejemplo de Strrchr()

ej41.php
<?
$PATH="/dir1/dir2/dir3:/dir4/dir5/dir6:/dir7/dir8";
// obtener el ltimo directorio de $PATH
$pat=strrchr($PATH,":");
echo $pat;
echo "<br>";
$dir = substr (strrchr ($PATH, ":"), 1);
echo $dir;
echo "<br>";
// obtener todo tras el ltimo salto de lnea
$texto = "Line 1\nLine 2\nLine 3";
$apell = substr (strrchr ($texto, 10), 1 );
echo $apell;
?>

Vea tambin substr(), stristr(), y strstr().

str_repeat (PHP 4 >= 4.0b4)

Repite una cadena

string str_repeat (string cad_entrada, int veces)

Devuelve la cad_entrada repetida veces. veces debe ser mayor que 0.

Ejemplo de Str_repeat()

ej42.php
<?
echo str_repeat ("-=", 10);
?>

Esto mostrar "-=-=-=-=-=-=-=-=-=-=".

Nota: Esta funcin fue aadida en el PHP 4.0.

strrev(PHP 3, PHP 4 )

Invierte una cadena

string strrev (string cadena)

Devuele la cadena invertida.

ej43.php
<?
print(strrev("Hola como te va"));
?>


strrpos (PHP 3, PHP 4 )
Autor: Ing. Oscar R. Espeche

122
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP


Encuentra la posicin de la ltima aparicin de un caracter en una cadena

int strrpos (string pajar, char aguja)

Devuele la posicin numrica de la ltima aparicin de la aguja en el pajar. Ntese que
la aguja en este caso slo puede ser un caracter nico. Si se pasa una cadena como
aguja, slo se utilizar el primer caracter de la misma.

Si la aguja no es hayada, devuelve false.
Si la aguja no es una cadena, se convierte a entero y se aplica como el valor ordinal de
un caracter.

Vea tambin strpos(), strrchr(), substr(), stristr(), y strstr().

strspn(PHP 3>= 3.0.3, PHP 4 )

Encuentra la longitud del segmento inicial que coincide con la mscara

int strspn (string cad1, string cad2)

Devuelve la longitud del segmento inicial de cad1 que consiste por entero en caracteres
contenidos en cad2.

strspn ("42 es la respuesta. Cul es la pregunta ...?", "1234567890");

devolver 2 como resultado.

Vea tambin strcspn().

strstr (PHP 3, PHP 4 )

Encuentra la primera aparicin de una cadena

string strstr (string pajar, string aguja)

Devuelve todo el pajar desde la primera aparicin de la aguja hasta el final.

Si la aguja no es hayada, devuelve false.
Si la aguja no es una cadena, se convierte a entero y se aplica como el valor ordinal de
un caracter.

Nota: Ntese que esta funcin es sensible a maysculas y minsculas. Para bsquedas
no sensibles, utilice stristr().

Ejemplo de Strstr()

ej44.php
<?
$email = "pepe@multimedia.com";
$dominio = strstr ($email, "@");
print $dominio;
// imprime @multimedia.com
?>

Vea tambin stristr(), strrchr(), substr(), y ereg().

Autor: Ing. Oscar R. Espeche

123
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

strtok (PHP 3, PHP 4 )

Divide una cadena en elementos

string strtok (string arg1, string arg2)

strtok() se usa para dividir en elementos una cadena. Es decir, que si tiene una cadena
como "Esta es una cadena de ejemplo", podra dividirla en palabras individuales
utilizando el espacio como divisor.

Ejemplo de strtok()

ej45.php
<?
$cadena = "Esta es una cadena de ejemplo";
$tok = strtok ($cadena," ");
while ($tok) {
echo "Palabra=$tok<br>";
$tok = strtok (" ");
}
?>

Ntese que slo la primera llamada a strtok utiliza el argumento cadena. Cada llamada
subsiguiente necesita slo el divisor (separador) a utilizar, puesto que ella guarda la
posicin actual en la cadena. Para comenzar de nuevo o para dividir otra cadena,
simplemente llame a strtok con el argumento de cadena y se inicializar. Ntese que
puede poner divisores mltiples como parmetro. La cadena ser dividida cuando alguno
de los caracteres del argumento sea hallado.

Adems tenga cuidado si sus divisores valen "0", pues evala como false en las
expresiones condicionales.

Vea tambin split() y explode().

strtolower(PHP 3, PHP 4 )

Pasa a minsculas una cadena

string strtolower (string cad)

Devuelve la cadena con todas sus letras en minsculas.

Ntese que las letras son definidad por el locale actual. Esto quiere decir que, por
ejemplo, en el locale por defecto ("C"), los caracteres como la no sern convertidos.

Ejemplo de Strtolower()

ej46.php
<?
$cad = "Mara Tena Un Corderito al que QUERA Mucho";
$cad = strtolower($cad);
print $cad;
# Visualiza mara tena un corderito al que quera mucho
?>

Vea tambin strtoupper() y ucfirst().

Autor: Ing. Oscar R. Espeche

124
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

strtoupper (PHP 3, PHP 4 )

Pasa a maysculas una cadena

string strtoupper (string cadena)

Devuelve la cadena con todas sus letras en maysculas.

Ntese que las letras son definidad por el locale actual. Esto quiere decir que, por
ejemplo, en el locale por defecto ("C"), los caracteres como la no sern convertidos.

Ejemplo de Strtoupper()

$cad = "Mara Tena Un Corderito al que QUERA Mucho";
$cad = strtoupper ($cad);
print $cad;
# Visuaiza MARA TENA UN CORDERITO AL QUE QUERA MUCHO

Vea tambin strtolower() and ucfirst().

str_replace (PHP 3>= 3.0.6, PHP 4 )

Sustitiye todas las apariciones de la aguja en el pajar por la cadena

string str_replace (string aguja, string cad, string pajar)

Esta funcin sustituye todas las apariciones de la aguja en el pajar por la cad dada. Si no
precisa reglas especiales de sustitucin, deber usar siempre esta funcin en lugar de
ereg_replace().

Ejemplo de Str_replace()

ej47.php
<?
$bodytag = str_replace ("%cuerpo%", "negro", " color=%cuerpo%");
echo $bodytag;
?>


Esta funcin tiene seguridad binaria.

Nota: Str_replace() fue aadida en PHP 3.0.6, pero tuvo errores hasta el PHP 3.0.8.

Vea tambin ereg_replace() y strtr().

strtr (PHP 3, PHP 4 )

Traduce ciertos caracteres

string strtr (string cad, string desde, string hasta)

Esta funcin trabaja sobre cad, traduciendo todas las apariciones de cada caracter en
desde por el carcter correspondiente en hasta y devolviendo el resultado.

Si desde y hasta son de distinta longitud, los caracteres extra en la ms larga son
ignorados.

Ejemplo de Strtr()
Autor: Ing. Oscar R. Espeche

125
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP


ej48.php
<?
$addr="<era una tag>";
$addr = strtr($addr, "<>", "()");
echo $addr;
?>


strtr() puede llamarso slo con dos argumentos. Si se llama de esta manera, se
comporta de otro modo: desde debe ser entonces una matriz que contenga pares
cadena => cadena que sern sustitudos en la cadena fuente. strtr() siempre
buscar la coincidencia ms larga primero y *NO* intentar sustituir nada en lo que
haya trabajado ya.

Ejemplos:

ej49.php
<?
$trad = array ("hola" => "hey", "hey" => "hola");
echo strtr("hey a todos, dije hola", $trad) . "\n";
?>

Mostrar: "hola a todos, dije hey",

Nota: Esta caracterstica (2 argumentos) fue aadida en el PHP 4.0
Vea tambin ereg_replace().

substr (PHP 3, PHP 4 )

Devuelve parte de una cadena

string substr (string cadena, int comienzo [, int largo])

substr devuelve la porcin de cadena especificada por los parmetros comienzo y largo.
Si comienzo es positivo, la cadena devuelta comenzar en dicho caracter de cadena.

Ejemplos:

ej50.php
<?
$resto = substr ("abcdef", 1);
echo "$resto<br>";
// devuelve "bcdef"
$resto = substr ("abcdef", 1, 3);
echo "$resto<br>";
// devuelve "bcd"
?>

Si comienzo es negativo, la cadena devuelta comenzar en dicha posicin desde el final
de cadena.

Autor: Ing. Oscar R. Espeche

126
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

Ejemplos:

ej51.php
<?
$resto = substr ("abcdef", -1);
echo "$resto<br>";
// devuelve "f"
$resto = substr ("abcdef", -2);
echo "$resto<br>";
// devuelve "ef"
$resto = substr ("abcdef", -3, 1);
echo "$resto<br>";
// devuelve "d"
?>

Si se especifica largo y es positivo, la cadena devuelta terminar largo caracteres tras el
comienzo. Si esto resulta en una cadena con longitud negativa (porque el comienzo est
pasado el final de la cadena), la cadena devuelta contendr nicamente el caracter que
haya en comienzo.

Si se especifica largo y es negativo, la cadena devuelta terminar a largo caracteres
desde el final de cadena. Si esto resulta en una cadena con longitud negativa, la cadena
devuelta contendr nicamente el caracter que haya en comienzo.

Ejemplos:

ej52.php
<?
$resto = substr ("abcdef", 1,-1); // devuelve "bcde"
echo $resto;
?>

Vea tambin strrchr() y ereg().

substr_count (PHP 4 >= 4.0RC2)

Cuenta el nmero de apariciones de la subcadena

int substr_count (string pajar, string aguja)

substr_count() devuelve el nmero de veces que la subcadena aguja se encuentra en
la cadena pajar.

Ejemplo de substr_count()

ej53.php
<?
print substr_count("Esto es una prueba es", "es") // imprime 2
?>


substr_replace (PHP 4 >= 4.0b4)

Sustituye texto en una parte de una cadena

string substr_replace (string cadena, string sustituto, int comienzo [, int largo])

Autor: Ing. Oscar R. Espeche

127
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

substr_replace() sustituye la parte de cadena delimitada por los parmetros comienzo
y (opcionalmente) largo por la cadena dada en sustituto. Se devuelve el resultado.

Si comienzo es positivo, la sustitucin comenzar en dicha posicin dentro de la cadena.

Si comienzo es negativo, la sustitucin comenzar en dicha posicin pero contando
desde el final de cadena.

Si se especifica el largo y es positivo, representa el largo de la porcin de cadena a
sustituir. Si es negativo, representa el nmero de caracteres desde el final de cadena en
los que deja de sustituir. Si no se especifica, valdr por defecto strlen(cadena); es decir,
que acabar la sustitucin al final de cadena.

Ejemplo de Substr_replace()

ej54.php
<?php
$var = "ABCDEFGH:/MNRPQR/";
echo "Original: $var<hr>\n";
/* Estos dos ejemplos sustituyen toda $var por juan. */
echo substr_replace ($var, "juan", 0) . "<br>\n";
echo substr_replace ($var, "juan", 0, strlen ($var)) . "<br>\n";
/* Inserta juan justo al inicio de $var. */
echo substr_replace ($var, "juan", 0,0) . "<br>\n";
/* Los dos siguientes cambian "MNRPQR" en $var por "juan". */
echo substr_replace ($var, "juan", 10, -1) . "<br>\n";
echo substr_replace ($var, "juan", -7, -1) . "<br>\n";
/* Borrar MNRPQR de $var. */
echo substr_replace ($var, "", 10, -1) . "<br>\n";
?>

Vea tambin str_replace() y substr().
Nota: Substr_replace() fue aadida en el PHP 4.0.

trim (PHP 3, PHP 4 )

Elimina espacios del principio y final de una cadena

string trim (string cad)

Esta funcin elimina los espacios en blanco del comienzo y del final de una cadena y
devuelve el resultado. Los caracteres de espacio que elimina realmente son: "\n", "\r",
"\t", "\v", "\0", y el espacio en s.

Vea tambin chop() y ltrim().

ucfirst (PHP 3, PHP 4 )

Pasar a maysculas el primer caracter de una cadena

string ucfirst (string cad)

Pone en maysculas el primer carcter de cad si es alfabtico.

Ntese que alfabtico est determinado por la localidad actual. Por ejemplo, en la
localidad por defecto "C", los caracteres como la a con diresis () no sern convertidos.

Autor: Ing. Oscar R. Espeche

128
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

Ejemplo de Ucfirst()

ej55.php
<?php
$texto = "configuracin de servidores";
echo "$texto<br>";
$texto = ucfirst ($texto);
echo "$texto<br>";
// $texto vale ahora: Configuracin de servidores
?>

Vea tambin strtoupper() y strtolower()

ucwords(PHP 3>= 3.0.3, PHP 4 )

Pone en maysculas el primer carcter de cada palabra de una cadena

string ucwords (string cad)

Pasa a maysculas la primera letra de cada palabra en cad si dicho carcter es
alfabtico.

Ejemplo de ucwords()

ej56.php
<?php
$texto = "configuracin de servidores";
echo "$texto<br>";
$texto = ucwords ($texto);
echo "$texto<br>";
// $texto vale ahora: Configuracin De Servidores
?>

Vea tambin strtoupper(), strtolower() y ucfirst().

wordwrap(PHP 4 >= 4.0.2)

Corta una cadena en un nmero aproximado de caracteres usando un carcter de
ruptura de cadenas.

string wordwrap (string cad [, int ancho [, string ruptura]])

Corta la cadena cad en la columna especificada por el parmetro (opcional) ancho. La
lnea se rompe utilizando el parmetro (opcional) ruptura. En otras palabras, intercala
cada ancho caracteres, el carcter de ruptura sin cortar las palabras.

wordwrap() automticamente cortar en la columna 75 y usar \n (nueva lnea) si no
se especifican el ancho o la ruptura.

Ejemplo de wordwrap()

<?php
$texto = "El veloz murcilago hind coma feliz cardillo y kiwi.";
$textonuevo = wordwrap( $texto, 10,"<br>" );
echo "$textonuevo";
?>

Autor: Ing. Oscar R. Espeche

129
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

El texto enviado al navegador ser:

El veloz<br>murcilago<br>hind<br>coma<br>feliz<br>cardillo y<br>kiwi.

El navegador mostrar en pantalla:

El veloz
murcilago
hind
coma
feliz
cardillo y
kiwi.

Autor: Ing. Oscar R. Espeche

130
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

1.3.4 Variables Arrays
Un tipo de variable que ya hemos descrito pero puede ser relativamente complicado a asimilar
con respecto a la mayora, son los arrays. Un array es una variable que est compuesta de
varios elementos cada uno de ellos catalogado dentro de ella misma por medio de una clave.
Tenemos el ejemplo de un array llamado sentido que contiene los distintos sentidos del ser
humano:
$sentido[1]="ver";
$sentido[2]="tocar";
$sentido[3]="oir";
$sentido[4]="gustar";
$sentido[5]="oler";
Arrays unidimensionales
PHP soporta tanto arrays escalares como asociativos. De hecho, no hay diferencias entre los
dos. Se puede crear una array usando las funciones list() o array(), o se puede asignar el
valor de cada elemento del array de manera explcita.

$a[0] = "abc";
$a[1] = "def";
$b["algo"] = 13;

Tambin se puede crear un array simplemente aadiendo valores al array. Cuando se asigna un
valor a una variable array usando corchetes vacos, el valor se aadir al final del array.

$a[] = "hola"; // $a[2] == "hola"
$a[] = "mundo"; // $a[3] == "mundo"

Arrays Multidimensionales
Los arrays multidimensionales son bastante simples actualmente. Para cada dimensin del
array, se puede aadir otro valor [clave] al final:

$a[1] = $f; # ejemplos de una sola dimensin
$a["algo"] = $f;
$a[1][0] = $f; # bidimensional
$a["algo"][2] = $f; # (se pueden mezclar ndices numricos y asociativos)
$a[3]["bar"] = $f; # (se pueden mezclar ndices numricos y asociativos)
$a["algo"][4]["bar"][0] = $f; # tetradimensional!

No es posible referirse a arrays multidimensionales directamente dentro de cadenas. Por
ejemplo, lo siguiente no tendr el resultado deseado:

ej58.php
<?php
$a[3]['bar'] = 'Juan';
echo $a[3]['bar'];
echo "<br>";
echo "$a[3]['bar']";
Autor: Ing. Oscar R. Espeche

131
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

echo "<br>";
echo "Esto no va a funcionar: $a[3][bar]";
?>


Lo anterior tendr la salida Esto no va a funcionar: Array[bar]. De todas formas, el operador de
concatenacin de cadenas se puede usar para solucionar esto:

ej59.php
<?php
$a[3]['bar'] = 'Juan';
echo $a[3]['bar'];
echo "<br>";
echo "$a[3]['bar']";
echo "<br>";
echo "Esto no va a funcionar:". $a[3]['bar'];
?>

En PHP4, sin embargo, todo el problema se puede circunvenir encerrando la referencia al array
(dentro de la cadena) entre llaves (sin dejar espacios):

ej60.php
<?php
$a[3][bar] = 'Juan';
echo $a[3]["bar"];
echo "<br>";
echo "$a[3][bar]";
echo "<br>";
echo "Esto si va a funcionar: {$a[3][bar]} ";
?>

Se pueden "rellenar" (inicializar) arrays multidimensionales de muchas formas, pero la ms
difcil de comprender es cmo usar el comando array() para arrays asociativos. Estos dos
trozos de cdigo rellenarn el array unidimensional de la misma manera:

ej61.php
<?php
# Ejemplo 1:

$a["color"] = "rojo";
$a["sabor"] = "dulce";
$a["forma"] = "redondeada";
$a["nombre"] = "manzana";
$a[3] = 4;
print_r ($a);
echo "<br>";

# Ejemplo 2:

$a = array (
"color" => "rojo",
"sabor" => "dulce",
"forma" => "redondeada",
"nombre" => "manzana",
Autor: Ing. Oscar R. Espeche

132
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

3 => 4
);
print_r ($a);
?>

La funcin array() se puede anidar para arrays multidimensionales:

ej62.php
<?
$a = array(
"manzana" => array(
"color" => "rojo",
"sabor" => "dulce",
"forma" => "redondeada"
),
"naranja" => array(
"color" => "naranja",
"sabor" => "cido",
"forma" => "redondeada"
),
"pltano" => array(
"color" => "amarillo",
"sabor" => "paste-y",
"forma" => "aplatanada"
)
);

echo $a["manzana"]["sabor"]; # devolver "dulce"
?>

Funciones con Arrays
Lo que es interesante es que la utilidad de los arrays no acaba aqu, sino que tambin podemos
utilizar toda una serie de funciones creadas para ordenarlos por orden alfabtico directo o
inverso, por claves, contar el numero de elementos que componen el array adems de poder
movernos por dentro de l hacia delante o atrs.
Muchas son las funciones propuestas por PHP para el tratamiento de arrays, no vamos a
entrar por el momento en una descripcin de las mismas. Slo incluiremos esta pequea tabla
con algunas de las funciones ms comunes que puede ser complementada con las que se
explican al final de este tema.
Funcin Descripcin
array_values (mi_array) Lista los valores contenidos en mi_array
asort(mi_array) y arsort(mi_array)
Ordena por orden alfabtico directo o inverso en
funcin de los valores
count(mi_array) Nos da el numero de elementos de nuestro array
ksort(mi_array) y krsort(mi_array)
Ordena por orden alfabtico directo o inverso en
funcin de las claves
list ($variable1, $variable2...)=mi_array
Asigna una variable a cada uno de los valores del
array
Autor: Ing. Oscar R. Espeche

133
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

next(mi_array), prev(mi_array),
reset(mi_array) y end(mi_array)
Nos permiten movernos por dentro del array con un
puntero hacia delante, atrs, al principio y al final.
each(mi_array)
Nos da el valor y la clave del elemento en el que nos
encontramos y mueve al puntero al siguiente
elemento.


De gran utilidad es tambin el bucle foreach que recorre de forma secuencial el array de
principio a fin.
Trabajo con tablas o arrays
Vamos a ver varios ejemplos de trabajo con arrays (arreglos, vectores, matrices o tablas en
castellano) en PHP que ilustrarn un poco el funcionamiento de algunas de las funciones de
arrays ms populares que trae consigo PHP.
Sin ms, vamos a introducirnos en materia con varios ejemplos interesantes de manejo de
vectores.
Modificar el nmero de elementos de un array
Ahora vamos a ver varios ejemplos mediante los cuales nuestros arrays pueden aumentar o
reducir el nmero de casillas disponibles.

Reducir el tamao de un array

array_slice() :Para disminuir el nmero de casillas de un arreglo tenemos varias
funciones. Entre ellas, array_slice() la utilizamos cuando queremos recortar algunas
casillas del arreglo, sabiendo los ndices de las casillas que deseamos conservar.

Recibe tres parmetros. El array, el ndice del primer elemento y el nmero de
elementos a tomar, siendo este ltimo parmetro opcional.

En el ejemplo siguiente tenemos un array con cuatro nombres propios. En la primera
ejecucin de array_slice() estamos indicando que deseamos tomar los elementos
desde el ndice 0 (el principio) hasta un nmero total de 3 elementos.

El segundo array_slice() indica que se tomen los elementos a partir del ndice 1
(segunda casilla).

ej63.php
<?
$entrada = array ("Miguel", "Pepe", "Juan", "Julio", "Pablo");
echo '$entrada = array ("Miguel", "Pepe", "Juan", "Julio", "Pablo"): ';
echo "<br>";
foreach ($entrada as $actual)
echo $actual . "<br>";
echo "<p>";

//modifico el tamao
$salida = array_slice ($entrada, 0, 3);
//muestro el array
echo '$salida = array_slice ($entrada, 0, 3): ',"<br>";
foreach ($salida as $actual)
echo $actual . "<br>";
echo "<p>";
echo '$entrada:',"<br>";
Autor: Ing. Oscar R. Espeche

134
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

foreach ($entrada as $actual)
echo $actual . "<br>";
echo "<p>";

//modifico otra vez
echo '$salida = array_slice ($salida, 1):',"<br>";
$salida = array_slice ($salida, 1);
//muestro el array
foreach ($salida as $actual)
echo $actual . "<br>";
?>


Tendr como salida:

$entrada = array ("Miguel", "Pepe", "Juan", "Julio", "Pablo"):
Miguel
Pepe
Juan
Julio
Pablo

$salida = array_slice ($entrada, 0, 3):
Miguel
Pepe
Juan

$entrada:
Miguel
Pepe
Juan
Julio
Pablo

$salida = array_slice ($salida, 1):
Pepe
Juan

Como vemos el array original no se modifica.

array_shift() : Esta funcin extrae el el primer elemento del array y lo devuelve.
Adems, acorta la longitud del array eliminando el elemento que estaba en la primera
casilla. Siempre hace lo mismo.

En el cdigo siguiente se tiene el mismo vector con nombres propios y se ejecuta dos
veces la funcin array_shift() eliminando un elemento en cada ocasin. Se imprimen los
valores que devuelve la funcin y los elementos del array resultante de eliminar la
primera casilla.

ej64.php
<?
$entrada = array ("Miguel", "Pepe", "Juan", "Julio", "Pablo");

//quito la primera casilla
$salida = array_shift ($entrada);
//muestro el array
echo "La funcin devuelve: " . $salida . "<br>";
Autor: Ing. Oscar R. Espeche

135
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

foreach ($entrada as $actual)
echo $actual . "<br>";

echo "<p>";

//quito la primera casilla, que ahora sera la segunda del array original
$salida = array_shift ($entrada);
echo "La funcin devuelve: " . $salida . "<br>";
//muestro el array
foreach ($entrada as $actual)
echo $actual . "<br>";
?>


Da como resultado:

La funcin devuelve: Miguel

Pepe
Juan
Julio
Pablo

La funcin devuelve: Pepe

Juan
Julio
Pablo

En este caso si se modifica el array original.

unset()
Se utiliza para destruir una variable dada. En el caso de los arreglos, se puede utilizar
para eliminar una casilla de un array asociativo (los que no tienen ndices numricos sino
que su ndice es una cadena de caracteres).

Veamos el siguiente cdigo para conocer cmo definir un array asociativo y eliminar
luego una de sus casillas.

ej65.php
<?
$capitales = array("Argentina"=> "Buenos Aires","Brasil" => "Brasilia","Per" =>
"Lima","Paraguay" => "Asuncin");

//mostramos las capitales
foreach ($capitales as $indice=>$actual)
echo $indice . " -- " . $actual . "<br>";

echo "<p>";

//eliminamos la capital de Paraguay
unset ($capitales["Paraguay"]);

//mostramos las capitales otra vez
foreach ($capitales as $indice=>$actual)
echo $indice . " -- " . $actual . "<br>";
?>
Autor: Ing. Oscar R. Espeche

136
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP


La salida ser la siguiente:

Argentina Buenos Aires
Brasil-- Brasilia
Per -- Lima
Paraguay-- Asuncin

Argentina Buenos Aires
Brasil-- Brasilia
Per Lima

Aumentar el tamao de un array

Tenemos tambin a nuestra disposicin varias funciones que nos pueden ayudar a aumentar el
nmero de casillas de un arreglo.

array_push() : Inserta al final del array una serie de casillas que se le indiquen por
parmetro. Por tanto, el nmero de casillas del array aumentar en tantos elementos
como se hayan indicado en el parmetro de la funcin. Devuelve el nmero de casillas
del array resultante.

Veamos este cdigo donde se crea un arreglo y se aaden luego tres nuevos valores.

ej66.php
<?
$tabla = array ("Lagartija", "Araa", "Perro", "Gato", "Ratn");
foreach ($tabla as $actual)
echo $actual . "<br>";
echo "<p>";
//aumentamos el tamao del array
array_push($tabla, "Gorrin", "Paloma", "Oso");
foreach ($tabla as $actual)
echo $actual . "<br>";
?>


Da como resultado esta salida:

Lagartija
Araa
Perro
Gato
Ratn

Lagartija
Araa
Perro
Gato
Ratn
Gorrin
Paloma
Oso

array_merge() : Ahora vamos a ver cmo unir dos arrays utilizando la funcin
array_merge(). A sta se le pasan dos o ms arrays por parmetro y devuelve un
arreglo con todos los campos de los vectores pasados.
Autor: Ing. Oscar R. Espeche

137
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP


En este cdigo de ejemplo creamos tres arrays y luego los unimos con la funcin
array_merge().

<?
$tabla = array ("Lagartija", "Araa", "Perro", "Gato", "Ratn");
$tabla2 = array ("12","34","45","52","12");
$tabla3 = array ("Sauce","Pino","Naranjo","Chopo","Perro","34");

//aumentamos el tamao del array
$resultado = array_merge($tabla, $tabla2, $tabla3);

foreach ($resultado as $actual)
echo $actual . "<br>";
?>


Da como resultado:

Lagartija
Araa
Perro
Gato
Ratn
12
34
45
52
12
Sauce
Pino
Naranjo
Chopo
Perro
34

Una ltima cosa. Tambin pueden introducirse nuevas casillas en un arreglo por los
mtodos habituales de asignar las nuevas posiciones en el array a las casillas que
necesitemos.

En arrays escalares se hara as:


$tabla = array ("Sauce","Pino","Naranjo");
$tabla[3]="Algarrobo";

En arrays asociativos:


$capitales = array("Argentina"=> "Buenos Aires","Brasil" => "Brasilia",
"Per" => "Lima","Paraguay" => "Asuncin");
$capitales[Chile] = Santiago;

Autor: Ing. Oscar R. Espeche

138
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

Resumen de funciones con Arrays
Veremos un resumen de las funciones con arrays, aunque ya vimos alguna de ellas
anteriormente. En una primera lectura del apuntes podra saltear esta seccin para luego
consultarla en el momento de practicar con ejercicios donde se apliquen funciones con arrays.

array()

Crear una matriz

array array(...);

Devuelve una matriz con los parmetros que se le pasan. A dichos parmetros se les
puede dar un ndice usando el operador =>.

Nota: array() es una construccin del lenguaje que se utiliza para representar matrices
literales, no una funcin regular.

El siguiente ejemplo demuestra cmo crear una matriz bidimensional, cmo especificar
claves para matrices asociativas, y cmo especificar ndices no consecutivos en matrices
normales.

Ejemplo de array()

ej68.php
<?
$frutas = array (
"frutas" => array("a"=>"naranja", "b"=>"pltano", "c"=>"manzana"),
"nmeros" => array(1, 2, 3, 4, 5, 6),
"hoyos" => array("primero", 5 => "segundo", "tercero")
);
foreach ($frutas[frutas] as $key=>$actual)
echo $actual . "<br>";

echo "<p>";
foreach ($frutas[nmeros] as $actual)
echo $actual . "<br>";

echo "<p>";
foreach ($frutas[hoyos] as $actual)
echo $actual . "<br>";
?>

Vea tambin: list().

array_count_values (PHP 4 >= 4.0b4)

Cuenta todos los valores de una matriz

array array_count_values (array entrada)

array_count_values() devuelve una matriz usando los valores de la matriz entrada
como claves y su frecuencia de aparicin en la entrada como valores.

Autor: Ing. Oscar R. Espeche

139
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

Ejemplo de array_count_values()

ej69.php
<?
$matriz = array(1, "hola", 1, "mundo", "hola");
$cuenta=array_count_values($matriz);
// devuelve array(1=>2, "hola"=>2, "mundo"=>1)

print_r($matriz);
echo "<p>";

print_r($cuenta);
?>

Nota: Esta funcin fue aadida en el PHP 4.0.

array_flip (PHP 4 >= 4.0b4)

Intercambia los valores de una matriz

array array_flip (array trans)

array_flip() devuelve una matriz con los valores intercambiados.

Ejemplo de array_flip()

ej70.php
<?
$a=array("hola","como","te","va");
$trans = array_flip ($a);
print_r($trans);
$original = array_flip($trans);
echo"<p>";
print_r($original);
?>

Nota: Esta funcin fue aadida en el PHP 4.0.

array_keys (PHP 4 )

Devuelve todas las claves de una matriz

array array_keys (array entrada [, mixto val_a_buscar])

array_keys() devuelve las claves, numricas y de cadena, de la matriz entrada.

Si se especifica el parmetro opcional val_a_buscar, slo se devuelven las claves para
dicho valor. De otro modo, se devuelven todas las claves de la entrada.

Ejemplo de array_keys()

ej71.php
<?
$matriz = array(0 => 100, "color" => "rojo");
$a=array_keys ($matriz);
print_r($a);
echo "<p>";
Autor: Ing. Oscar R. Espeche

140
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

// devuelve Array ( [0] => 0 [1] => color )

$matriz = array(1, 100, 2, 100);
$b=array_keys ($matriz,100);
print_r($b);
// devuelve Array ( [0] => 1 [1] => 3 )
echo "<p>";

$b=array_keys ($matriz);
print_r($b);
// devuelve Array ( [0] => 0 [1] => 1 [2] => 2 [3] => 3 )
?>


Vea tambin: array_values().

Nota: Esta funcin fue aadida en el PHP 4.0.

array_merge (PHP 4 )

Combina dos o ms matrices

array array_merge (array matriz1, array matriz2 [, ...])

array_merge() combina los elementos de dos o ms matrices conjuntamente de modo
que los valores de una son agregados al final de los valores de la anterior. Devuelve la
matriz resultante.

Si las matrices de entrada tienen las mismas claves de cadena, el ltimo valor para cada
clave reemplazar el valor previo de la misma. Si, por el contrario, las matrices tienen la
misma clave numrica, esto no pasa y los valores son simplemente agregados.

Ejemplo de array_merge()

$matriz1 = array ("color" => "rojo", 2, 4)
$matriz2 = array ("a", "b", "color" => "verde", "forma" => "trapezoide")
array_merge ($matriz1, $matriz2)

La matriz resultante sera array("color"=> "verde", 2, 4, "a", "b", "forma"=>
"trapezoide").

Nota: Esta funcin fue aadida en el PHP 4.0.

array_pad(PHP 4 >= 4.0b4)

Rellena una matriz con un valor hasta el tamao especificado

array array_pad (array entrada, int tama_relleno, mixto valor_relleno)

array_pad() Devuelve una copia de la entrada rellenada hasta el tamao tama_relleno
con el valor valor_relleno. Si tama_relleno es positivo, entonces la matriz es rellenada
por la derecha, y si es negativo, por la izquierda. Si el valor absoluto de tama_relleno es
menor o igual que el tamao de la entrada no se produce relleno alguno.

Autor: Ing. Oscar R. Espeche

141
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

Ejemplo de array_pad()

$entrada = array (12, 10, 9);
$resultado = array_pad ($entrada, 5, 0);
// el resultado es array (12, 10, 9, 0, 0)
$resultado = array_pad ($entrada, -7, -1);
// el resultado es array (-1, -1, -1, -1, 12, 10, 9)
$resultado = array_pad ($entrada, 2, "no");
// no rellenado

array_pop(PHP 4 )

Extrae el ltimo elemento de la matriz

mixto array_pop (array matriz)

array_pop() extrae y devuelve el ltimo valor de la matriz, acortando la matriz en un
elemento.

Ejemplo de array_pop()

$pila = array ("naranja", "manzana", "frambuesa");
$fruta = array_pop ($pila);

Tras esto, $pila contiene slo 2 elementos: "naranj a" y "manzana", y $fruta
contiene "frambuesa".

Vea tambin: array_push(), array_shift(), y array_unshift().
Nota: Esta funcin fue aadida en el PHP 4.0.

array_push(PHP 4 )

Inserta uno o ms elementos al final de la matriz

int array_push (array matriz, mixto var [, ...])

array_push() considera a la matriz como una pila, e inserta las variables que se le
pasan al final de la matriz. La longitud de la matriz se incrementa en el nmero de
variables insertadas. Tiene el mismo efecto que ejecutar:

$matriz[] = $var;
para cada var.
Devuelve el nuevo nmero de elementos de la matriz.

Ejemplo de array_push()

$pila = array (1, 2);
array_push($pila, "+", 3);

Este ej emplo dej ar $pila conteniendo 4 elementos: 1, 2, "+", y 3.

Vea tambin: array_pop(), array_shift(), y array_unshift().
Nota: Esta funcin fue aadida en el PHP 4.0.

array_reverse (PHP 4 >= 4.0b4)

Devuelve una matriz con los elementos en orden inverso
Autor: Ing. Oscar R. Espeche

142
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP


array array_reverse (array matriz)

array_reverse() toma la matriz de entrada y devuelve una nueva matriz con los
elementos en orden inverso.

Ejemplo de array_reverse()

$entrada = array ("php", 4.0, array ("verde", "rojo"));
$resultado = array_reverse ($entrada);

Esto hace que $resultado contenga array (array ("verde", "rojo"), 4.0, "php").
Nota: Esta funcin fue aadida en PHP 4.0 Beta 3.

array_shift (PHP 4 )

Extrae un elemento del comienzo de la matriz

mixto array_shift (array matriz)

array_shift() extrae el primer valor de la matriz y lo devuele, acortando la matriz en
un elemnto y moviendo todo hacia arriba.

Ejemplo de array_shift()

$args = array ("-v", "-f");
$opcion = array_shift ($args);

Esto da como resultado que $args tenga como elemento restante "-f"y que $opcion
valga "-v".

Vea tambin: array_unshift(), array_push(), y array_pop().
Nota: Esta funcin fue aadida en el PHP 4.0.

array_slice (PHP 4 )

Extrae una porcin de la matriz

array array_slice (array matriz, int desplazamiento [, int tamao])

array_slice() devuelve una secuencia de elementos de la matriz especificada por los
parmetros desplazamiento y tamao.

Si el desplazamiento es positivo, la secuencia comenzar en dicha posicin de la matriz.
Si el desplazamiento es negativo, la secuencia comenzar en esa posicin desde el final
de la matriz.

Si se especifica el tamao y ste es positivo, la secuencia contendr tantos elementos
como se diga en l. Si fuese negativo, la secuencia se detendr a tantos elementos del
final de la matriz. Si se omite, la secuencia contendr todos los elementos desde el
desplazamiento hasta el final de la matriz.

Ejemplo de array_slice()

$entrada = array ("a", "b", "c", "d", "e");
$salida = array_slice ($entrada, 2);
// devuelve "c", "d", y "e"
Autor: Ing. Oscar R. Espeche

143
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

$salida = array_slice ($entrada, 2, -1);
// devuelve "c", "d"
$salida = array_slice ($entrada, -2, 1);
// devuelve "d"
$salida = array_slice ($entrada, 0, 3);
// devuelve "a", "b", y "c"

Vea tambin: array_splice().
Nota: Esta funcin fue aadida en el PHP 4.0.

array_splice (PHP 4 )

Suprime una porcin de la matriz y la sustituye por otra cosa

array array_splice (array entrada, int desplazamiento [, int tamao [, array
sustitucin]])

array_splice() suprime los elementos designados por el desplazamiento y el tamao de
la matriz entrada, y los sustituye con los elementos de la matriz de sustitucin si se
especifica.
Si el desplazamiento es positivo, el comienzo de la parte suprimida sera en esa posicin
desde el comienzo de la matriz de entrada. Si el desplazamiento es negativo, se cuenta
la posicin desde el final de la matriz de entrada.

Si se omite tamao, se suprime todo desde el desplazamiento hasta el final de la matriz.
Si se especifica el tamao y es positivo, se suprimirn tantos elementos como se
especifica. Si fuera negativo, el final de la porcin eliminada estar a tantos elementos
del final de la matriz.

Nota: para eliminar todo desde el desplazamiento hasta el final de la matriz cuando
tambin se especifica sustitucin, utilice count($entrada) como tamao.

Si se especifica la matriz de sustitucin, entonces los elementos suprimidos son
reemplazados con los elementos de dicha matriz. Si los valores de desplazamiento y
tamao son tales que nada es borrado, los elementos de la matriz sustitucin se
insertarn en la posicin indicada por el desplazamiento.

Nota: si slo se va a sustituir algo por un elemento nada ms, no hace falta poner
array() alrededor del mismo, salvo que dicho elemento sea una matriz en s mismo.

Las siguientes funciones son equivalentes:

$x y $y son dos cadenas.

array_push($entrada, $x, $y)
array_splice($entrada, count($entrada), 0, array($x, $y))

array_pop($entrada)
array_splice($entrada, -1)

array_shift($entrada)
array_splice($entrada, 0, 1)

array_unshift($entrada, $x, $y)
array_splice($entrada, 0, 0, array($x, $y))

Ejemplos de array_splice()
Autor: Ing. Oscar R. Espeche

144
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP


ej72.php
<?
$entrada = array("rojo", "verde", "azul", "amarillo");
print_r($entrada);
echo "<p>";

$entrada = array("rojo", "verde", "azul", "amarillo");
array_splice($entrada, 2); // $entrada vale ahora array("rojo", "verde")
print_r($entrada);
echo "<p>";

$entrada = array("rojo", "verde", "azul", "amarillo");
array_splice($entrada, 1, -1); // $entrada vale ahora array("rojo", "amarillo")
print_r($entrada);
echo "<p>";

$entrada = array("rojo", "verde", "azul", "amarillo");
array_splice($entrada, 1, count($entrada), array("naranja"));
// $entrada vale ahora array("rojo", "naranja")
print_r($entrada);
echo "<p>";

$entrada = array("rojo", "verde", "azul", "amarillo");
array_splice($entrada, -1, 1, array("negro", "marrn"));
// $entrada vale ahora array("rojo", "verde", "azul", "negro", "marrn")
print_r($entrada);
echo "<p>";
?>

Vea tambin: array_slice().
Nota: Esta funcin fue aadida en el PHP 4.0.

array_unshift (PHP 4 )

Introduce uno o ms elementos al principio de la matriz

int array_unshift (array matriz, mixto var [, ...])

array_unshift() aade los elementos que se le pasan al principio de la matriz. Ntese
que la lista de elementos es aadida como un todo, de modo que los elementos
aadidos mantienen su orden.

Devuelve el nmero de elementos en la matriz.

Ejemplo de array_unshift()

$cola = array("p1", "p3");
array_unshift($cola, "p4", "p5", "p6");

Esto har que $cola contenga 5 elementos: "p4", "p5", "p6", "p1", y "p3".

Vea tambin: array_shift(), array_push(), y array_pop().
Nota: Esta funcin fue aadida en el PHP 4.0.

array_values (PHP 4 )

Autor: Ing. Oscar R. Espeche

145
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

Devuelve todos los valores de una matriz

array array_values (array entrada)

array_values() devuelve todos los valores de la matriz entrada.

Ejemplo de array_values()

$matriz = array("talla" => "XL", "color" => "dorado");
array_values($matriz);
// devuelve array("XL", "dorado")

Nota: Esta funcin fue aadida en el PHP 4.0.

array_walk (PHP 3>= 3.0.3, PHP 4 )

Aplica una funcin del usuario a cada elemento de una matriz.

int array_walk (array matriz, string func, mixto datosvarios)

Aplica la funcin llamada func a cada elemento de la matriz. La funcin func recibir el
valor de la matriz como primer parmetro y la clave como segundo. Si se proporciona el
parmetro datosvarios ser pasado como tercer parmetro a la funcin de usuario.

Si func necesita ms de dos o 3 argumentos, dependiendo de datosvarios, se generar
un aviso cada vez que array_walk() llama a func. Estos avisos pueden suprimirse si se
pone @ antes de la llamada a array_walk(), o usando la funcin error_reporting().

Nota: Si func precisa modificar los valores de la matriz, especifique que el valor del
primer parmetro de func debe pasarse por referencia. Desde ese instante, los cambios
realizados sobre dichos elementos tambin sern realizados en la propia matriz.

En PHP 4 se debe llamar reset() las veces necesarias, pues array_walk() no reajusta
la matriz por defecto.

Ejemplo de array_walk()

ej73.php
<?
$frutas = array ("d"=>"limn", "a"=>"naranja", "b"=>"pltano", "c"=>"manzana");
function test_alterar (&$item1, $clave, $prefix) {
$item1 = "$prefix: $item1";
}
function test_ver ($item2, $clave) {
echo "$clave. $item2<br>\n";
}
array_walk ($frutas, 'test_ver');
reset ($frutas);
echo"<p>";

array_walk ($frutas, 'test_alterar', 'fruta');
reset ($frutas);
array_walk ($frutas, 'test_ver');
?>

La salida ser:

Autor: Ing. Oscar R. Espeche

146
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

d. limn
a. naranja
b. pltano
c. Manzana

d. fruta: limn
a. fruta: naranja
b. fruta: pltano
c. fruta: manzana


Vea tambin: each() y list().

arsort (PHP 3, PHP 4 )

Ordena una matriz en orden inverso y mantiene la asociacin de ndices

void arsort (array matriz)

Esta funcin ordena una matriz de modo que los ndices mantengan su correlacin con
los elementos de la misma a los que estn asociados. Esto se utiliza principalmente para
ordenar matrices asociativas en las que el orden de los elementos es importante.

Ejemplo de arsort()

<?
$frutas = array ("d"=>"limn", "a"=>"naranja", "b"=>"pltano", "c"=>"manzana");
arsort ($frutas);
for (reset ($frutas);$clave = key ($frutas);next ($frutas)) {
echo "frutas[$clave] = ".$frutas[$clave]."\n" ;
}
?>

Este ejemplo mostrara: frutas[b] = pltano frutas[a] = naranja frutas[c] = manzana
frutas[d] = limn
Las frutas han sido ordenadas en orden alfabtico inverso y los ndices asociados con
cada elemento se han mantenido.

Vea tambin: asort(), rsort(), ksort(), y sort().

asort (PHP 3, PHP 4 )

Ordena una matriz y mantiene la asociacin de ndices

void asort (array matriz)

Esta funcin ordena una matriz de modo que los ndices mantengan su correlacin con
los elementos de la misma a los que estn asociados. Esto se utiliza principalmente para
ordenar matrices asociativas en las que el orden de los elementos es importante.

Ejemplo de asort()

ej75.php
<?
$frutas = array ("d"=>"limn", "a"=>"naranja", "b"=>"pltano", "c"=>"manzana");
asort ($frutas);
for (reset ($frutas);$clave = key ($frutas);next ($frutas)) {
Autor: Ing. Oscar R. Espeche

147
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

echo "frutas[$clave] = ".$frutas[$clave]."\n" ;
}
?>

Este ejemplo mostrar: frutas[d] = limn frutas[a] = naranja frutas[c] = manzana
frutas[d] = pltano
Las frutas han sido ordenadas en orden alfabtico y los ndices asociados con cada
elemento se han mantenido.

Vea tambin: arsort(), rsort(), ksort(), y sort().

compact(PHP 4 )

Crea una matriz que contiene variables y sus valores

array compact (string nombrevar | array nombrevars [, ...])

compact() genera una matriz asociativa en base a variables.

compact() toma un nmero variable de parmetros. Cada uno puede ser tanto una
cadena que contiene el nombre de la variable, como una matriz de nombres de variable.
La matriz puede contener otras matrices de nombres de variable en su interior;
compact() los procesa recursivamente.

Para cada uno de estos, compact() busca una variable con dicho nombre en la tabla de
smbolos y la aade a la matriz de salida de modo que el nombre de la variable es la
clave y el contenido de sta es el valor para dicha clave. Para resumir, hace lo contrario
de extract(). Devuelve la matriz de salida con las variables aadidas a la misma.

Ejemplo de compact()

ej76.php
<?
$ciudad = "Catamarca";
$estado = "San Fernando";
$evento = "SIGGRAPH";
$vars = array ("ciudad", "estado");
$resultado = compact ("evento", $vars);
print_r($resultado);
?>

Tras esto, $resultado valdr array ( "evento"=> "SI GGRAPH", "ciudad"=>
"Catamarca", "estado"=> "San Fernando") .

Vea tambin: extract().
Nota: Esta funcin fue aadida en el PHP 4.0.

count (PHP 3, PHP 4 )

Cuenta los elementos de una variable

int count (mixto var)

Devuelve el nmero de elementos en var, que tpicamente es una matriz (porque
cualquier otra cosa tendra slo un elemento).

Devuele 1 si la variable no es una matriz.
Autor: Ing. Oscar R. Espeche

148
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

Devuelve 0 si la variable no tiene valor.

count() puede devolver 0 para una variable sin valor, pero tambin puede devolver 0
para una variable ya inicializada pero con una matriz vaca. Utilice isset() para
comprobar si una variable est inicializada.

Vea tambin: sizeof(), isset(), y is_array().

current (PHP 3, PHP 4 )

Devuelve el elemento actual de una matriz

mixto current (array matriz)

Cada matriz tiene un puntero interno al elemento "actual", que se inicializa al primer
elemento insertado en la misma.

La funcin current() simplemente devuelve el elemento de la tabla al que apunta el
puntero interno. No mueve el puntero de ninguna manera. Si el puntero interno apunta
fuera del final de la lista de elementos, current() devuelve false.

Si la matriz contiene elementos vacos (0 "", la cadena vaca) esta funcin devolver
false tambin para dichos elementos. Esto hace imposible determinar si se est
realmente al final de la lista en tales matrices usando current(). Para recorrer
adecuadamente una matriz que pueda contener elementos vacos, utilice la funcin
each().

Vea tambin: end(), next(), prev() y reset().

each(PHP 3, PHP 4 )

Devuelve el siguiente par clave/valor de una matriz

array each (array matriz)

Devuelve el par clave/valor actual para la matriz y avanza el cursor de la misma. Esta
pareja se devuelve en una matriz de 4 elementos, con las claves 0, 1, key, y value. Los
elementos 0 y key contienen el nombre de clave del elemento de la matriz, y 1 y value
contienen los datos.

Si el puntero interno para la matriz apunta pasado el final del contenido de la matriz,
each() devuelve false.

Ejemplos de each()

$grupo = array ("sebastian", "florencia", "maria", "mabel", "ricardo", "virginia");
$uno = each ($grupo);

$uno contiene ahora los siguientes pares clave/valor:
0 => 0
1 => sebastian
key => 0
value => sebastian

$grupo = array ("florencia" => "flor", "ricardo" => "ricky");
$uno = each ($grupo);

Autor: Ing. Oscar R. Espeche

149
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

$uno contiene ahora los siguientes pares clave/valor:
0 => florencia
1 => flor
key => florencia
value => flor

ej77.php
<?
$grupo = array ("sebastian", "florencia", "maria", "mabel", "ricardo", "virginia");
reset($grupo);
$uno = each ($grupo);
print_r($uno);
echo "<p>";
$uno = each ($grupo);
print_r($uno);
echo "<p>";
$uno = each ($grupo);
print_r($uno);
echo "<p>";
?>

La salida ser:

Array ( [1] => sebastian [value] => sebastian [0] => 0 [key] => 0 )
Array ( [1] => florencia [value] => florencia [0] => 1 [key] => 1 )
Array ( [1] => maria [value] => maria [0] => 2 [key] => 2 )
ej78.php
<?
$grupo = array ("s"=>"sebastian", "f"=>"florencia", "m"=>"maria", "ma"=>"mabel",
"r"=>"ricardo", "v"=>"virginia");
reset($grupo);
$uno = each ($grupo);
print_r($uno);
echo "<p>";
$uno = each ($grupo);
print_r($uno);
echo "<p>";
$uno = each ($grupo);
print_r($uno);
echo "<p>";
?>

La salida ser:

Array ( [1] => sebastian [value] => sebastian [0] => s [key] => s )
Array ( [1] => florencia [value] => florencia [0] => f [key] => f )
Array ( [1] => maria [value] => maria [0] => m [key] => m )
ej79.php
<?
Autor: Ing. Oscar R. Espeche

150
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

$grupo = array ("s"=>"sebastian", "f"=>"florencia", "m"=>"maria", "ma"=>"mabel",
"r"=>"ricardo", "v"=>"virginia");
reset($grupo);

while (list ($key, $value) = each ($grupo)) {
echo "$key => $value<br>";
}
?>

La salida ser:

s => sebastian
f => florencia
m => maria
ma => mabel
r => ricardo
v => virginia

each() se usa normalmente de forma conjunta a list() para recorrer una matriz; por
ejemplo, $HTTP_POST_VARS:

Recorriendo $HTTP_POST_VARS con each()

echo "Valores enviados con el mtodo POST:<br>";
reset ($HTTP_POST_VARS);
while (list ($clave, $val) = each ($HTTP_POST_VARS)) {
echo "$clave => $val<br>";
}


Cuando se ha ejecutado each(), el cursor de la matriz quedar en el siguiente elemento
de la misma, o en el ltimo si llega al final de sta.

Vea tambin: key(), list(), current(), reset(), next(), y prev().

end(PHP 3, PHP 4 )

Mueve el puntero interno de una tabla al ltimo elemento

end (array matriz)

end() avanza el puntero interno de la matriz al ltimo elemento.

Vea tambin: current(), each(), end(), next(), y reset().

extract (PHP 3>= 3.0.7, PHP 4 )

Crea variables a partir de una matriz.

Importa variables a la tabla de smbolos (donde se registran los nombres de las
variables) desde una matriz.

void extract (array matriz_vars [, int tipo_extraccin [, string prefijo]])

Esta funcin se utiliza para importar variables desde una matriz a la tabla de smbolos
actual. Toma la matriz asociativa matriz_vars y trata las claves como nombres de
Autor: Ing. Oscar R. Espeche

151
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

variable y los valores como los valores de stas. Para cada par clave/valor crear una
variable en la tabla de smbolos actual, sujeto a los parmetros tipo_extraccin y prefijo.

extract() controla las colisiones con las variables que ya existen. La forma de tratar
stas se determina por el tipo_extraccin. Puede tener nicamente uno de los siguientes
valores:

EXTR_OVERWRITE
Si hay colisin, sobre-escribe la variable existente.

EXTR_SKIP
Si hay colisin, no sobre-escribe la variable existente.

EXTR_PREFIX_SAME
Si hay una colisin, aade el prefijo a la nueva variable.

EXTR_PREFIX_ALL
Aade el prefijo a todas las variables.

Si no se especifica tipo_extraccion, se asume que vale EXTR_OVERWRITE.

Ntese que el prefijo slo se necesita si tipo_extraccin vale EXTR_PREFIX_SAME o
EXTR_PREFIX_ALL.

extract() comprueba si cada clave es un nombre vlido de variable, y slo lo importa si
lo es.

Nota: N.T.: En el caso del idioma espaol, no valdra "ao" como nombre variable (pero
s como clave en una matriz cualquiera).

Un uso posible para extract sera importar en la tabla de smbolos las variables
contenidas en la matriz asociativa que devuelve wddx_deserialize() (que acta sobre
el contenido de un archivo XML).

Ejemplo de Extract()

ej80.php
<?
/* Suponemos que $matriz_var es una matriz devuelta por wddx_deserialize */
$tamao = "grande";
$matriz_var = array ("color" => "azul", "tamao" => "media", "forma" => "esfera");
extract ($matriz_var, EXTR_PREFIX_SAME, "wddx");
print "$color, $tamao, $forma, $wddx_tamao\n";
?>

El programa anterior producir:

azul, grande, esfera, media

La variable $tamao no fue sobre-escrita porque especificamos EXTR_PREFIX_SAME,
que provoc la creacin de $wddx_tamao. Si se hubiera especificado EXTR_SKIP,
$wddx_tamao ni siquiera habra sido creada.

EXTR_OVERWRITE habra provocado que $tamao tuviera el valor "media", y
EXTR_PREFIX_ALL habra provocado que aparecieran nuevas variables llamadas
$wddx_color, $wddx_tamao, y $wddx_forma.

Autor: Ing. Oscar R. Espeche

152
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

in_array(PHP 4 )

Devuelve true si un valor est en una matriz

bool in_array (mixto aguja, array pajar)

Busca la aguja en el pajar, y devuelve true si se encuentra y false en caso contrario.

Ejemplo de in_array()

ej81.php
<?
$os = array ("Mac", "NT", "Irix", "Linux");
if (in_array ("Irix", $os))
print "Encontrado Irix";
?>

Nota: Esta funcin fue aadida en el PHP 4.0.

key(PHP 3, PHP 4 )

Obtiene una clave de una matriz asociativa.

mixto key (array matriz)

key() devuelve el elemento ndice de la posicin actual en la matriz.

Vea tambin: current(), next()

krsort (PHP 3>= 3.0.13, PHP 4 >= 4.0b4)

Ordena una matriz por clave en orden inverso

int krsort (array matriz)

Ordena una matriz por clave en orden inverso, manteniendo las correlaciones clave a
dato. Esto es til principalmente en matrices asociativas.

Ejemplo de krsort()

$frutas = array ("d"=>"limn", "a"=>"naranja", "b"=>"pltano", "c"=>"manzana");
krsort ($frutas);
for (reset ($frutas); $clave = key ($frutas); next ($frutas)) { echo "frutas[$clave] =
".$frutas[$clave]."\n";
}

Este ejemplo mostrar: frutas[d] = limn frutas[c] = manzana frutas[b] = pltano
frutas[a] = naranja

Vea tambin: asort(), arsort(), ksort() sort(), y rsort().

ksort (PHP 3, PHP 4 )

Ordena una matriz por clave

int ksort (array matriz)

Autor: Ing. Oscar R. Espeche

153
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

Ordena una matriz por clave, manteniendo las correlaciones clave a dato. Esto es til
principalmente en matrices asociativas.

Ejemplo de ksort()

$frutas = array ( "d"=>"limn", "a"=>"naranj a", "b"=>"pltano",
"c"=>"manzana") ;
ksort ($frutas);
for (reset ($frutas); $clave = key ($frutas); next ($frutas)) { echo "frutas[$clave] =
".$frutas[$clave]."\n";
}

Este ejemplo mostrar: frutas[a] = naranja frutas[b] = pltano frutas[c] = manzana
frutas[d] = limn

Vea tambin: asort(), arsort(), sort(), y rsort().

list (unknown)

Asigna variables como si fueran una matriz

void list(...);

Como array(), esta no es realmente una funcin, sino una construccin del lenguaje.
list() se usa para asignar una lista de variables en una sola operacin.

Ejemplo de list()

<table>
<tr>
<th>Nombre empleado</th>
<th>Sueldo</th>
</tr>
<?php
$resultado = mysql_query("SELECT id, nombre, salario FROM empleados");
while (list($id, $nombre, $salario) = mysql_fetch_array($resultado)) {
print(" <tr>\n".
" <td><a href=\"info.php?id=$id\">$nombre</a></td>\n".
" <td>$salario</td>\n".
" </tr>\n");
}
?>
</table>

Vea tambin: each(), array().

next (PHP 3, PHP 4 )

Avanza el puntero interno de una matriz

mixto next (array matriz)

Devuelve el elemento de la matriz que ocupa el lugar siguiente al apuntado por el
puntero interno, o false si no hay ms elementos.

Autor: Ing. Oscar R. Espeche

154
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

next() se comporta como current(), con una diferencia. Avanza el puntero interno de
la matriz en una posicin antes de devolver el elemento. Eso significa que devuelve el
siguiente elemento de la matriz y que avanza el puntero interno en uno.

Si al avanzar se pasa del final de la lista de elementos, next() devuelve false.

Si la matriz contiene elementos vacos, esta funcin tambin devolver false para dichos
elementos.

Para recorrer adecuadamente una matriz que pueda contener elementos vacos, vea la
funcin each().

Vea tambin: current(), end() prev() y reset()

pos(PHP 3, PHP 4 )

Obtiene el elemento actual de una matriz

mixto pos (array matriz)

Este es un alias para current().

Vea tambin: end(), next(), prev() y reset().

prev(PHP 3, PHP 4 )

Rejuanina el puntero interno de una matriz

mixto prev (array matriz)

Devuelve el elemento de la matriz que est en la posicin anterior a la que apuntaba
previamente el puntero interno, o false si no hay ms elementos.

Si la matriz contiene elementos vacos, esta funcin tambin devolver false para dichos
elementos.

Para recorrer adecuadamente una matriz que puede contener elementos vacos, vea la
funcin each().

prev() se comporta igual que next(), excepto que rejuanina el puntero interno una
posicin en lugar de avanzarlo.
Vea tambin: current(), end() next() y reset()

rango (unknown)

Crea una matriz que contiene un rango de enteros.

array rango (int bajo, int alto)

rango() devuelve una matriz de enteros desde bajo hasta alto, ambos inclusive.
Vea un ejemplo de su uso en la funcin shuffle().

reset (PHP 3, PHP 4 )

Fija el puntero interno de una matriz a su primer elemento

mixto reset (array matriz)
Autor: Ing. Oscar R. Espeche

155
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP


reset() fija el puntero interno de la matriz a su primer elemento.

reset() devuelve el valor del primer elemento de la matriz.
Vea tambin: current(), each(), next(), prev(), y reset().

rsort (PHP 3, PHP 4 )

Ordena una matriz en orden inverso

void rsort (array matriz)

Esta funcin ordena una matriz en orden inverso (mayor a menor).

Ejemplo de rsort()

ej82.php
<?
$frutas = array ("limn", "naranja", "pltano", "manzana");
rsort ($frutas);
for (reset ($frutas); list ($pepe, $valor) = $fruta=each ($frutas); ) {
echo "frutas[$fruta[key]] = ", $valor,"<br>";
echo "frutas[$pepe]= ", $valor,"<br>";
echo "<p>";
}
echo "<p>";
print_r($frutas);
?>

Este ejemplo mostrar:

frutas[0] = pltano
frutas[0]= pltano
frutas[1] = naranja
frutas[1]= naranja
frutas[2] = manzana
frutas[2]= manzana
frutas[3] = limn
frutas[3]= limn
Array ( [0] => pltano [1] => naranja [2] => manzana [3] => limn )
Vea tambin: arsort(), asort(), ksort(), sort(), y usort().

shuffle (PHP 3>= 3.0.8, PHP 4 >= 4.0b4)

Mezcla una matriz

void shuffle (array matriz)

Esta funcin mezcla (cambia aleatoriamente el orden de los elementos de) una matriz.

Ejemplo de shuffle()
Autor: Ing. Oscar R. Espeche

156
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP


ej83.php
<?
$numeros = range (1,20);
srand (time());
shuffle ($numeros);
while (list(, $valor) = each ($numeros)) {
echo "$valor "."<br>";
}
?>

Vea tambin: arsort(), asort(), ksort(), rsort(), sort() y usort().

sizeof (PHP 3, PHP 4 )

Obtiene el nmero de elementos de una matriz

int sizeof (array matriz)

Devueve el nmero de elementos de la matriz.

Vea tambin: count()

sort (PHP 3, PHP 4 )

Ordena una matriz

void sort (array matriz)

Esta funcin ordena una matriz. Los elementos estarn ordenados de menor a mayor
cuando la funcin termine.

Ejemplo de sort()

$frutas = array ("limn", "naranja", "pltano", "manzana");
sort ($frutas);
for (reset ($frutas); $clave = key ($frutas); next ($frutas)) { echo "frutas[$clave] =
".$frutas[$clave]."\n";
}

Este ejemplo mostrar: frutas[0] = limn frutas[1] = manzana frutas[2] = naranja
frutas[3] = pltano.
Las frutas han sido ordenadas en orden alfabtico.

Vea tambin: arsort(), asort(), ksort(), rsort(), y usort().

uasort (PHP 3>= 3.0.4, PHP 4 )

Ordena una matriz mediante una funcin de comparacin definida por el usuario y
mantiene la asociacin de ndices.

void uasort (array matriz, function func_comparar).

Esta funcin ordena una matriz de modo que los ndices de la misma mantengan su
correlacin con los elementos a los que estn asociados. Esto se utiliza principalmente
para ordenar matrices asociativas en las que el orden de los elementos es importante.
La funcin de comparacin viene definida por el usuario.
Autor: Ing. Oscar R. Espeche

157
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP


uksort (PHP 3>= 3.0.4, PHP 4 )

Ordena una matriz por claves mediante una funcin definida por el usuario

void uksort (array matriz, function func_comparar)

Esta funcin ordenar las claves de una matriz utilizando una funcin de comparacin
suministrada por el usuario. Si la matriz a ordenar necesita utilizar un criterio poco
trivial, esta es la funcin que deber usar.

Ejemplo de uksort()

ej84.php
<?
function comparar ($a, $b) {
if ($a == $b) return 0;
return ($a > $b) ? -1 : 1;
}
$a = array (4 => "cuatro", 3 => "tres", 20 => "veinte", 10 => "diez");
uksort ($a, comparar);
while (list ($clave, $valor) = each ($a)) {
echo "$clave: $valor\n"."<br>";
}
?>

Este ejemplo mostrar:

20: veinte
10: diez
4: cuatro
3: tres

Vea tambin: arsort(), asort(), uasort(), ksort(), rsort(), y sort().

usort (PHP 3>= 3.0.3, PHP 4 )

Ordena una matriz por valores mediante una funcion definida por el usuario

void usort (array matriz, function func_comparar)

Esta funcin ordenar una matriz por sus valores utilizando una funcin suministrada por
el usuario. Si la matriz que desea ordenar necesita utilizar un criterio poco trivial, esta es
la funcin que deber usar.

La funcin de comparacin deber devolver un entero menor, igual, o mayor que cero, si
el primer argumento se considera respectivamente menor que, igual que, o mayor que
el segundo. Si dos miembros resultan ser iguales, su orden en la matriz ordenada ser
cualquiera.

Ejemplo de usort()

function cmp ($a, $b) {
if ($a == $b) return 0;
return ($a > $b) ? -1 : 1;
}
$a = array (3, 2, 5, 6, 1);
Autor: Ing. Oscar R. Espeche

158
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

usort ($a, cmp);
while (list ($clave, $valor) = each ($a)) {
echo "$clave: $valor\n";
}

Este ejemplo mostrar: 0: 6 1: 5 2: 3 3: 2 4: 1

Nota: Obviamente en este caso trivial la funcin rsort() habra sido ms apropiada.

Vea tambin: arsort(), asort(), ksort(), rsort() y sort().


Autor: Ing. Oscar R. Espeche

159
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

1.3.6 Variable Objetos
Un objeto es una instancia (personalizacin ) de una clase. Una clase es una coleccin de
variables y de funciones que acceden a esas variables. Las variables se conocen como
atributos o propiedes y las funciones como mtodos.
Inicializacin de Objetos
Para inicializar un objeto, se usa la sentencia new para instanciar el objeto a una variable.

ej85.php
<?
class Accion {
function hacer() {
echo "Mostrar algo";
}
}

$n = new Accion;
$n->hacer();
?>
Luego volveremos sobre el tema para mostrar como se trabaja con los objetos.
Autor: Ing. Oscar R. Espeche

160
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

1.4 Uso de las variables
PHP no requiere (o soporta) la declaracin explcita del tipo en la declaracin de variables; el
tipo de una variable se determina por el contexto en el que se usa esa variable. Esto quiere
decir que si se asigna un valor de cadena a la variable var, var se convierte en una cadena. Si
despus se asigna un valor entero a la variable var, se convierte en una variable entera.

Un ejemplo de conversin de tipo automtica en PHP es el operador suma '+'. Si cualquiera de
los operandos es un doble, entonces todos los operandos se evalan como dobles, y el
resultado ser un doble. En caso contrario, los operandos se interpretarn como enteros, y el
resultado ser tambin un entero. Ntese que esto NO cambia los tipos de los operandos
propiamente dichos; el nico cambio est en cmo se evalan los operandos.

ej86.php
<?
$algo = "0"; // $algo es una cadena (ASCII 48)
echo "\$algo==$algo; el tipo es " . gettype( $algo ) . "<br>";

$algo++; // $algo es la cadena "1" (ASCII 49)
echo "\$algo==$algo; el tipo es " . gettype( $algo ) . "<br>";

$algo += 1; // $algo ahora es un entero (2)
echo "\$algo==$algo; el tipo es " . gettype( $algo ) . "<br>";

$algo = $algo + 1.3; // $algo ahora es un doble (3.3)
echo "\$algo==$algo; el tipo es " . gettype( $algo ) . "<br>";

$algo = 5 + "10 Cerditos Pequeitos"; // $algo es entero (15)
echo "\$algo==$algo; el tipo es " . gettype( $algo ) . "<br>";

$algo = 5 + "10 Cerditos"; // $algo es entero (15)
echo "\$algo==$algo; el tipo es " . gettype( $algo ) . "<br>";
?>

Los ltimos dos ejemplos anteriores fueron aclarados en el tema de conversin de cadenas.
Si se desea obligar a que una variable sea evaluada con un tipo concreto, mire la seccin
Forzado de tipos. Si se desea cambiar el tipo de una variable, vea la funcin settype().
Nota: La posibilidad de una conversin automtica a array no est definida actualmente.
ej87.php
<?
$a = 1; // $a es un entero
$a[0] = "f"; // $a se debera conviertir en un array, en el que $a[0] vale "f"
echo $a;echo "<p>";
echo $a[0];echo "<p>";
?>
Aunque el ejemplo anterior puede parecer que claramente debera resultar en que $a se
convierta en un array, sin embargo resulta en el error:
Warning: Cannot use a scalar value as an array in D:\Archivos de
programa\Apache Group\Apache\htdocs\Ejemplos\PHP1\ej87.php on
Autor: Ing. Oscar R. Espeche

161
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

line3

Veamos el siguiente ejemplo:
ej88.php
<?
$a = "1"; // $a es una cadena
$a[0] = "f"; // Qu pasa con los ndices de las cadenas? Qu ocurre
echo $a; echo "<p>";
echo $a[0];echo "<p>";
?>
Dado que PHP soporta indexacin en las cadenas va offsets usando la misma sintaxis
que la indexacin de arrays, el ejemplo anterior nos conduce a un problema: debera
convertirse $a en un array cuyo primer elemento sea "f", o debera convertirse "f" en el
primer carcter de la cadena $a?
Por esta razn, tanto en PHP 3.0.12 como en PHP 4.0b3-RC4, el resultado de esta
conversin automtica se considera que no est definido. Los parches se estn
discutiendo, de todas formas.
Forzado de tipos
El forzado de tipos en PHP funciona como en C: el nombre del tipo deseado se escribe entre
parntesis antes de la variable a la que se pretende forzar.

$algo = 10; // $algo es un entero
$otro = (double) $algo; // $otro es un doble

Los forzados de tipo permitidos son:
(int), (integer) - fuerza a entero (integer)
(real), (double), (float) - fuerza a doble (double)
(string) - fuerza a cadena (string)
(array) - fuerza a array (array)
(object) - fuerza a objeto (object)
Ntese que las tabulaciones y espacios se permiten dentro de los parntesis, as que los
siguientes ejemplos son funcionalmente equivalentes:

$algo = (int) $otro;
$algo = ( int ) $otro;

Puede no ser obvio que ocurrir cuando se fuerce entre ciertos tipos. Por ejemplo, lo siguiente
debera ser tenido en cuenta.

Cuando se fuerza el cambio de una variable escalar o cadena, a un array, la variable se
convertir en el primer elemento del array:

$var = 'ciao';
Autor: Ing. Oscar R. Espeche

162
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

$arr = (array) $var;
echo $arr[0]; // produce la salida 'ciao'

Cuando se fuerza el tipo de una variable escalar o de una cadena a un objeto, la variable se
convertir en un atributo del objeto; el nombre del atributo ser 'scalar':

$var = 'ciao';
$obj = (object) $var;
echo $obj->scalar; // produce la salida 'ciao'

Nombres

En PHP las variables se representan como un signo de dlar seguido por el nombre de la
variable. El nombre de la variable es sensible a minsculas y maysculas.

$var = "Juan";
$Var = "Pedro";
echo "$var, $Var"; // produce la salida "Juan, Pedro"

Asignacin

En PHP3, las variables siempre se asignan por valor. Esto significa que cuando se asigna una
expresin a una variable, el valor ntegro de la expresin original se copia en la variable de
destino.

Esto quiere decir que, por ejemplo, despus e asignar el valor de una variable a otra, los
cambios que se efecten a una de esas variables no afectar a la otra.

PHP4 ofrece otra forma de asignar valores a las variables: asignar por referencia. Esto significa
que la nueva variable simplemente referencia (en otras palabras, "se convierte en un alias de"
o "apunta a") la variable original.

Los cambios a la nueva variable afectan a la original, y viceversa. Esto tambin significa que no
se produce una copia de valores; por tanto, la asignacin ocurre ms rpidamente. De
cualquier forma, cualquier incremento de velocidad se notar slo en los bucles crticos cuando
se asignen grandes arrays u objetos.

Para asignar por referencia, simplemente se antepone un ampersand (&) al comienzo de la
variable cuyo valor se est asignando (la variable fuente). Por ejemplo, el siguiente trozo de
cdigo produce la salida 'Mi nombre es Juan' dos veces:

<?php
$algo = 'Juan'; // Asigna el valor 'Juan' a $algo
$otro = &$algo; // Referencia $algo va $otro.
$otro = "Mi nombre es Pedro"; // Modifica $otro...
echo $algo; // $algo tambin se modifica.
echo $otro;
?>

Algo importante a tener en cuenta es que slo las variables con nombre pueden ser asignadas
por referencia.

<?php
Autor: Ing. Oscar R. Espeche

163
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

$algo = 25;
$otro = &$algo; // Esta es una asignacin vlida.
$otro = &(24 * 7); // Invlida; referencia una expresin sin nombre.

function test() {
return 25;
}

$otro = &test(); // Invlida.
?>

Variables predefinidas
PHP proporciona una gran cantidad de variables predefinidas a cualquier script que se ejecute.
De todas formas, muchas de esas variables no pueden estar completamente documentadas ya
que dependen de sobre qu servidor se est ejecutando, la versin y configuracin de dicho
servidor, y otros factores. Algunas de estas variables no estarn disponibles cuando se ejecute
PHP desde la lnea de comandos.

A pesar de estos factores, aqu tenemos una lista de variables predefinidas disponibles en una
instalacin por defecto de PHP 3 corriendo como modulo de un Apache 1.3.6 con su
configuracin tambin por defecto.
Para una lista de variables predefinidas (y muchas ms informacin til), por favor, vea (y use)
phpinfo().
Nota: Esta lista no es exhaustiva ni pretende serlo. Simplemente es una gua de
qu tipo de variables predefinidas se puede esperar tener disponibles en un
script.
Variables de Apache
Estas variables son creadas por el servidor web Apache. Si se est utilizando otro servidor web,
no hay garanta de que proporcione las mismas variables; pueden faltar algunas, o
proporcionar otras no listadas aqu. Dicho esto, tambin estn presentes las variables de la
especificacin CGI 1.1, por lo que tambin se deben tener en cuenta.

Tenga en cuenta que unas pocas, como mucho, de estas variables van a estar disponibles (o
simplemente tener sentido) si se ejecuta PHP desde la lnea de comandos.

La siguiente imagen es parte de la salida que se obtiene cuando se accede a una pgina PHP
que contiene la funcin phpinfo().


Autor: Ing. Oscar R. Espeche

164
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP



Autor: Ing. Oscar R. Espeche

165
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP



Autor: Ing. Oscar R. Espeche

166
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP




Autor: Ing. Oscar R. Espeche

167
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP



Verem s:



ariable es $_ENV[GATEWAY_INTERFACE] como se muestra en la imgen.
SERVE
re del equipo servidor en el que se est ejecutando el script. Si el script se est
jecutando en un servidor virtual, este ser el valor definido para dicho servidor virtual.
SERVE
na cadena de identificacin del servidor, que aparece en las cabeceras al responderse a

SERVE
ombre y revisin del protocolo a travs del que se solicit la pgina; p.ej. 'HTTP/1.0';
REQUE
u mtodo de peticin se us para acceder a la pgina; p.ej. 'GET', 'HEAD', 'POST',
QUERY
a cadena de la peticin, si la hubo, mediante la que se accedi a la pgina.
DOCU
del documento bajo el que se ejecuta el script, tal y como est definido
n el archivo de configuracin del servidor.
HTTP_
de la cabecera Accept: de la peticin actual, si hay alguna.
ET
_ENCODING
i la hay. Por
jemplo: 'gzip'.
HTTP_
una. Por
jemplo: 'en'.

os alguna de ella
GATEWAY_INTERFACE
Qu revisin de la especificacin CGI est usando el servidor; por ejemplo 'CGI/1.1'. La
v

R_NAME
El nomb
e

R_SOFTWARE
U
las peticiones.

R_PROTOCOL
N

ST_METHOD
Q
'PUT'.

_STRING
L

MENT_ROOT
El directorio raz
e

ACCEPT
Los contenidos

HTTP_ACCEPT_CHARS
Los contenidos de la cabecera Accept-Charset: de la peticin actual, si hay alguna. Por
ejemplo: 'iso-8859-1,*,utf-8'.

HTTP_ACCEPT
Los contenidos de la cabecera Accept-Encoding: de la peticin actual, s
e

ACCEPT_LANGUAGE
Los contenidos de la cabecera Accept-Language: de la peticin actual, si hay alg
e
Autor: Ing. Oscar R. Espeche

168
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

HTTP_
os contenidos de la cabecera Host: de la peticin actual, si hay alguna.
HTTP_
a direccin de la pgina (si la hay) desde la que el navegador salt a la pgina actual.
blece el navegador del usuario; no todos los navegadores lo hacen.
HTTP_
os contenidos de la cabecera User_Agent: de la peticin actual, si hay alguna. Indica el
se est utilizando para ver la pgina actual; p.ej. Mozilla/4.5 [en] (X11;
valor con get_browser()
ara adaptar la funcionalidad de la pgina a las posibilidades del navegador del usuario.
REMOT
REMOTE_PORT
ue se est utilizando en la mquina del usuario para comunicarse con el
SCRIP
a va de acceso absoluta del script que se est ejecutando.
SERVE
vo de
onfiguracin del servidor web. Si el script se est ejecutando en un servidor virtual,
nido para dicho servidor virtual.
SERVE
rto del equipo servidor que est usando el servidor web para la comunicacin.
ara configuraciones por defecto, ser '80'; al usar SSL, por ejemplo, cambiar al puerto
a definido como seguro para HTTP.
SERVE RE
na cadena que contiene la versin del servidor y el nombre del servidor virtual que es
as pginas generadas por el servidor, si est caracterstica est activa.
PATH_TRANSLATED
Va de acceso basada en el sistema de archivos- (no el directorio raz del documento-)
stin, despus de que el servidor haya hecho la conversin virtual-a-
real.
t actual. Es til para pginas que necesitan apuntar a
'/index.html'.

HTTP_CONNECTION
Los contenidos de la cabecera Connection: de la peticin actual, si hay alguna. Por
ejemplo: 'Keep-Alive'.

HOST
L

REFERER
L
Esto lo esta

USER_AGENT
L
navegador que
U; Linux 2.2.9 i586). Entre otras cosas, se puede usar este
p

E_ADDR
La direccin IP desde la que el usuario est viendo la pgina actual.

El puerto q
servidor web.

T_FILENAME
L

R_ADMIN
El valor que se haya dado a la directiva SERVER_ADMIN (en Apache) en el archi
c
ser el valor defi

R_PORT
El pue
P
que se hay

R_SIGNATU
U
aadida a l

del script en cue

SCRIPT_NAME
Contiene la va de acceso del scrip
s mismas.

REQUEST_URI
La URI que se di para acceder a esta pgina; por ejemplo,
Variables de entorno
Autor: Ing. Oscar R. Espeche

169
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

n el que
e est ejecutando el intrprete PHP.
Mucha
dado q
es imp
coman r una lista de las variables de entorno definidas.
Otras v
como u rete CGI.
PHP
Estas v

tos pasados al script. Cuando el script se ejecuta desde la lnea de
argc
e parmetros de la lnea de comandos pasados al script (si se
PHP_S
tando, relativo al directorio
z de los documentos. Si PHP se est ejecutando como intrprete de lnea de
HTTP_
de variables pasadas al script actual mediante cookies HTTP. Slo
est disponible si el seguimiento de variables ha sido activado mediante la directiva de
de variables pasadas al script actual mediante el mtodo HTTP GET.
Slo est disponible si --variable tracking-- ha sido activado mediante la directiva de
nfiguracin track_vars o la directiva <?php_track_vars?>.
TTP_POST_VARS
mediante el mtodo HTTP
ivado mediante la directiva
nustro tema enfocar a como reconocer cul es el
ontexto dentro del que la variable est definida. La mayor parte de las variables PHP slo
ste mbito simple tambin abarca los archivos incluidos y los
queridos. Por ejemplo:
Estas variables se importan en el espacio de nombres global de PHP desde el entorno e
s

s son proporcionadas por el intrprete de comandos en el que se est ejecutando PHP, y
ue a sistemas diferentes les gusta ejecutar diferentes tipos de intrpretes de comandos,
osible hacer una lista definitiva. Por favor, mire la documentacin de su intrprete de
dos para ve

ariables de entorno son las de CGI, que estn ah sin importar si PHP se est ejecutando
n mdulo del servidor o como un intrp
Variables de
ariables son creadas por el propio PHP.
argv :
Array de argumen

comandos, esto da un acceso, al estilo de C, a los parmetros pasados en lnea de
comandos. Cuando se le llama mediante el mtodo GET, contendr la cadena de la
peticin.
Contiene el nmero d
ejecuta desde la lnea de comandos).

ELF
El nombre del archivo que contiene el script que se esta ejecu
ra
comandos, esta variable no est disponible.

COOKIE_VARS

Un array asociativo
configuracin track_vars o la directiva <?php_track_vars?>.

HTTP_GET_VARS
Un array asociativo
co

H
Un array asociativo de variables pasadas al script actual
POST. Slo est disponible si --variable tracking-- ha sido act
de configuracin track_vars o la directiva <?php_track_vars?>.
Ambito de las variables
Abandonamos la variables predefinidas y
c
tienen un mbito simple. E
re

$a = 1;
include "b.inc";

Aqu

, la variable $a tiene existencia dentro del script incluido b.inc.
Autor: Ing. Oscar R. Espeche

170
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

a funcin est, por defecto, limitada al
mbito local de la funcin. Por ejemplo:
De todas formas, dentro de las funciones definidas por el usuario aparece un mbito local a la
funcin. Cualquier variables que se use dentro de un


$a = 1; /* mbito global */

Function Test () {
echo $a; /* referencia a una variable de mbito local */
}

Test ();

Este script no producir salida, ya que la rden echo utiliza una versin local de la variable $a,
gnado ningn valor en su mbito.
una pequea diferencia con el lenguaje C, en el que las variables
sponibles automticamente dentro de la funcin a menos que sean
reescritas por una definicin local. Esto puede causar algunos problemas, ya
te puede cambiar variables globales inadvertidamente.
as variables globales deben ser declaradas globales dentro de la funcin si van a ser
dentro de dicha funcin. Veamos un ejemplo:
a la que no se ha asi

P
g
uede que usted note que hay
lobales estn di
expresamente sob
que la gen

En PHP, l
utilizadas

$a = 1;
$b = 2;

Function Sum () {
global $a, $b;

$b = $a + $b;
}

Sum ();
echo $b;

El script anterior producir la salida "3". Al declarar $a y $b globales dentro de la funcin, todas
tales variables se referirn a la versin global. No hay lmite al nmero de
globales que se pueden manipular dentro de una funcin.
n segundo mtodo para acceder a las variables desde un mbito global es usando el array
las referencias a
variables

U
$GLOBALS propio de PHP3. El ejemplo anterior se puede reescribir as:

$a = 1;
$b = 2;

Function Sum () {
$GLOBALS["b"] = $GLOBALS["a"] + $GLOBALS["b"];
}

Sum ();
echo $b;

El array $GLOBALS es un array asociativo con el nombre de la variable global como clave y los
contenidos de dicha variable como el valor del elemento del array.
Autor: Ing. Oscar R. Espeche

171
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP


Otra caracterstica importante del mbito de las variables es la variable static. Una variable
esttica existe slo en el mbito local de la funcin, pero no pierde su valor cuando la ejecucin
del programa abandona este mbito. Consideremos el siguiente ejemplo:

Function Test () {
$a = 0;
echo $a;
$a++;
}

Esta funcin tiene poca utilidad ya que cada vez que es llamada asigna a $a el valor 0 y
representa un "0". La sentencia $a++, que incrementa la variable, no sirve para nada, ya que
n cuanto la funcin termina la variable $a desaparece. Para hacer una funcin til para contar, e
que no pierda la pista del valor actual del conteo, la variable $a debe declararse como esttica:

Function Test () {
static $a = 0;
echo $a;
$a++;
}

Ahora, cada v
incrementar.
ez que se llame a la funcin Test(), se representar el valor de $a y se
tambin proporcionan una forma de manejar funciones recursivas. Una
iva es la que se llama a s misma. Se debe tener cuidado al escribir una funcin
que puede ocurrir que se llame a s misma indefinidamente. Hay que asegurarse
tar una forma adecuada de terminar la recursin. La siguiente funcin cuenta
ursivamente hasta 10, usando la variable esttica $count para saber cundo parar:

Las variables
funcin recurs
estticas
recursiva, ya
de implemen
rec

Function Test () {
static $count = 0;

$count++;
echo $count;
if ($count < 10) {
Test ();
}
$count--;
}
Variables variables
ables variables. Dicho de otro modo, son
ombres de variables que se pueden establecer y usar dinmicamente. Una variable normal se
A veces es conveniente tener nombres de vari
n
establece con una sentencia como:

$a = "hola";

Una variable variable toma el valor de una variable y lo trata como el nombre de una variable.
uede usar como el nombre de una variable utilizando dos
ignos de dlar. p.ej.
En el ejemplo anterior, hola, se p
s

Autor: Ing. Oscar R. Espeche

172
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

$$a = "mundo";

En este momento se han definido y almacenado dos variables en el rbol de smbolos de PHP:
$a, que contiene "hola", y $hola, que contiene "mundo". Es ms, esta sentencia:

echo "$a ${$a}";

produce el mismo resultado que:

echo "$a $hola";

p.ej. ambas producen el resultado: hola mundo.

Para usar variables variables con arrays, hay que resolver un problema de ambigedad. Si se
escribe $$a[1] el intrprete necesita saber si nos referimos a utilizar $a[1] como una variable,
o si se pretenda utilizar $$a como variable y el ndice [1] como ndice de dicha variable. La
sintaxis para resolver esta ambiguedad es: ${$a[1]} para el primer caso y ${$a}[1] para el
segundo.
Autor: Ing. Oscar R. Espeche

173
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

1.4 Variables externas a PHP
Formularios HTML (GET y POST)
Cuando se enva un formulario a un script PHP, las variables de dicho formulario pasan a estar
automticamente disponibles en el script gracias a PHP. Por ejemplo, consideremos el siguiente
formulario:

<form action="algo.php3" method="post">
Name: <input type="text" name="name"><br>
<input type="submit">
</form>


Cuando es enviado, PHP crear la variable $name, que contendr lo que sea que se introdujo
en el campo Name: del formulario.

PHP tambin maneja arrays en el contexto de variables de formularios, pero slo en una
dimensin. Se puede, por ejemplo, agrupar juntas variables relacionadas, o usar esta
caracterstica para recuperar valores de un campo select input mltiple:

<form action="array.php" method="post">
Nombre: <input type="text" name="personal[nombre]"><br>
Email: <input type="text" name="personal[email]"><br>
Pais: <br>
<select multiple name="pais[]">
<option value="Argentina">Repblica Argentina
<option value="Francia">Francia
<option value="Italia">Italia
</select>
<input type="submit">
</form>


Si la configuracin de PHP de track_vars est activada, ya sea mediante la opcin de
configuracin track_vars o mediante la directiva <?php_track_vars?>, las variables
enviadas con los mtodos POST o GET tambin se encontrarn en los arrays asociativos
globales $HTTP_POST_VARS y $HTTP_GET_VARS.

En temas subsiguientes se ahondar la explicacin del uso de formularios.
Botn Submit como imgen
Cuando se enva un formulario, es posible usar una imagen en vez del botn submit estndar
con una etiqueta como:
<input type=image src="image.gif" name="sub">

Cuando el usuario hace click en cualquier parte de la imagen, el formulario que la acompaa se
transmitir al servidor con dos variables adicionales, sub_x y sub_y. Estas contienen las
coordenadas del click del usuario dentro de la imagen.

Los ms experimentados puede notar que los nombres de variable enviados por el navegador
contienen un guin en vez de un subrayado (guin bajo), pero PHP convierte el guin en
subrayado automticamente.
Autor: Ing. Oscar R. Espeche

174
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

Cookies HTTP
PHP soporta cookies de HTTP de forma transparente tal y como estn definidas en en las
Netscape's Spec. Las cookies son un mecanismo para almacenar datos en el navegador y as
rastrear o identificar a usuarios que vuelven.

Se pueden crear cookies usando la funcin SetCookie(). Las cookies son parte de la cabecera
HTTP, as que se debe llamar a la funcin SetCookie antes de que se enve cualquier salida al
navegador. Es la misma restriccin que para la funcin header(). Cualquier cookie que se
reciba procedente del cliente ser convertida automticamente en una variable de PHP como
con los datos en los mtodos GET y POST.

Si se quieren asignar mltiples valores a una sola cookie, basta con aadir [] al nombre de la
variable. Por ejemplo:

SetCookie ("MiCookie[]", "Probando", time()+3600);

Ntese que una cookie reemplazar a una cookie anterior que tuviese el mismo nombre en el
navegador a menos que el camino (path) o el dominio fuesen diferentes.
Variables de entorno
Como ya vimos PHP hace accesibles las variables de entorno automticamente tratndolas
como variables normales.

echo $HOME; /* Shows the HOME environment variable, if set. */

Dado que la informacin que llega va mecanismos GET, POST y Cookie crean automticamente
variables de PHP, algunas veces es mejor leer variables del entorno explcitamente para
asegurarse de que se est trabajando con la versin correcta. La funcin getenv() se puede
usar para ello. Tambin se puede asignar un valor a una variable de entorno con la funcin
putenv().
Puntos en los nombres de variables de entrada
Tpicamente, PHP no altera los nombres de las variables cuando se pasan a un script. De todas
formas, hay que notar que el punto no es un carcter vlido en el nombre de una variable PHP.
Por esta razn, mire esto:

$varname.ext; /* nombre de variable no vlido */

Lo que el intrprete ve es el nombre de una variable $varname, seguido por el operador de
concatenacin, y seguido por la prueba (es decir, una cadena sin entrecomillar que no coincide
con ninguna palabra clave o reservada conocida) 'ext'. Obviamente, no se pretenda que fuese
este el resultado.

Por esta razn, es importante hacer notar que PHP reemplazar automticamente cualquier
punto en los nombres de variables de entrada por guiones bajos (subrayados).
Autor: Ing. Oscar R. Espeche

175
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

Determinacin de los tipos de variables
Dado que PHP determina los tipos de las variables y los convierte (generalmente) segn
necesita, no siempre resulta obvio de qu tipo es una variable dada en un momento concreto.
PHP incluye varias funciones que descubren de qu tipo es una variable. Son gettype(),
is_long(), is_double(), is_string(), is_array(), y is_object().
Autor: Ing. Oscar R. Espeche

176
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

1.6 Constantes

Una constante es un identificador para expresar un valor simple. Como el nombre sugiere, este
valor no puede variar durante la ejecucin del script. (Las constantes especiales __FILE__ y
__LINE__ son una excepcin a esto, ya que realmente no lo son).

Una constante es sensible a maysculas por defecto. Por convencin, los identificadores de
constantes suelen declararse en maysculas.

El nombre de una constante sigue las mismas reglas que cualquier etiqueta en PHP. Un nombre
de constante vlido empieza con una letra o un caracter de subrayado, seguido por cualquier
nmero de letras, nmeros, o subrayados. Se podran expresar mediante la siguiente expresin
regular: [a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*
Nota: Para nuestros propsitos, entenderemos como letra los carcteres a-z, A-
Z, y los ASCII del 127 hasta el 255 (0x7f-0xff).
El alcanze de una constante es global, Es decir, es posible acceder a ellas sin preocuparse por el
mbito de alcance.
Definicin de constantes
Se puede definir una constante usando la funcin define(). Una vez definida, no puede ser
modificada ni eliminada .

Solo se puede definir como constantes valores escalares (boolean, integer, float y string ).

Para obtener el valor de una constante solo es necesario especificar su nombre. A diferencia de
las variables, no se tiene que especificar el prefijo $.

Tambin se puede utilizar la funcin constant(), para obtener el valor de una constante, en el
caso de que queramos expresarla de forma dinmica Usa la funcin get_defined_constants()
parar obtener una lista de todas las constantes definidas.
Nota: Las contantes y las variables (globales) se encuentran en un espacio de
nombres distinto. Esto implica que por ejemplo TRUE y $TRUE son diferentes.
Si usas una constante todavia no definida, PHP asume que ests refirindote al nombre de la
constante en si. Se lanzar un aviso si esto sucede. Usa la funcin defined() para comprobar
la existencia de dicha constante.

Estas son las diferencias entre constantes y variables:
Las constantes no son precedidas por un smbolo de dolar ($).
Las contantes solo pueden ser definidas usando la funcin define() , nunca por simple
asignacin.
Las constantes pueden ser definidas y accedidas sin tener en cuenta las reglas de
alcanze del mbito.
Las constantes no pueden ser redefinidas o eliminadas despues de establecerse.
Las constantes solo puede albergar valores escalares.
<?php
define("CONSTANT", "Hola mundo.");
echo CONSTANT; // la salida es: "Hola mundo."
echo Constant; // la salida es: Constant y un aviso de advertencia.
?>

Autor: Ing. Oscar R. Espeche

177
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

Constantes predefinidas
PHP ofrece un largo nmero de constantes predefinidas a cualquier script en ejecucin. Muchas
de estas constantes, sin embargo, son creadas por diferentes extensines, y solo estarn
presentes si dichas extensines estn disponibles, bien por carga dinmica o porque has sido
compiladas.
Autor: Ing. Oscar R. Espeche

178
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

1.7 Expresiones

Las expresiones son la piedra angular de PHP. En PHP, cas cualquier cosa que escribes es una
expresin. La forma ms simple y ajustada de definir una expresin es "cualquier cosa que
tiene un valor".

Las formas ms bsicas de expresiones son las constantes y las variables. Cuando escribes "$a
= 5", ests asignando '5' a $a. '5', obviamente, tiene el valor 5 o, en otras palabras '5' es una
expresin con el valor 5 (en este caso, '5' es una constante entera).

Despus de esta asignacin, esperars que el valor de $a sea 5 tambin, de manera que si
escribes $b = $a, esperas que se comporte igual que si escribieses $b = 5. En otras palabras,
$a es una expresin tambin con el valor 5. Si todo va bien, eso es exactamente lo que pasar.

Las funciones son un ejemplo algo ms complejo de expresiones. Por ejemplo, considera la
siguiente funcin:

function algo () {
return 5;
}

Suponiendo que ests familiarizado con el concepto de funciones (si no lo ests chale un
vistazo al captulo sobre funciones), asumirs que teclear $c = algo(); es esencialmente lo
mismo que escribir $c = 5;, y has acertado.

Las funciones son expresiones que valen el valor que retornan. Como algo() devuelve 5, el
valor de la expresin 'algo()' es 5. Normalmente las funciones no devuelven un valor fijo, sino
que suele ser calculado.

PHP es un lenguaje orientado a expresiones, en el sentido de que cas todo es una expresin.
Considera el ejemplo anterior '$a = 5'. Es sencillo ver que hay dos valores involucrados, el valor
de la constante entera '5', y el valor de $a que est siendo actualizado tambin a 5. Pero la
verdad es que hay un valor adicional implicado aqu, y es el valor de la propia asignacin. La
asignacin misma se evala al valor asignado, en este caso 5. En la prctica, quiere decir que
'$a = 5', independientemente de lo que hace, es una expresin con el valor 5. De esta manera,
escribir algo como '$b = ($a = 5)' es como escribir '$a = 5; $b = 5;' (un punto y coma marca
el final de una instruccin). Como las asignaciones se evalan de derecha a izquierda, puedes
escribir tambin '$b = $a = 5'.

Otro buen ejemplo de orientacin a expresiones es el pre y post incremento y decremento. Los
usuarios de PHP/FI 2 y los de otros muchos lenguajes les sonar la notacin variable++ y
variable--. Esto son las operaciones de incremento y decremento.

En PHP, como en C, hay dos tipos de incremento - pre-incremento y post-incremento. Ambos,
en esencia, incrementan la variable y el efecto en la variable es idntico. La diferencia radica en
el valor de la propia expresion incremento. El preincremento , escrito '++$variable', se evala
al valor incrementado (PHP incrementa la variable antes de leer su valor, de ah el nombre
'preincremento'). El postincremento, escrito '$variable++', se evala al valor original de
$variable antes de realizar el incremento (PHP incrementa la variable despus de leer su valor,
de ah el nombre 'postincremento').

Un tipo muy corriente de expresiones son las expresiones de comparacin. Estas expresiones se
evalan a 0 o 1, significando FALSO (FALSE) o CIERTO (TRUE), respectivamente. PHP soporta
> (mayor que), >= (mayor o igual que), == (igual que), != (distinto), < (menor que) y <=
(menor o igual que). Estas expresiones se usan frecuentemente dentro de la ejecucin
condicional como la instruccin if.
Autor: Ing. Oscar R. Espeche

179
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP


El ltimo tipo de expresiones que trataremos, es la combinacin operador-asignacin. Ya sabes
que si quieres incrementar $a en 1, basta con escribir '$a++' o ++$a'. Pero qu pasa si quieres
aadir ms de 1, por ejemplo 3? Podras escribir '$a++' mltiples veces, pero no es una forma
de hacerlo ni eficiente ni cmoda. Una prctica mucho ms corriente es escribir '$a = $a + 3'.
'$a + 3' se evala al valor de $a ms 3, y se asigna de nuevo a $a, lo que resulta en
incrementar $a en 3.

En PHP, como en otros lenguajes como C, puedes escribir esto de una forma ms concisa, que
con el tiempo ser ms clara y tambin fcil de entender. Aadir 3 al valor actual de $a se
puede escribir como '$a += 3'. Esto quiere decir exactamente "toma el valor de $a, smale 3, y
asignalo otra vez a $a". Adems de ser ms corto y claro, tambin resulta en una ejecucin
ms rpida. El valor de '$a += 3', como el valor de una asignacin normal y corriente, es el
valor asignado. Ten en cuenta que NO es 3, sino el valor combinado de $a ms 3 (se es el
valor asignado a $a). Cualquier operacin binaria puede ser usada en forma de operador-
asignacin, por ejemplo '$a -= 5' (restar 5 del valor de $a), '$b *= 7' (multiplicar el valor de $b
por 5), etc.

Hay otra expresin que puede parecer extraa si no la has visto en otros lenguaes, el operador
condicional ternario:

$expr1 ? $expr2 : $expr3

Si el valor de la primera subexpresin es verdadero (distinto de cero), entonces se evala la
segunda subexpresin, si no, se evala la tercera y se es el valor.

El siguiente ejemplo te ayudar a comprender un poco mejor el pre y post incremento y las
expresiones en general:

function double($i) {
return $i*2;
}
$b = $a = 5; /* asignar el valor cinco a las variables $a y $b */
$c = $a++; /* postincremento, asignar el valor original de $a (5) a $c */
$e = $d = ++$b; /* preincremento, asignar el valor incrementado de $b (6) a
$d y a $e */

/* en este punto, tanto $d como $e son iguales a 6 */

$f = double($d++); /* asignar el doble del valor de $d antes
del incremento, 2*6 = 12 a $f */
$g = double(++$e); /* asignar el doble del valor de $e despus
del incremento, 2*7 = 14 a $g */
$h = $g += 10; /* primero, $g es incrementado en 10 y termina valiendo 24.
despus el valor de la asignacin (24) se asigna a $h,
y $h tambin acaba valiendo 24. */

Una ltima cosa que vale la pena mencionar, es el valor booleano de las expresiones. En
muchas ocasones, principalmente en condicionales y bucles, no ests interesado en el valor
exacto de la expresin, sino nicamente si es CIERTA (TRUE) o FALSA (FALSE) (PHP no tiene
un tipo booleano especfico).

El valor de verdad de las expresiones en PHP se calcula de forma similar a perl. Cualquier valor
numrico distinto de cero es CIERTO (TRUE), cero es FALSO (FALSE). Fjate en que los valores
negativos son distinto de cero y considerados CIERTO (TRUE)! La cadena vaca y la cadena "0"
Autor: Ing. Oscar R. Espeche

180
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

son FALSO (FALSE); todas las dems cadenas son TRUE. Con los tipos no escalares (arrays y
objetos) - si el valor no contiene elementos se considera FALSO (FALSE), en caso contrario se
considera CIERTO (TRUE).

PHP te brinda una completa y potente implementacin de expresiones, y documentarla
enteramente est ms all del objetivo de ete manual. Los ejemplos anteriores, deberan darte
una buena idea de qu son las expresiones y cmo construir expresiones tiles. A lo largo del
resto del manual, escribiremos expr para indicar una expresin PHP vlida.
Autor: Ing. Oscar R. Espeche

181
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

1.8 Operadores

Operadores Aritmticos
Recuerdas la aritmtica bsica del colegio? Pues estos operadores funcionan exactamente
igual.

ejemplo nombre resultado
$a + $b Adicin Suma de $a y $b.
$a - $b Substraccin Diferencia entre $a y $b.
$a * $b Multiplicacin Producto de $a and $b.
$a / $b Divisin Cociente de $a entre $b.
$a % $b Mdulo Resto de $a dividido entre $b.
Operadores de Asignacin
El operador bsico de asignacin es "=". A primera vista podras pensar que es el operador de
comparacin "igual que". Pero no. Realmente significa que el operando de la izquierda toma el
valor de la expresin a la derecha, (esto es, "toma el valor de").

El valor de una expresin de asignacin es el propio valor asignado. Esto es, el valor de "$a =
3" es 3. Esto permite hacer cosas curiosas como:

$a = ($b = 4) + 5; // ahora $a es igual a 9, y $b vale 4.

Adems del operador bsico de asignacin, existen los "operadores combinados" para todas las
operaciones aritmticas y de cadenas que sean binarias. Este operador combinado te permite,
de una sola vez, usar una variable en una expresin y luego establecer el valor de esa variable
al resultado de la expresin. Por ejemplo:

$a = 3;
$a += 5; // establece $a a 8, como si hubisemos escrito: $a = $a + 5;
$b = "Hola ";
$b .= "Ah!"; // establece $b a "Hola Ah!", igual que si hicisemos $b = $b . "Ah!";

Fjate en que la asignacin realiza una nueva copia de la variable original (asignacin por
valor), por lo que cambios a la variable original no afectan a la copia. Esto puede tener inters
si necesitas copiar algo como un array con muchos elementos dentro de un bucle que se repita
muchas veces (cada vez se realizar una nueva copia del array). PHP4 soporta asignacin por
referencia, usando la sintaxis $var = &$otravar;, pero esto no es posible en PHP3. 'Asignacin
por referencia' quiere decir que ambas variables acabarn apuntando al mismo dato y que nada
es realmente copiado.
Operadores Bit a bit
Los operadores bit a bit te permiten activar o desactivar bits individuales de un entero.

ejemplo nombre resultado
$a & $b Y Se activan los bits que estn activos tanto en $a como $b.
$a | $b O
Se activan los bits que estn activos en $a o que lo estn en
$b.
$a ^ $b Xor ("o exclusiva")
Se activan los bits que estn activos en $a o en $b pero no en
ambos a la vez.
Autor: Ing. Oscar R. Espeche

182
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

ejemplo nombre resultado
~ $a No Se activan los bits que no estn activos en $a.
$a <<$b
Desplazamiento a la
izquierda
Desplaza los bits de $a, $b posiciones hacia la izquierda (por
aritmtica binaria, cada posicin desplazada equivale a
multiplicar por dos el valor de $a).
$a >> b
Desplazamiento a la
derecha
Desplaza los bits de $a, $b posiciones hacia la derecha (por
aritmtica binaria, cada posicin desplazada equivale a dividir
entre dos el valor de $a).
Operadores de Comparacin
Los operadores de comparacin, como su nombre indica, permiten comparar dos valores.

ejemplo nombre resultado
$a == $b Igualdad Cierto si $a es igual a $b.
$a === $b Identidad Cierto si $a es igual a $b y si son del mismo tipo (slo PHP4)
$a != $b Desigualdad Cierto si $a no es igual a $b.
$a < $b Menor que Cierto si $a es estrictamente menor que $b.
$a > $b Mayor que Cierto si $a es estrictamente mayor que $b.
$a <= $b Menor o igual que Cierto si $a es menor o igual que $b.
$a >= $b Mayor o igual que Cierto si $a es mayor o igual que $b.

El otro operador que ya vimos, es el operador condicional "?:" (o ternario), que funciona como
en C y otros muchos lenguajes.

(expr1) ? (expr2) : (expr3);

La expresin toma el valor expr2 si expr1 se evala a cierto, y expr3 si expr1 se evala a falso.
Operador de ejecucin
PHP soporta un operador de ejecucin: el apstrofe invertido (``). Fjate que no son
apostrofes normales! PHP intentar ejecutar la instruccin contenida dentro de los apstrofes
invertidos como si fuera un comando del shell; y su salida devuelta como el valor de esta
expresin (i.e., no tiene por qu ser simplemente volcada como salida; puede asignarse a una
variable).

$output = `ls -al`;
echo "<pre>$output</pre>";

Ver tambin system(), passthru(), exec(), popen(), y escapeshellcmd().
Operadores de Incremento/decremento
PHP soporta los operadores de predecremento y post incremento al estilo de C como ya vimos.

ejemplo nombre efecto
++$a Preincremento Incrementa $a en uno y despus devuelve $a.
$a++ Postincremento Devuelve $a y despus incrementa $a en uno.
--$a Predecremento Decrementa $a en uno y despus devuelve $a.
$a-- Postdecremento Devuelve $a y despus decrementa $a en uno.
Autor: Ing. Oscar R. Espeche

183
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP



He aqu un listado de ejemplo:
<?php
echo "<h3>Postincremento</h3>";
$a = 5;
echo "Debera ser 5: " . $a++ . "<br>\n";
echo "Debera ser 6: " . $a . "<br>\n";

echo "<h3>Preincremento</h3>";
$a = 5;
echo "Debera ser 6: " . ++$a . "<br>\n";
echo "Debera ser 6: " . $a . "<br>\n";

echo "<h3>Postdecremento</h3>";
$a = 5;
echo "Debera ser 5: " . $a-- . "<br>\n";
echo "Debera ser 4: " . $a . "<br>\n";

echo "<h3>Predecremento</h3>";
$a = 5;
echo "Debera ser 4: " . --$a . "<br>\n";
echo "Debera ser 4: " . $a . "<br>\n";
?>
Operadores Lgicos

ejemplo nombre resultado
$a and $b Y Cierto si tanto $a como $b son ciertos.
$a or $b O Cierto si $a o $b son ciertos.
$a xor $b O exclusiva Cierto si $a es cierto o $b es cierto, pero no ambos a la vez.
! $a Negacin Cierto si $a no es cierto.
$a && $b Y Cierto si tanto $a como $b son ciertos.
$a || $b O Cierto si $a o $b son ciertos.

La razn de las dos variaciones de "y" y "o" es que operan con distinta precedencia.
Precedencia de Operadores
La precedencia de operadores especifica cmo se agrupan las expresiones. Por ejemplo, en la
expresin 1 + 5 * 3, la respuesta es 16 y no 18 porque el operador de multiplicacin ("*") tiene
una mayor precedencia que el de adicin ("+").

La siguiente tabla lista la precedencia de operadores, indicndose primero los de menor
precedencia.

Asociatividad Operadores
izquierda ,
izquierda or
izquierda xor
izquierda and
derecha print
Autor: Ing. Oscar R. Espeche

184
rea Tecnolgica de Educacin Virtual UTN FRC SEU
PHP, MySQL y E-Commerce Introduccin al comercio Electrnico y PHP

Asociatividad Operadores
izquierda = += -= *= /= .= %= &= |= ^= ~= <<= >>=
izquierda ? :
izquierda ||
izquierda &&
izquierda |
izquierda ^
izquierda &
no asociativo == != ===
no asociativo < <= > >=
izquierda << >>
izquierda + - .
izquierda * / %
derecha ! ~ ++ -- (int) (double) (string) (array) (object) @
derecha [
no asociativo new
Operadores de Cadenas
Como ya vimos, hay dos operadores de cadenas. El primero es el operador de concatenacin
('.'), que devuelve el resultado de concatenar sus operandos izquierdo y derecho. El segundo es
el operador de concatenacin y asignacin ('.=').

$a = "Hola ";
$b = $a . "Mundo!"; // ahora $b contiene "Hola Mundo!"

$a = "Hola ";
$a .= "Mundo!"; // ahora $a contiene "Hola Mundo!"

Autor: Ing. Oscar R. Espeche

185

You might also like