Que es el lenguaje HTML - Universidad de Mendoza

Anuncio
Universidad de Mendoza
Teleinformática I – Lenguaje HTML
¿Qué es WWW?
El servicio Web o WWW es una forma de representar la información en Internet basada en páginas.
Una página WWW puede incluir información de diversas formas: texto, gráficos, sonido, video,
hipertexto. Un hipertexto es texto resaltado que el usuario puede activar para cargar otra página
WWW. La diferencia entre un documento hipertexto y un documento normal consiste en que el
hipertexto contiene, además de la información, una serie de enlaces o conexiones con otros
documentos relacionados, de manera que el lector puede pasar de un tema a otro y volver al
documento original en el momento en que le interese.
Las principales ventajas del servicio WWW son tres. Primera, que puede combinar texto y multimedia.
Segunda, que los hiperenlaces permiten cargar páginas de cualquier otro servidor conectado a Internet,
da igual que esté localizado en Argentina o en Australia. Y, tercera, que la creación de páginas WWW
es bastante sencilla mediante el lenguaje HTML.
¿Qué es HTML?
El HTML, HyperText Markup Language, es un lenguaje simple utilizado para crear documentos de
hipertexto para WWW. No es un lenguaje de descripción de página como Postcript; HTML no permite
definir de forma estricta la apariencia de una página, aunque una utilización algo desviada hace que se
utilice en ocasiones como un lenguaje de presentación. Además, la presentación de la página es muy
dependiente del navegador utilizado: el mismo documento no produce el mismo resultado en la
pantalla si se visualiza con un navegador en modo caracter, Internet Explorer o Netscape, o sea, el
HTML se limita a describir la estructura y el contenido de un documento, y no el formato de la página
y su apariencia.
Una de las claves del éxito de WWW, aparte de lo atractivo de su presentación es sin duda, su
organización y coherencia. Todos los documentos WWW comparten un mismo aspecto y una única
interfaz, lo que facilita enormemente su manejo por parte de cualquier persona. Esto es posible porque
el lenguaje HTML, en que están escritos los documentos, no solo permite establecer hiperenlaces entre
diferentes documentos, sino que es un "lenguaje de descripción de página" independiente de la
plataforma en que se utilice. Es decir un documento HTML contiene toda la información necesaria
sobre su aspecto y su interacción con el usuario, y es luego el navegador que utilicemos el responsable
de asegurar que el documento tenga un aspecto coherente, independientemente del tipo de estación de
trabajo desde donde estemos efectuando la consulta.
Su simplicidad es tal que no es necesario utilizar un editor particular. Su gran permisividad exige rigor
y atención en la estructura de documentos con el fin de que éstos se visualicen correctamente al
margen del contexto y el navegador utilizado.
Por tanto, como hemos visto, HTML es un lenguaje muy sencillo que nos permite preparar
documentos Web insertando en el texto de los mismos una serie de marcas (tags) que controlan los
diferentes aspectos de la presentación y comportamiento de sus elementos.
Para escribir HTML lo único que se necesita es un editor de texto ASCII, como el Bloc de notas de
Windows o en VI de UNIX. Las marcas o tags que controlan el comportamiento del documento son
fragmentos de texto encerrados entre los signos "mayor que" y "menor que" (<marca>). Existen
diferentes tipos de marcas: algunas controlan simplemente la presentación del texto del documento;
otras, la forma en que se incluirán en él imágenes; otras, finalmente, los hipervínculos. Para completar
el conjunto de herramientas básicas necesarias para escribir páginas HTML debemos contar con un
cliente WWW, tal como Internet Explorer, o Netscape, para probar el documento a medida que lo
1
Universidad de Mendoza
Teleinformática I – Lenguaje HTML
vamos desarrollando.
Las marcas funcionan muchas veces por parejas, una para indicar el inicio de enlace o formato, y otra
para señalar el final. La marca de inicio consiste en una letra o una palabra (por ejemplo, estas son
marcas de inicio: <B>, <TITLE>). La marca de final es la misma letra o palabra precedida por la barra
inclinada o "slash" (es decir,</B>, </TITLE>). Existen, no obstante, algunas marcas que no requieren
su pareja de cierre, como <BR> (que fuerza un salto de línea). Es importante señalar que las marcas,
en general pueden estar indistintamente en mayúsculas o en minúsculas.
Escribiendo un documento HTML
Un documento HTML comienza con la etiqueta <html>, y termina con </html>. Dentro del
documento (entre las etiquetas de principio y fin de html), hay dos zonas bien diferenciadas: el
encabezamiento, delimitado por <head> y </head>, que sirve para definir diversos valores válidos en
todo el documento; y el cuerpo, delimitado por <body> y </body>, donde reside la información del
documento.
La información almacenada en el encabezamiento no se muestra por pantalla, la única utilidad del
encabezamiento en la que nos detendremos es la directiva <title>, que permite especificar el título
de un documento HTML. Este título no forma parte del documento en sí: no aparece, por ejemplo, al
principio del documento una vez que este se presenta con un programa adecuado, sino que suele servir
como título de la ventana del programa que nos la muestra.
Elementos y Atributos
Elementos:
La declaración de elementos en HTML por lo general está compuesta por 3 partes:
Tag de inicio
Contenido
Tag de cierre
El nombre del elemento se escribe en el tag de inicio (con el formato <elemento>) y en el tag de
finalización (con el formato </elemento>). Existen algunos elementos que pueden omitir el tag de
inicio o el tag de finalización.
Pueden existir elementos anidados dentro de un documento, en este caso el pirmer tag de finalización
cierra al último tag que se abrió el segundo al penúltimo y así sucesivamente.
Atributos:
Los elementos pueden tener propiedades asociadas, esas propiedades las llamamos atributos, algunos
de ellos pueden tener valores y otros pueden ir sin valores.
Los atributos se colocan en el tag de inicio a continuación del nombre del elemento y se separan entre
ellos con espacios, en el caso de tener valores a continuación se coloca el signo igual (=) y entre
comillas simples o dobles el valor. Se pueden asignar valores sin las comillas, pero no es una práctica
muy recomendada. No es obligatorio definir todos los atributos en la definición de un elemento.
Secciones
General (Todos los documentos HTML deberían contener estos elementos)
Tipo de documento
2
Universidad de Mendoza
Teleinformática I – Lenguaje HTML
<HTML></HTML>
(Al principio y fin del documento)
Cabecera de página
<HEAD></HEAD>
(Información descriptiva, tal como el título)
Titulo de página
<TITLE></TITLE> (Debe ir en el encabezado)
Cuerpo de la página
<BODY></BODY>
(Cuerpo de la página)
Definición estructural (Apariencia controlada por las preferencias del navegador)
Encabezados
<H?></H?>
(Las especificaciones definen 6 niveles)
Alineación
<H? ALIGN=LEFT|CENTER|RIGHT></H?>
División
<DIV></DIV>
Alineación
<DIV ALIGN=LEFT|RIGHT|CENTER|JUSTIFY></DIV>
Contenido definido (4.0)
<SPAN></SPAN>
Enfasis
<EM></EM>
(Se muestra usualmente como itálico)
Enfasis fuerte
<STRONG></STRONG> (Se muestra usualmente como negrita)
Citación
<CITE></CITE>
(Se muestra usualmente como itálico)
Código fuente
<CODE></CODE>
(Para listar código fuente)
Ejemplo de salida
<SAMP></SAMP>
Entrada de teclado
<KBD></KBD>
Variable
<VAR></VAR>
Definición
<DFN></DFN>
Dirección del autor
<ADDRESS></ADDRESS>
Letras de tamaño grande
<BIG></BIG>
Letras de tamaño pequeña
<SMALL></SMALL>
Inserciones (4.0)
<INS></INS>
(Marca agregado en una nueva versión)
<INS DATETIME=":::"></INS> (Fecha de cambios)
<INS CITE="URL"></INS> (Puede ser usado para indicar una dirección que explique
cambios)
Borrado (4.0)
<DEL></DEL>
(Marca borrado en una nueva versión)
El resto se aplica igual que en Inserciones
3
Universidad de Mendoza
Teleinformática I – Lenguaje HTML
Acrónimo (4.0)
<ACRONYM></ACRONYM>
Abreviado (4.0)
<ABBR></ABBR>
Formato de presentación (el autor especifica la apariencia del texto)
Negrita
<B></B>
Itálico
<I></I>
Subrayado (4.0)
<U></U>
(no muy utilizado)
Linea al medio
<STRIKE></STRIKE> (no muy utilizado)
Linea al medio (4.0)
<S></S>
(no muy utilizado)
Subíndice
<SUB></SUB>
Superíndice
<SUP></SUP>
Máquina de escribir
<TT></TT>
(se muestra con fuente mono espacio)
Preformato
<PRE></PRE>
(muestra el texto tal cual es)
Ancho
<PRE WIDTH=?></PRE> (en caracteres)
Centrado
<CENTER></CENTER> (tanto para texto como para imágenes)
Parpadeo
<BLINK></BLINK>
Fuentes
Tamaño
<FONT SIZE=?></FONT>
(varía desde 1 a 7)
Cambio del tamaño del carácter
<FONT SIZE="+|-?"></FONT>
Color
<FONT COLOR="#$$$$$$"></FONT>
Tipo de fuente (4.0)
<FONT FACE="***"></FONT>
Tamaño de punto (Netscape 4)
<FONT POINT-SIZE=?></FONT>
Peso (Netscape 4)
<FONT WEIGHT=?></FONT>
Tamaño de fuente base (4.0)
<BASEFONT SIZE=?> (desde 1 a 7; por defecto es 3)
Marquesina (Internet Explorer)
<MARQUEE></MARQUEE>
Posicionamiento
4
Universidad de Mendoza
Teleinformática I – Lenguaje HTML
Multiple columna (Netscape 3)
<MULTICOL COLS=?></MULTICOL>
Separación de columna (Netscape 3)
<MULTICOL GUTTER=?></MULTICOL>
Ancho de columna (Netscape 3)
<MULTICOL WIDTH=?></MULTICOL>
Capas (Netscape 4)
Capa
<LAYER></LAYER>
Nombre
<LAYER ID="***"></LAYER>
Ubicación
<LAYER LEFT=? TOP=?></LAYER>
Ubicación relativa
<LAYER PAGEX=? PAGEY=?></LAYER>
Archivo orígen
<LAYER SRC="***"></LAYER>
Apilamiento
<LAYER Z-INDEX=?></LAYER>
Ubicación en la pila
<LAYER ABOVE="***" BELOW="***"></LAYER>
Dimensión
<LAYER HEIGHT=? WIDTH=?></LAYER>
Camino de recorte
<LAYER CLIP=,,,></LAYER>
Visibilidad
<LAYER VISIBILITY=SHOW|HIDDEN|INHERIT></LAYER>
Fondo
<LAYER BACKGROUND="$$$$$$"></LAYER>
Color
<LAYER BGCOLOR="$$$$$$"></LAYER>
Capa inmediata
<ILAYER></ILAYER> (Acepta los mismo atributos que LAYER)
Contenido alternativo
<NOLAYER></NOLAYER>
Vínculos, gráficos y sonidos
Vincular URI
<A HREF="URL"></A>
Vincular una localización en particular
<A HREF="URL#***"></A> (Si se encuentra en otro documento)
<A HREF="#***"></A> (Si se encuentra en el mismo documento)
Ventana destino (4.0)
<A HREF="URL" TARGET="***"></A>
Acciones haciendo click (4.0)
<A HREF="URL" ONCLICK="***"></A>
(Javascript)
Acciones de Mouse arriba de (4.0)
<A HREF="URL" ONMOUSEOVER="***"></A> (Javascript)
Acciones de Mouse saliendo (4.0)
<A HREF="URL" ONMOUSEOUT="***"></A> (Javascript)
5
Universidad de Mendoza
Teleinformática I – Lenguaje HTML
Email
Vincular un e-mail
<A HREF="mailto:@"></A>
Especificar subject
<A HREF="mailto:@?SUBJECT=***"></A> (use a real ?)
Definir localización (ancla)
<A NAME="***"></A>
Imágenes
Mostrar imagen
<IMG SRC="URL">
Alineación
<IMG SRC="URL" ALIGN=TOP|BOTTOM|MIDDLE|LEFT|RIGHT>
Alineación (Netscape 1)
<IMG SRC="URL" ALIGN=TEXTTOP|ABSMIDDLE|
BASELINE|ABSBOTTOM>
Alternativa de presentación
<IMG SRC="URL" ALT="***"> (si no se puede mostrar la imagen)
Dimensiones
<IMG SRC="URL" WIDTH=? HEIGHT=?>
(en pixels)
<IMG SRC="URL" WIDTH=% HEIGHT=%> (como porcentaje)
Borde
<IMG SRC="URL" BORDER=?>
(en pixels)
Mapas sobre imágenes
<IMG SRC="URL" ISMAP> (requiere un script)
<IMG SRC="URL" USEMAP="URL">
Mapas del lado del cliente
<MAP NAME="***"></MAP> (describe al mapa)
Sección del mapa
<AREA SHAPE="DEFAULT|RECT|CIRCLE|POLY"
COORDS=",,," HREF="URL"|NOHREF>
Clip de video (Internet explorer
<IMG DYNSRC="***" START="***" LOOP=?>
Sonido de fondo (Internet explorer)
<BGSOUND SRC="***" LOOP=?|INFINITE>
Objeto embebido (Netscape 2)
<EMBED SRC="URL"> (inserta un objeto en la página)
Tamaño de objeto
<EMBED SRC="URL" WIDTH=? HEIGHT=?>
Objeto (4.0)
<OBJECT></OBJECT>
Parámetros de objetos (4.0)
<PARAM>
Divisores
Párrafos
<P></P>
(El tag de cerrado es generalmente innecesario)
Alineación
<P ALIGN=LEFT|CENTER|RIGHT></P>
6
Universidad de Mendoza
Teleinformática I – Lenguaje HTML
Texto justificado
<P ALIGN=JUSTIFY></P>
Corte de línea
<BR>
(retorno de carro simple)
Regla horizontal
<HR>
Alineación
<HR ALIGN=LEFT|RIGHT|CENTER>
Grosor
<HR SIZE=?>
(en pixels)
Ancho
<HR WIDTH=?> (en pixels)
Ancho en porcentajes
<HR WIDTH="%"> (como porcentaje del ancho de la página)
Linea sólida
<HR NOSHADE>
(sin el efecto 3D)
Sin cortes de líneas (Netscape 1)
<NOBR></NOBR>
(previene el corte de lineas)
Listas (pueden anidarse entre si)
Lista sin órden
<UL><LI></UL>
(<LI> antes de cada item de la lista)
Compacta
<UL COMPACT></UL>
Tipo de viñeta
<UL TYPE=DISC|CIRCLE|SQUARE> (para la lista entera)
<LI TYPE=DISC|CIRCLE|SQUARE> (para este y los subsecuentes)
Lista ordenada
<OL><LI></OL>
(<LI> antes de cada item de la lista)
Compacta
<UL COMPACT></UL>
Tipo de numeración
<OL TYPE=A|a|I|i|1>
(para la lista entera)
<LI TYPE=A|a|I|i|1> (para este y los subsecuentes)
Numero de inicio
<OL START=?>
(para la lista entera)
<LI VALUE=?>
(para este y los subsecuentes)
Lista de definición
<DL><DT><DD></DL> (<DT> = término, <DD> = definición)
Compacta
<UL COMPACT></UL>
Lista de menú
<MENU><LI></MENU> (<LI> antes de cada item de la lista)
Compacta
<MENU COMPACT></MENU>
Lista de directorio
<DIR><LI></DIR> (<LI> antes de cada item de la lista)
Compacta
<DIR COMPACT></DIR>
7
Universidad de Mendoza
Teleinformática I – Lenguaje HTML
Fondo de pantalla y colores
Fondo azulejado
<BODY BACKGROUND="URL">
Marca de agua (Internet Explorer)
<BODY BGPROPERTIES="FIXED">
Color de fondo
<BODY BGCOLOR="#$$$$$$"> (el orden es rojo, verde y azul)
Color de texto
<BODY TEXT="#$$$$$$">
Color de vínculos
<BODY LINK="#$$$$$$">
Color de vínculos visitados
<BODY VLINK="#$$$$$$">
Color de vínculos activos
<BODY ALINK="#$$$$$$">
Caracteres especiales
Carácter especial
<
>
&
"
Marca registrada
Marca registrada
Copyright
Copyright
Espacio
 
&#?;
<
>
&
"
®
®
©
©
(donde ? es el código ISO 8859-1)
Información completa:
Lista completa en <http://www.uni-passau.de/%7Eramsch/iso8859-1.html>
Formularios (generalmente requiere un script en el servidor)
Un formulario es una parte del documento que contiene elementos comunes y además contiene
elementos especiales llamados controles, y, opcionalmente sus etiquetas.
Los usuarios generalmente completan o modifican los valores de los controles de un formulario para
luego enviárselo a un agente capaz de procesar esa información (WEB server, mail server, etc.). En la
declaración de un formulario hay un atributo que indica a que URL se le va a enviar los datos (atributo
ACTION), y solo puede ser enviado a través de un botón especial (tipo de botón SUBMIT).
En HTML un documento puede contener mas de un formulario a la vez, pero solo se enviará la
información del formulario al cual se le presiona el botón SUBMIT.
Definición de formulario
<FORM ACTION="URL" METHOD=GET|POST></FORM>
Subir archivos (4.0)
<FORM ENCTYPE="multipart/form-data"></FORM>
Campo de entrada de datos
<INPUT TYPE="TEXT| PASSWORD| CHECKBOX| RADIO| FILE| BUTTON| IMAGE|
HIDDEN| SUBMIT| RESET">
8
Universidad de Mendoza
Teleinformática I – Lenguaje HTML
Nombre del campo
<INPUT NAME="***">
Valor del campo
<INPUT VALUE="***">
Marcado?
<INPUT CHECKED> (checkboxes y radio boxes)
Tamaño del campo
<INPUT SIZE=?>
(en caracteres)
Largo máximo
<INPUT MAXLENGTH=?> (en caracteres)
Botón
<BUTTON></BUTTON>
Nombre (4.0)
<BUTTON NAME="***"></BUTTON>
Tipo de botón (4.0)
<BUTTON TYPE="SUBMIT|RESET|BUTTON"></BUTTON>
Valor por defecto
<BUTTON VALUE="***"></BUTTON>
Etiquetas (4.0)
<LABEL></LABEL>
Elemento etiquetado (4.0)
<LABEL FOR="***"></LABEL>
Lista de selección
<SELECT></SELECT>
Nombre de la lista
<SELECT NAME="***"></SELECT>
Número de opciones
<SELECT SIZE=?></SELECT>
Selección múltiple
<SELECT MULTIPLE> (se puede seleccionar mas de uno)
Opción (de las listas desplegables)
<OPTION>
(items que se pueden seleccionar)
Opción por defecto
<OPTION SELECTED>
Valor de la opción
<OPTION VALUE="***">
Grupo de opciones (4.0)
<OPTGROUP LABEL="***"></OPTGROUP>
Área de texto
Tamaño
<TEXTAREA ROWS=? COLS=?></TEXTAREA>
Nombre
<TEXTAREA NAME="***"></TEXTAREA>
Grupo de elementos
<FIELDSET></FIELDSET>
Leyenda (4.0)
<LEGEND></LEGEND> (texto para grupo de elementos)
Alineación
<LEGEND ALIGN="TOP|BOTTOM|LEFT|RIGHT"></LEGEND>
9
Universidad de Mendoza
Teleinformática I – Lenguaje HTML
Tablas
Definición de tablas
<TABLE></TABLE>
Alineación de la tabla (4.0)
<TABLE ALIGN=LEFT|RIGHT|CENTER>
Bordes
<TABLE BORDER></TABLE> (activado o desactivado)
<TABLE BORDER=?></TABLE> (asignar valor)
Espacio entre celda y tabla
<TABLE CELLSPACING=?>
Espacio entre celda y texto
<TABLE CELLPADDING=?>
Ancho de tabla
<TABLE WIDTH=?>
(en pixels)
Ancho en porcentaje
<TABLE WIDTH=%>
(porcentaje de la página)
Color de tabla (4.0)
<TABLE BGCOLOR="$$$$$$"></TABLE>
Contorno de la tabla (4.0)
<TABLE FRAME=VOID|ABOVE|BELOW|HSIDES|LHS|RHS|
VSIDES|BOX|BORDER></TABLE>
Reglas (4.0)
<TABLE RULES=NONE|GROUPS|ROWS|COLS|ALL></TABLE>
Color de borde (Internet explorer)
<TABLE BORDERCOLOR="$$$$$$"></TABLE>
Borde oscuro (Internet Explorer)
<TABLE BORDERCOLORDARK="$$$$$$"></TABLE>
Borde claro (Internet Explorer)
<TABLE BORDERCOLORLIGHT="$$$$$$"></TABLE>
Fila
<TR></TR>
Alineación
<TR ALIGN=LEFT|RIGHT|CENTER VALIGN=TOP|MIDDLE|BOTTOM>
Celda
<TD></TD>
(deben aparecer dentro de una fila)
Alineación
<TD ALIGN=LEFT|RIGHT|CENTER VALIGN=TOP|MIDDLE|BOTTOM>
Sin corte de línea
<TD NOWRAP>
Columnas a unir
<TD COLSPAN=?>
Filas a unir
<TD ROWSPAN=?>
Ancho deseado (4.0)
<TD WIDTH=?> (en pixels)
Porcentaje de ancho (Netscape 3)
<TD WIDTH="%"> (porcentaje de la tabla)
Color de celda (4.0)
<TD BGCOLOR="#$$$$$$">
Celdas de encabezado
10
Universidad de Mendoza
Teleinformática I – Lenguaje HTML
<TH></TH> (es igual que TD pero el texto es negrita y centrado)
Alineación
<TH ALIGN=LEFT|RIGHT|CENTER VALIGN=TOP|MIDDLE|BOTTOM>
Sin corte de línea
<TH NOWRAP>
Columnas a unir
<TH COLSPAN=?>
Filas a unir
<TH ROWSPAN=?>
Ancho deseado (4.0)
<TH WIDTH=?> (en pixels)
Porcentaje de ancho
<TH WIDTH="%"> (porcentaje de la tabla)
Color de celda
<TH BGCOLOR="#$$$$$$">
Cuerpo de tabla
<TBODY>
Pie de tabla (4.0)
<TFOOT></TFOOT> (debe venir antes de THEAD>
Encabezado de tabla (4.0)
<THEAD></THEAD>
Caption de la tabla
<CAPTION></CAPTION>
Alineación
<CAPTION ALIGN=TOP|BOTTOM|LEFT|RIGHT>
Columna (4.0)
<COL></COL>
(atributos de grupo de columnas)
Columnas unidas (4.0)
<COL SPAN=?></COL>
Ancho de columna (4.0)
<COL WIDTH=?></COL>
Porcentaje de ancho (4.0)
<COL WIDTH="%"></COL>
Grupo de columnas (4.0)
<COLGROUP></COLGROUP> (estructura de grupo de columnas)
Columnas agrupadas (4.0)
<COLGROUP SPAN=?></COLGROUP>
Ancho de grupo
<COLGROUP WIDTH=?></COLGROUP>
Porcentaje de ancho
<COLGROUP WIDTH="%"></COLGROUP>
Marcos (Frames). Define y manipula regiones especificas de la pantalla
Documento frame (4.0)
<FRAMESET></FRAMESET>
(en vez de <BODY>)
Alto de filas (4.0)
<FRAMESET ROWS=,,,></FRAMESET>
(pixels o %)
<FRAMESET ROWS=*></FRAMESET> (* = tamaño relativo)
Ancho de columnas (4.0)
<FRAMESET COLS=,,,></FRAMESET>
(pixels o %)
11
Universidad de Mendoza
Teleinformática I – Lenguaje HTML
<FRAMESET COLS=*></FRAMESET> (* = tamaño relativo)
Bordes (4.0)
<FRAMESET FRAMEBORDER="yes|no"></FRAMESET>
Ancho
<FRAMESET BORDER=?></FRAMESET>
Color
<FRAMESET BORDERCOLOR="#$$$$$$"></FRAMESET>
Espacio entre frames (Netscape 3)
<FRAMESET FRAMESPACING=?></FRAMESET>
Definición del frame (4.0)
<FRAME>
(contiene un frame individual)
Mostrar documento (4.0)
<FRAME SRC="URL">
Nombre (4.0)
<FRAME NAME="***"|_blank|_self|_parent|_top>
Ancho de margen (4.0)
<FRAME MARGINWIDTH=?> (márgenes izquierdo y derecho)
Alto de margen (4.0)
<FRAME MARGINHEIGHT=?> (márgenes superior e inferior)
Barras de desplazamiento? (4.0)
<FRAME SCROLLING="YES|NO|AUTO">
No modificar el tamaño del frame (4.0)
<FRAME NORESIZE>
Bordes (4.0)
<FRAME FRAMEBORDER="yes|no">
Color de bordes (4.0)
<FRAME BORDERCOLOR="#$$$$$$">
Contenidos sin frame
<NOFRAMES></NOFRAMES> (para navegadores sin frames)
Frames inmediatos (4.0)
<IFRAME></IFRAME> (tiene los mismos atributos que FRAME)
Dimensiones
<IFRAME WIDTH=? HEIGHT=?></IFRAME>
<IFRAME WIDTH="%" HEIGHT="%"></IFRAME>
Scripts y Java
Script
<SCRIPT></SCRIPT>
Ubicación
<SCRIPT SRC="URL"></SCRIPT>
Tipo
<SCRIPT TYPE="***"></SCRIPT>
Lenguaje
<SCRIPT LANGUAGE="***"></SCRIPT>
Otro contenido (4.0)
<NOSCRIPT></NOSCRIPT> (si los scripts no son soportados)
Applet
<APPLET></APPLET>
Nombre de archivo
<APPLET CODE="***">
12
Universidad de Mendoza
Teleinformática I – Lenguaje HTML
Parámetros
<APPLET PARAM NAME="***">
Ubicación
<APPLET CODEBASE="URL">
Identificación
<APPLET NAME="***">
(para referencias)
Texto altenativo
<APPLET ALT="***">
(para navegadores no Java)
Alineación
<APPLET ALIGN="LEFT|RIGHT|CENTER">
Tamaño
<APPLET WIDTH=? HEIGHT=?> (en pixels)
Espaciado
<APPLET HSPACE=? VSPACE=?> (en pixels)
Scripts en el servidor (Netscape 4)
<SERVER></SERVER>
Misceláneos
Comentarios
<!-- *** -->
(el navegador no lo muestra)
Prólogo
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
Dirección URL de este archivo
<BASE HREF="URL"> (debe incluirse en el header)
Nombre base de la ventana
<BASE TARGET="***">( debe incluirse en el header)
Relaciones
<LINK REV="***" REL="***" HREF="URL"> (en el header)
Archivo vinculado (4.0)
<LINK TYPE="***" SRC="***"></LINK>
Información Meta
<META>
(debe incluirse en el header)
Hojas de estilos
<STYLE></STYLE>
HTML - Tabla Cronológica
13

1986. Publicación de la ISO 8879 que presenta el Standard General Markup Language, origen
del HTML.

1989. Tim Berners-Lee, a la sazón en el Centro Europeo de Investigaciones Nucleares
presenta su artículo Information Management: A Proposal dedicándose de lleno al desarrollo
de un sistema que permitiera el acceso en línea de manera uniforme a la información
disponible en muchos recursos distintos, y que pudiese funcionar en máquinas que conectadas
por redes basadas en TCP/IP.

1990-1991. Tim Berners-Lee define el HTML como un subconjunto de SGML (Standard
Generalized Markup Language), que más tarde se llamará nivel 0; soporta encabezados, listas
y anclas. Se crea el nombre World Wide Web.
Universidad de Mendoza
Teleinformática I – Lenguaje HTML
14

1991. Tim Berners-Lee introduce el primer visor de HTML, LineMode, que trabaja en modo
texto y sólo en plataformas UNIX. El Centro Europeo de Investigaciones Nucleares realiza la
apertura del primer sitio con acceso público de World Wide Web el 17 de mayo
(http://info.cern.ch).

1992. Dan Connolly produce la primera Definición de Tipo de Documento (DTD) para el
lenguaje, llamada HTML 1.0, agregando a la definición original atributos para modificar el
estilo físico del texto. Se distribuye Viola, primer visor gráfico de Web y disponible sólo para
X.11.

1993. Un nuevo visor que soporta un mayor nivel, Lynx, es producido por la Universidad de
Kansas, si bien lee sólo texto. Aparece Mosaic, desarrollado por el Centro Nacional para
Aplicaciones de Supercomputadoras, es el primer visor de Web en entorno gráfico que se hace
disponible para computadoras personales, lo que lo hace inmediatamente popular. A fines de
año, comienzan a aparecer los primeros artículos sobre WWW en diarios y revistas de
circulación masiva. Tim Berners-Lee utiliza el trabajo del año anterior de Connolly para
presentar el borrador de la primera norma (RFC -Recommendation for Comments) de HTML
para Internet.

1994. La Universidad Técnica de Graz desarrolla un servidor y clientes con mayores
prestaciones para HTML, Hyper-G, que no tiene gran éxito. Cello, primer visor de HTML que
no requiere TCP/IP presentado por la Escuela de Leyes de la Universidad de Cornell. Dan
Connolly y Karen Olson Muldrow redefinen el HTML para el nivel 2.0, que ahora soporta
formularios. Un grupo de programadores que desarrollaran el Mosaic producen un nuevo visor
de World Wide Web, Netscape (también conocido como Mozilla), que tiene una amplia
aceptación entre los usuarios, pero que soporta elementos de programación que equivalen a
una degeneración del HTML (tamaños de letra, fondos). Se define un equivalente para los
modelos en tres dimensiones del HTML, el VRML (Virtual Reality Modeling Language), que
permite moverse dentro de los ambientes definidos. En este mismo año se realizan la Primera
y Segunda conferencias internacionales de WWW, en Ginebra y Chicago, respectivamente. Se
crea la W3 Organization.

1995. Dave S. Raggett (Hewlett-Packard, Inglaterra) comienza a compilar la normativa del
nuevo nivel del lenguaje, el HTML 3.0, cuya principal novedad es el soporte de tablas.
Microsoft produce su primer visor de Internet, el cual también utiliza elementos de HTML
degenerados. Una nueva versión de Netscape, Navigator 2.0, agrega soporte de encuadres. Sun
Microsystems produce el primer visor de World Wide Web con soporte de un lenguaje de
programación, HotJava. Se celebran la Tercera y Cuarta conferencias internacionales de
WWW, en Boston y Darmstadt respectivamente, y la conferencia de WWW para Asia y el
Pacífico en Wagga-Wagga..

1996. Netscape Communications y Microsoft presentan las nuevas versiones de sus visores
que soportan gran parte del nivel de HTML 3.0. Aparecen visores no comerciales que
implementan la norma completa de HTML 3.0. Se formaliza un nuevo nivel para la
modelación en tres dimensiones, VRML 3.0, que permite interactuar con los objetos definidos.
Se celebra la Quinta conferencia internacional de WWW en Rocquencourt.

1997. D. Raggett presenta, en enero, la versión normalizada del 3.2. En julio, aparece la
versión 4.0, experimental.

1998. HTML 4.0.
Universidad de Mendoza
Teleinformática I – Lenguaje PHP
¿Que es PHP?
Es un lenguaje de scripts embebido dentro del lenguaje HTML. PHP fue creado por Rasmus Lerdorf
en 1994 con la idea de mejorar las prestaciones que hasta ese momento brindaba la WWW, en un
comienzo se lo llamaba Personal Home Pages Tools. En un principio era un lenguaje muy limitado y
solo parseaba unos cuantos macros, y funciones básicas. Posteriormente le agrego un interprete y así
surgió el PHP FI versión 2 (tenía soporte para la base de datos mSQL). Luego Zeev Suraski y Andi
Gutmans se unieron al equipo y re escribieron el parser surgiendo la versión 3. La Ultima versión (la
4) cuenta con el motor de de scripts de Zend, haciéndolo más potente y rápido.
Tipo de lenguaje
Interpretado o compilado
Scripts del lado del cliente o del servidor
Orientado a objetos o no orientado a objetos
Principales características del lenguaje del Lenguaje
Permite hacer debug (con productos comerciales).
Se puede compilar a código intermedio (con productos comerciales), lo que lo hace
más rápido e inviolable.
No permite que el usuario final pueda ver el código fuente una vez ejecutada la
aplicación, pero el código fuente queda en el servidor, por lo que el administrador del
sistema si tiene acceso.
Se puede utilizar con clientes livianos y universales.
Las actualizaciones en el sistema quedan a disposición automáticamente para todos
los usuarios.
Soporte para múltiples bases de datos (aproximadamente 21).
Se puede instalar en múltiples plataformas (Unix, Linux, OS/2, Windows).
Esta muy bien amalgamado con Apache.
Alta curva de aprendizaje del lenguaje, sobre todo para los programadores del
lenguaje C.
Es de libre distribución.
Ampliamente conocido.
Gran cantidad de funciones, lo que lo hace muy potente.
Soporta orientación a objetos.
Como se instala en apache
Primero se instala apache –la instalación depende de la plataforma donde se lo instales -, luego se
deben modificar los siguientes parámetros del archivo httpd.conf
ServerRoot "C:/Archivos de programa/Apache Group/Apache" Donde esta instalado el servidor.
ServerName localhost
Nombre del server.
DocumentRoot "C:/Archivos …. /Apache/htdocs"
Directorio principal de archivos.
DirectoryIndex index.html
Archivo por defecto del servidor.
Una vez que se haya modificado los datos se agrega el soporte para PHP
ScriptAlias /php/ "C:/Archivos de programa/Apache Group/php/"
Action php3-script /php/php.exe
AddHandler php3-script .php3 .html .htm .phtml
Entorno de desarrollo, ejecución, server y debugger
Desarrollo: Editor común o editor de html (FrontPage, GoLive, HomeSite)
15
Universidad de Mendoza
Teleinformática I – Lenguaje PHP
Ejecucion: Cliente de HTML (Netscape, Internet Explorer)
Server: IIS, apache
Debugger: www.zend.com
Como se agregan scripts de PHP en HTML
Formas de incluir codigo PHP:
<script languaje="PHP"> ......... </script>
<?PHP ..... ?> Esta es la forma estandar
<? ..... ?>
Pautas generales del PHP
comentarios de una línea y de varias
// comentarios de una línea
/* comentario de varias líneas */
Fin de sentencias
Pueden haber casos en que una sentencia con texto tenga varios renglones la
delimitación debe hacerse entre comillas y luego finalizar con ;
; fin de líneas
Salida por pantalla
echo variable;
echo “string”;
16
Universidad de Mendoza
Teleinformática I – Tipos de datos primitivos
Tipos de datos Primitivos
¿Cómo son las variables en PHP?
Las variables se definen con el signo $ adelante del nombre de la variable, por ejemplo:
$variable = 1;
El nombre de variables puede tener cualquier largo y debe comenzar con una letra o el guión bajo
(underscore), seguido de cualquier letra de la a-z o A-Z, guión bajo, carácter ascii desde 127 a 255, o
un número. Las variables son case sensitive.
Tipos de datos primitivos
Números enteros (integer)
La definición de los números enteros depende de la plataforma donde se ejecuta el interprete PHP,
generalmente es un número de 32 bits con signo.
Formas de declarar números enteros:
$numero = 100;
$numero = -100;
$numero = o100;
$numero = 0x100;
// número 100 positivo
// número 100 negativo
//64 en decimal (octal 100)
//256 en decimal (hexadecimal 100)
Números flotantes (double)
El tamaño de los números flotantes depende de la plataforma en que se ejecuta el PHP pero por lo
general el número máximo aproximado es 1.8e208 con una precisión de 14 cifras decimales (64 bits)
La forma de definir los números flotantes son:
$numero = 1.234;
$número = 1.2e3;
Hay que tener en cuenta que algunos números no pueden ser convertidos a números binarios sin evitar
la perdida de precisión y esa perdida de precisión puede generar errores no esperados.
Cadenas (strings)
Los strings pueden ser definidos por dos tipos de delimitadores:
Comilla doble: $cadena = “esta es una cadena”;
Comilla simple:
$cadena = ‘esta es una cadena’;
Las variables que están entre comillas dobles son evaluadas (sujeto a ciertas restricciones), el símbolo
de escape que se utiliza es la barra invertida “\”. Los caracteres que se permiten escapar son los
siguientes:
\n
Retorno de carro
\r
Avance de línea
\t
Tabulador
\\
barra invertida \
1
Universidad de Mendoza
Teleinformática I – Tipos de datos primitivos
\$
\”
signo $
comillas dobles
En el caso de la definición de strings con comillas simples, no se evalúan las variables y los únicos
caracteres que se pueden escapar son los siguientes \’ y \\
Existe otra forma de delimitar strings que es el uso de la sintaxis “here doc”. La forma en que se
define es la siguiente:
"«<" más un identificador proporcionado por nosotros, al finalizar se termina con el mismo
delimitador y ;.
Por ejemplo:
$str = «<CADENA
Hola, buenos dias
CADENA;
El comportamiento de la sintaxis “here doc” es similar a la definición de string con comillas dobles.
Los strings se concatenan con el punto (.), no con el más (+).
Los caracteres dentro de un string pueden ser accedidos tratándolos como un arreglo indexado
numéricamente.
Conversión de strings
$numero = 1 + ”2” ;
$numero = 1 + “1.1e3”;
$numero = 1 + “texto + 1”;
$numero = 1 + “texto”;
$numero = 1 + “10 años”;
$numero = “10 años” + 1 ;
$numero = “10 años” + 1.0 ;
// igual a 3
// igual a 1101
// igual a 1
// igual a 1
// igual a 11
// igual a 11
// igual a 11
Comportamiento de variables (Type Juggling)
PHP no requiere ni soporta definición explícita en la declaración de variables. El tipo de variable
depende del contexto en el que se la usa. Si se le asigna a una variable un número entero entonces esa
variable tendrá el tipo entero, pero si se le asigna a continuación a la misma variable un string
entonces dejara de ser un entero para ser un string.
Ejemplos de cambios de variables
$variable = “0”;
$variable++;
$variable = $variable + 1;
$variable = $variable + 1.3;
$variable = 1 + “10 años”;
es un string (“0”)
es un string (“1”)
es un entero (2)
es un flotante (3.3)
es un entero (11)
Forzado de variables (Type Casting)
El forzado de variables consiste en forzar un tipo dado de una variable, independientemente de la
2
Universidad de Mendoza
Teleinformática I – Tipos de datos primitivos
operación que se esté realizando.
Para realizar el forzado de variables se indica entre paréntesis el tipo antes de la variable. El siguiente
ejemplo fuerza una variable para que sea un número flotante:
$entero = 200;
$flotante = (int) $entero;
Los tipos válidos de forzados son los siguientes:
(int), (integer) – fuerza a entero
(real), (float), (double) – fuerza a double
(string) – fuerza a string
(array) – fuerza a arreglo
(object) – fuerza a objeto
Cuando se fuerza una variable a un objeto la variable quedará almacenada en el atributo “scalar” del
objeto, cuando se transforma a arreglo el valor será el primer elemento del arreglo.
3
Universidad de Mendoza
Teleinformática I - Variables
Variables
Fundamentos
Las variables se definen con el signo $ adelante del nombre de la variable, por ejemplo:
$variable = 1;
El nombre de variables puede tener cualquier largo y debe comenzar con una letra o el guión bajo
(underscore), seguido de cualquier letra de la a-z o A-Z, guión bajo, carácter ascii desde 127 a 255, o
un número. Las variables son case sensitive.
Asignación de variables
En la versión 3 de PHP se asignan las variables solamente por valor, esto quiere decir que si asigno
una variable por valor
$a=4; $b=$a; $b=5;
al cambiar el valor de alguna de las dos variable no va a afectar a la otra.
PHP 4 ofrece otro modo de asignar variables, este modo se llama asignación de variables por
referencia. De esta forma la nueva variable hace referencia a la variable vieja, en otras palabras se
convierte en un “alias de” o “apunta a” la otra variable. Cualquier cambio que haga a cualquiera de las
dos variables, va a repercutir en la otra.
El modo de asignar variables por referencia es anteponer el carácter & a la variable cuando se está
haciendo la asignación.
$b=&$a;
Algo importante de destacar es que solo se puede asignar variables por referencia a variables
declaradas, no se puede hacer sobre funciones, ni asignaciones de números u operaciones matemáticas.
$variable = &(45+3); Incorrecto
$variable = &5;
Incorrecto
$variable = &funcion();
Incorrecto
Variables predefinidas
PHP nos proporciona una gran cantidad de variables predefinidas, pero hay que tener en cuenta que
existen algunas variables que dependen del entorno donde se ejecuta el PHP.
Variables de Apache
Estas variables son creadas por el servidor web Apache, si se utiliza un servidor web distinto al apache
no hay garantía de que estas variables estén disponibles, puede que algunas no existan o que hayan
otras nuevas.
SERVER_NAME: es el nombre del host donde se está ejecutando el script de PHP. Si el
script se está ejecutando en un host virtual, será el nombre del servidor virtual.
SERVER_PROTOCOL: Es el nombre y la versión del protocolo con el cual se requirió la
página por ejemplo ’HTTP/1.0’
REQUEST_METHOD: Cual fue el método con el que se accedió la página, por ejemplo
’GET’, ’HEAD’, ’POST’, ’PUT’.
HTTP_REFERER: La dirección de la página – si existiera- de la cual fue referida la página
1
Universidad de Mendoza
Teleinformática I - Variables
actual en el navegador, esta se coloca por el navegador del usuario, no todos los navegadores
lo hacen.
REMOTE_ADDR: es la dirección IP desde donde se está viendo la página actual.
REMOTE_PORT: es el puerto IP desde donde se está viendo la página actual.
SERVER_PORT: el puerto IP que utiliza el servidor WEB
REQUEST_URI: es la URI que fue dado para poder acceder a la página actual por ejemplo
’/index.html’.
Variables de entorno
Estas variables se importan al espacio de nombres global del PHP desde el ambiente donde se ejecuta
el parser de PHP. Muchas de ellas son provistas por el shell donde se está ejecutando el PHP, como
existen diferentes tipos de shell es prácticamente imposible listar las variables de entorno.
Variables de PHP
Estas variables son creadas por el mismo PHP.
argv: Es un arreglo de argumentos que han sido pasados al script. cuando se llama al PHP
desde la linea de comandos, nos da un estilo similar al C para acceder a los datos pasados al
script. Cuando se lo llama a través del método GET, este contendrá el string de petición.
argc: si se lo ejecuta desde la linea de comandos, contendrá el número de parámetros que se le
enviaron al script.
PHP_SELF: Indica el nombre del script que se está ejecutando actualmente, se presenta en
forma relativa al documento raíz, si se esta ejecutando desde la linea de comandos la variable
no está disponible.
HTTP_COOKIE_VARS: es un arreglo asociativo de variables pasado al script actual a través
de cookies HTTP.
HTTP_GET_VARS: es un arreglo asociativo de variables pasado as script actual a través del
método HTTP GET.
HTTP_POST_VARS: es un arreglo asociativo de variables pasado as script actual a través del
método HTTP POST.
HTTP_POST_FILES: es un arreglo asociativo de variables que contiene información a cerca
de archivos subidos al servidor a través del método HTTP_POST
HTTP_ENV_VARS: es un arreglo asociativo de variables pasadas al script actual a traves del
entorno pariente
HTTP_SERVER_VARS: es un arreglo asociativo de variables pasado as script actual a través
del servidor HTTP, estas variables son análogas a las variables de entorno previamente
mencionado.
Ambito de las variables
El ámbito de las variables está determinado por el contexto donde se han definido. La mayor parte de
las variables tienen un ámbito simple. Este ámbito simple también abarca a los archivos incluidos y
requeridos.
$var = 1;
include(“archivo.php3”);
Function probar()
{
echo $var;
2
Universidad de Mendoza
Teleinformática I - Variables
}
probar();
echo $var;
En este script se define la variable $var, a diferencia del lenguaje C – donde las variables globales
están disponibles dentro de las funciones- la variable $var no estará disponible dentro de la función
probar(), la función hace referencia a la variable $var que es local a la función, para hacer que las
variables globales se puedan acceder desde adentro de una función se deberá hacer lo siguiente:
Function probar()
{
global $var;
$var = 4;
}
echo $var;
global
//el resultado por pantalla va a ser 4 ya que se hicieron cambios sobre la variable
Otra forma de acceder a las variables globales dentro de una función es:
Function probar()
{
echo $GLOBALS[“var”];
}
La variable $GLOBALS es un arreglo asociativo cuyas claves son los nombres de las variables
globales.
Cuando se crean las variables dentro de un ámbito se asigna una porción de la memoria del sistema
para almacenar el valor de la misma, al abandonar o salir de ese ámbito la variable se “destruye” y se
libera la memoria asignada, otra característica del ámbito de variables es el modificador static, este
modificador hace que cuando se salga del contexto en que se creó la variable no se “destruya” y pueda
ser utilizada la próxima vez que se trabaje dentro de ese ámbito (generalmente en el llamado a
funciones).
Por ejemplo:
Function probar()
{
static $var=0;
$var++;
}
Esta función inicializará la variable $var en cero y luego conservará el valor que vaya tomando a
medida que se ejecuta la función.
Variables variables
Existen ocasiones en que es muy útil tener variables de nombres variables. Dicho de otro modo, son
nombres de variables que se pueden establecer y usar dinámicamente.
3
Universidad de Mendoza
Teleinformática I - Variables
Suponiendo que se han definido las siguientes variables:
$variar = “valor”;
$valor = “auto”;
$color = “rojo”;
Para utilizar variables variables se utiliza el signo pesos ($) delante de la variable.
echo $variar; //produce como salida: valor
echo $valor;
//produce como salida: auto
echo $$variar; //produce como salida: auto
En el tercer caso se utilizó una variable variable, como $nombre tiene como dato “valor” hacer
$$nombre equivale a hacer $valor. Por ende, es evidente que $variable es el nombre de la variable;
Si se asignara a $variar = “color” cuando se haga
echo $$variar; dará como resultado “rojo”
Para usar variables variables con arreglos, hay que resolver un problema de ambigüedad. Si se escribe
$$a[1] el intérprete necesita saber si nos referimos a utilizar $a[1] como una variable, o si se pretendía
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.
Variables externas a PHP
Formularios HTML (Métodos GET y POST)
Cuando se envía un formulario a un script de PHP todas los objetos del formulario automáticamente
pasan a ser variables en el script de PHP.
Se puede enviar arreglos desde HTML a PHP de la siguiente forma:
<form action=”siguiente.php3” method=”post”>
<input type=”text” name=”direccion[calle]”>
<input type=”text” name=”direccion[nro]”>
<input type=”submit”>
</form>
En PHP versión 3 se pueden trabajar arreglos unidimensionales, en el caso del PHP 4 no existe esa
restricción.
HTTP Cookies
Las cookies son un mecanismo de almacenamiento de datos en el cliente remoto, y de esa forma poder
realizar diversos controles. PHP provee una forma de asignar cookies a través de la función SetCookie.
Dado que las cookies son parte de del encabezado del HTTP las llamadas a la función SetCookie
deben hacerse antes de enviar cualquier dato al navegador. Esta es la misma restricción que para la
función header(). Las cookies que se reciben son transformadas automáticamente a variables en el
PHP.
4
Universidad de Mendoza
Teleinformática I - Variables
Variables de entorno
Puntos en los nombres de variables
Como el punto es un carácter que se utiliza para concatenar cadenas, todos los puntos que vienen con
variables serán transformadas a guión bajo.
Determinando el tipo de variable
PHP convierte los datos automáticamente al tipo que más le conviene según la operación que se está
utilizando. Algunas veces para el usuario no es tan obvio de que tipo de dato se trata, para ello PHP
incluye las siguientes funciones para poder determinar el tipo de dato:
gettype()
is_long()
is_double()
is_string()
is_array()
is_object()
5
Universidad de Mendoza
Teleinformática I - Constantes
Constantes
PHP define varias constantes y además proporciona un mecanismo para definir más constantes en
tiempo de ejecución. Las constantes son similares a las variables, pero se diferencian en ciertos
puntos:
Para declararlas se debe utilizar la función define().
Una vez que se ha definido no puede cambiarse el valor originalmente asignado.
Las constantes no tienen el signo $ precediendolas.
Se pueden acceder desde cualquier lugar sin tener en cuenta el ámbito de las variables.
Solo pueden evaluar valores escalares.
Declaración de constantes:
define(“Nombre”, “valor”)
Ejemplo:
define("CONSTANTE", "esta es una constante");
echo CONSTANTE;
Constantes que siempre están presentes en PHP
__FILE__: Es el nombre del archivo que se está siendo interpretado actualmente. Si se usa
dentro de un archivo que ha sido incluido o requerido nos dará el nombre del archivo incluido
o requerido y no el del padre.
__LINE__: Es el número de línea dentro del archivo que se está interpretando, si se utiliza
dentro de un archivo incluido o requerido entonces la posición será la del archivo incluido o
requerido.
PHP_VERSION: Es un string que representa la versión del intérprete de PHP que está
ejecutando el script que produjo el llamado a la constante, por ejemplo ‘3.0.8-dev’.
PHP_OS: Es el nombre del sistema operativo en el cual se esta ejecutando el PHP, por
ejemplo: ‘Linux’.
TRUE: valor verdadero.
FALSE: valor falso.
E_ERROR: Denota un error distinto de un error de interpretación del cual no es posible
recuperarse.
E_WARNING: Denota una condición en la que PHP sabe que hay un error, pero de todas
formas puede continuar; este puede ser capturado por el mismo script.
E_PARSE: El interprete encontró sintaxis inválida en el archivo de comandos. La
recuperación no es posible.
E_NOTICE: Ocurrió algo que pudo ser o no un error. La ejecución continúa. Los ejemplos
incluyen usar una cadena sin comillas como un índice "hash", o acceder a una variable que no
ha sido inicializada.
Las constantes E_* se usan típicamente con la función error_reporting() para configurar el nivel de
informes de error.
1
Universidad de Mendoza
Teleinformática I - Operadores
Operadores
Operadores aritméticos
Ejemplo
$a + $b
$a - $b
$a * $b
$a / $b
$a % $b
Operación
Suma
Resta
Multiplicación
División
Módulo
Resultado
La suma de $a y $b
La diferencia entre $a y $b
El producto entre $a y $b
El cociente entre $a y $b
El resto del cociente entre $a y $b
Operador de asignación
El operador de asignación es el “=”.
PHP permite hacer algunos trucos al realizar asignaciones:
$a = $b = 5;
$a = ($b = 4) + 5;
//$a y $b tienen valor 5
//$a tiene el valor 9 y $b el valor 4
Además del operador básico de asignación, pueden utilizarse “operadores combinados” para todos los
operadores binarios aritméticos y de strings que permiten, de una sola vez, usar una variable en una
expresión y luego establecer el valor de esa variable al resultado de la expresión.
Ejemplo:
$a = 10;
$a += 20;
$a = “Buenos “;
$a .= “días”;
//$a tendrá un valor de 10
//$a tendrá un valor de 30
//$a tendrá un valor “Buenos dias”
Operadores a nivel de bits
Ejemplo
Operación
Resultado
$a & $b
And
Los bits que estén en 1 en $a y $b permanecerán en 1
$a | $b
Or
Los bits que estén en 1 en $a o $b permanecerán en 1
$a ^ $b
Xor
Los bits que estén en 1 o 0 a la vez en $a y $b se pondrán en 1
~$a
Not
Todos los bits en 1 pasan a cero y los que están en cero pasan
a1
$a « $b
Desplazar a la izquierda
Se desplazan los bits hacia la izquierda (equivale a
multiplicar por 2)
$a » $b
Desplazar a la derecha Se desplazan los bits hacia la derecha (equivale a dividir por
2)
Operadores de comparación
Ejemplo
Operación
$a == $b
Igual
$a === $b
Idéntico
mismo tipo de dato (PHP4)
$a != $b
No igual
$a !== $b
No idéntico
diferentes (PHP4)
Resultado
Verdadero si $a es igual a $b
Verdadero si $a es igual a $b y además si son del
Verdadero si $a es distinto a $b
Verdadero si $a es distinto a $b o si sin de tipos de dato
1
Universidad de Mendoza
Teleinformática I - Operadores
$a < $b
$a > $b
$a <= $b
$a >= $b
Menor que
Mayor que
Menor o igual que
Mayor o igual que
Verdadero si $a es menor que el valor de $b
Verdadero si $a es mayor que el valor de $b
Verdadero si $a es menor o igual que el valor de $b
Verdadero si $a es mayor o igual que el valor de $b
Otro operador de comparación es el operador ternario ?:
Ejemplo:
(expresión 1) ? (expresión 2) : (expresión 3)
En este caso se evalúa la expresión 1, si es verdadera entonces se evalúa la expresión 2, si la expresión
1 es falsa entonces se ejecuta la expresión 3.
Los operadores se pueden dividir en operadores unarios y binarios. Los operadores unarios aquellos
que operan sobre un término p.e. ~$a, los operadores binarios operan sobre 2 términos p.e. $a - $b.
Operador de control de errores
PHP tiene un solo operador de control de errores que es la arroba “@”. Para utilizarlo se antepone el
carácter @ a la expresión que queremos controlar, si la expresión produce un error se ignorará el error
generado.
Si la opción track_errors fue habilitada en la configuración de PHP entonces se cargará el error en la
variable global $php_errormsg. Esta variable contendrá solo el último error por lo que si se desea
saber cual fue el error debemos asegurarnos de leerlo antes que otra línea de código genere un nuevo
error y sobreescriba la variable.
Hay que tener cuidado cuando se utiliza la @, ya que incluso deshabilita los errores críticos que
detienen la ejecución de los scripts, esto quiere decir que si se utiliza la @ para suprimir errores que
puedan llegar a producir algunas expresiones puede que se interrumpa la ejecución del script y no
podamos saber cual fue el error.
Operador de ejecución
PHP tiene un solo operador de ejecución que es la comilla simple invertida “ ` ”, hay que aclarar que
NO es la comilla simple. Cuando PHP encuentre una expresión entre comillas simples invertidas
tratará de ejecutarla como una llamada al sistema operativo y se devolverá el resultado, este resultado
puede ser asignado a una variable.
Ejemplo
En Unix o Linux:
$salida = `ls -l`;
echo “<PRE>$salida</PRE>”;
En Windows
$salida = `dir`;
echo “<PRE>$salida</PRE>”;
Operadores de incremento y decremento
Ejemplo
++$a
Operación
Preincremento
Resultado
Devuelve $a después de haber incrementado en 1 su valor
2
Universidad de Mendoza
Teleinformática I - Operadores
$a++
--$a
$a--
Postincremento
Predecremento
Postdecremento
Devuelve $a, y después incrementa en 1 su valor
Devuelve $a después de haber decrementado en 1 su valor
Devuelve $a, y después decrementa en 1 su valor
Ejemplos
<?php
echo "<h3>Postincremento</h3>";
$a = 5;
echo "Debería ser 5: " . $a++ . "<br>\n";
echo "Debería ser 6: " . $a . "<br>\n";
echo "<h3>Preincremento</h3>";
$a = 5;
echo "Debería ser 6: " . ++$a . "<br>\n";
echo "Debería ser 6: " . $a . "<br>\n";
echo "<h3>Postdecremento</h3>";
$a = 5;echo "Debería ser 5: " . $a-- . "<br>\n";
echo "Debería ser 4: " . $a . "<br>\n";
echo "<h3>Predecremento</h3>";
$a = 5;
echo "Debería ser 4: " . --$a . "<br>\n";
echo "Debería ser 4: " . $a . "<br>\n";
?>
Operadores lógicos
Ejemplo
$a and $b
And
$a or $b
$a xor $b
Xor
al mismo tiempo
!$a
Not
$a && $b
And
$a || $b
Or
Operación
Or
Resultado
Verdadero si $a y $b son verdaderos
Verdadero si $a o $b son verdaderos
Verdadero si $a o $b son verdaderos, pero no si $a y $b lo son
Verdadero si $a no es verdadero
Verdadero si $a y $b son verdaderos
Verdadero si $a o $b son verdaderos
La diferencia entre las dos formas distintas de operadores AND y OR es la precedencia de operadores
que se explica más tarde.
Precedencia de operadores
La precedencia de operadores especifica cómo se agrupan las expresiones. Por ejemplo, en la
expresión 1 + 5 * 3, la respuesta es 16 y no 18 porque el operador de multiplicación ("*") tiene una
mayor precedencia que el de adición ("+").
La siguiente tabla lista la precedencia de operadores, indicándose primero los de menor precedencia.
Asociatividad Operadores
izquierda
,
izquierda
or
3
Universidad de Mendoza
Teleinformática I - Operadores
izquierda
izquierda
derecha
izquierda
izquierda
izquierda
izquierda
izquierda
izquierda
izquierda
no asociativo
no asociativo
izquierda
izquierda
izquierda
derecha
derecha
no asociativo
xor
and
print
= += -= *= /= .= %= &= |= ^= ~= <<= >>=
?:
||
&&
|
^
&
== != ===
< <= > >=
<< >>
+-.
*/%
! ~ ++ -- (int) (double) (string) (array) (object) @
[
new
Operadores de strings
Hay dos operadores de strings. El primero es el operador de concatenación punto “.”, el cual
devuelve como resultado la concatenación de los argumentos a la derecha y a la izquierda del
argumento. El segundo operador de concatenación es el operador de concatenación y asignación “.=”
el cual agrega y asigna el argumento de la derecha en el de la izquierda.
4
Universidad de Mendoza
Teleinformática I - Operadores
Estructuras de control
IF
La construcción IF es una de las construcciones más importantes de los lenguajes de programación, y
en PHP no es la excepción. Permite ejecutar fragmentos de programas en forma condicional. La
estructura de IF es similar al lenguaje C.
Estructura:
if (expresión)
sentencia
En la definición se evalúa la condición de verdadero de la expresión, si es verdadero se ejecutará la
sentencia, en caso de ser falso se ignorará.
Ejemplo
if ($a < $b)
echo ‘$a es menor que $b’;
Siempre que se cumpla que $a sea menor que $b se ejecutará el la porción de código.
Pueden anidarse las estructuras IF dentro de otras, de esta forma si pueden armar estructuras muy
complejas.
ELSE
Si se quiere ejecutar una porción de código cuando cierta expresión es verdadera se utiliza la
estructura IF, pero si quisiéramos ejecutar una porción de código cuando no se cumple la condición se
utiliza la estructura ELSE. ELSE extiende la funcionalidad a la estructura IF.
Ejemplo:
if ($a < $b)
echo ‘$a es menor que $b’;
else
echo ‘$a es mayor que $b’;
ELSEIF
Es una combinación entre else y el if, como el else extiende al if cuando la condición del if no se
cumple. Pero la diferencia es que el elseif se ejecuta si la condición dentro del elseif es verdadera.
Ejemplo:
if ($a < $b)
echo ‘$a es menor que $b’;
elseif ($a == $b)
echo ‘$a es igual a $b’;
1
Universidad de Mendoza
Teleinformática I - Operadores
else
echo ‘$a es mayor que $b’;
WHILE
El lazo while es el más simple en PHP, el comportamiento es igual al del lenguaje C.
La estructura básica del lazo while es la siguiente:
while (expresión) sentencias
El funcionamiento del lazo while es muy simple, se ejecutará el bloque de sentencias anidadas
sentencias hasta que la expresión sea verdadera. La expresión sólo se evalúa cada vez que se reinicia
el lazo de sentencias, por lo tanto por más que se cumpla la condición de la expresión en medio de la
ejecución no se terminará de ejecutar el bloque de sentencias hasta que se evalúe la expresión al
finalizar el bloque (antes de comenzar una nueva iteración del ciclo).
Puede ocurrir que la expresión evalúe a verdadero en la primera iteración, por lo tanto no se ejecutará
el bloque de sentencias.
Ejemplo
$i = 1;
while ($i <= 10)
{
print $i++;
}
DO .. WHILE
do
{sentencias;}
while (expresión);
El lazo do .. while es similar al bloque while, la principal diferencia es que la condición de la
expresión se evalúa al finalizar el bloque de sentencias. De esta forma nos aseguramos que por lo
menos se ejecute una vez el bloque de sentencias.
$i =1;
do
{
print $i++;
}
while ($i <= 10);
Existe una forma de interrumpir la ejecución de un bloque de sentencias de manera inmediata y así
abandonarlo y continuar con la siguiente sentencia a continuación del lazo do .. while. La intrucción
que nos permite realizar esto es break.
Ejemplo
2
Universidad de Mendoza
Teleinformática I - Operadores
$i =1;
do
{
print $i++;
if ($i == 5)
{break;}
}
while ($i <= 10);
print $i;
En el ejemplo cuando $i valga 5 la condición del if será verdadera y se ejecutará la sentencia break, a
continuación se ejecutará la sentencia print $i.
FOR
El lazo For es el más complejo en PHP, el comportamiento es similar al del lenguaje C.
For (expresión 1; expresión 2; expresión 3) sentencias
La expresión 1 se ejecuta UNA SOLA VEZ de manera incondicional al principio del lazo, estas
sentencias se utilizan por lo general para inicializar variables.
La expresión 2 se evalúa cada vez que se inicia el ciclo de sentencias, y se seguirá haciendo siempre y
cuando la expresión 2 sea evaluada como verdadera. Al finalizar el bloque de sentencias, se ejecuta la
expresión 3 y a continuación se vuelve a evaluar la expresión 2.
Cada expresión puede ser vacía (expresión 1 o expresión 2 o expresión 3), en el caso en que la
expresión 2 sea vacía será evaluada siempre verdadera. A primera vista esto puede resultar inútil, ya
que nunca terminará el lazo for, pero se podría terminar la ejecución haciendo una evaluación con las
sentencias if y break.
Ejemplos:
Ejemplo 1
for ($i = 1; $i <= 10; $i++)
{
print $i;
}
Ejemplo 2
for ($i = 1;;$i++)
{
if ($i > 10)
{
break;
}
print $i;
}
Ejemplo 3
$i = 1;
for (;;)
3
Universidad de Mendoza
Teleinformática I - Operadores
{
if ($i > 10)
{
break;
}
print $i;
$i++;
}
Ejemplo 4
for ($i = 1; $i <= 10; print $i, $i++) ;
Estos 4 ejemplos dan el mismo resultado, pero da una muestra de cómo se puede utilizar los lazos for
de formas diferentes.
FOREACH
El lazo foreach se introdujo en la versión 4 de PHP. Es una forma corta y sencilla de recorrer los
elementos de un arreglo.
Existen 2 formas de declarar los lazos foreach, que se describen a continuación:
foreach(arreglo as $valor) sentencias
foreach(arreglo as $clave => $valor) sentencias
En cada iteración del lazo la variable $valor va conteniendo el valor de cada uno de los elementos del
arreglo y el puntero que indica el elemento actual se va incrementando. Cada vez que se inicie el lazo
foreach el puntero del arreglo inicia desde el primer elemento, por lo que no hay que reestablecer el
puntero cada vez que queramos leer los elementos del arreglo.
La diferencia entre la primer forma de declarar el lazo de la segunda es que en la última se irá
almacenando cada elemento (clave o key) en la variable $clave.
Hay que aclarar que el lazo foreach trabaja sobre una copia del arreglo y no sobre el propio arreglo,
por lo que si se realizan cambios a los elementos el arreglo original no se verá afectado.
Ejemplos:
reset ($arr);
while (list(, $value) = each ($arr)) {
echo "Value: $value<br>\n";
}
foreach ($arr as $value) {
echo "Value: $value<br>\n";
}
reset ($arreglo);
4
Universidad de Mendoza
Teleinformática I - Operadores
while (list($clave, $valor) = each ($arreglo)) {
echo "Clave: $clave; Valor: $valor<br>\n";
}
foreach ($arreglo as $clave => $valor) {
echo "Clave: $clave; Valor: $valor<br>\n";
}
Estos son ejemplos de cómo se leen elementos de un arreglo con foreach y como se hacía en PHP
versión 3. Los ejemplos corresponden a las dos formas en las que se pueden declarar los lazos foreach.
BREAK
La sentencia break permite detener la ejecución de los lazos for, while y switch. Opcionalmente se le
puede pasar un argumento que indicará cuantos niveles de anidamiento queremos detener.
Ejemplo:
$i = 0;
while (++$i)
{
switch ($i)
{
case 5:
echo "At 5<br>\n";
break 1; /* Sale solamente del switch. */
case 10:
echo "En 10; salir <br>\n";
break 2; /* Sale del switch y del while. */
default:
break;
}
}
CONTINUE
La sentencia continue permite saltear la ejecución del resto de una iteración y continua ejecutando
desde el comienzo de la próxima iteración.
La diferencia con break es que continua la ejecución del lazo que contiene la sentencia y break la
interrumpe. Al igual que break acepta un parámetro opcional que permite saltear varios niveles de
iteraciones.
SWITCH
La sentencia switch equivale a hacer una serie de comparaciones con la sentencia if, pero sobre el
mismo valor, de hecho la sentencia switch fue hecha para esto. En muchas ocasiones uno desea hacer
comparaciones de una misma variable con un cierto número de valores y en función de cada una de las
comparaciones ejecutar una porción de código distinto.
5
Universidad de Mendoza
Teleinformática I - Operadores
if ($i == 0)
{
print "i es igual a 0";
}
if ($i == 1)
{
print "i es igual a 1";
}
if ($i == 2)
{
print "i es igual a 2";
}
switch ($i)
{
case 0:
print "i es igual a 0";
break;
case 1:
print "i es igual a 1";
break;
case 2:
print "i es igual a 2";
break;
}
El funcionamiento de switch es muy sencillo: el programa busca alguna sentencia case en la que
coincida el valor con el valor de la variable $i, una vez encontrada ejecutará el código asociado al case
y se detendrá en la sentencia break. Si no se escribe la sentencia break al final del bloque seguirá
ejecutando hasta terminar con los case que siguen o hasta que encuentre la sentencia break. Muchas
veces se desea ejecutar la misma porción de código para uno o más valores de la variable $i, para este
caso se hará lo siguiente:
switch ($i)
{
case 0:
case 1:
case 2
print "i es menor o igual que 2";
break;
case 3
print "i es mayor que 2";
break;
}
Existe una opción dentro de la declaración del switch que sirve para ejecutar una porción de código
cuando ninguna de las opciones se han cumplido. Para este caso se utiliza la sentencia default.
Ejemplo:
switch ($i)
{
case 0:
6
Universidad de Mendoza
Teleinformática I - Operadores
print "i es igual a 0";
break;
case 1:
print "i es igual a 1";
break;
default:
print "i es distinto de 0 y de 1";
break;
}
7
Universidad de Mendoza
Teleinformática I – Tipos de datos no primitivos
Tipos de datos no primitivos
Arreglos (arrays)
Un arreglo es un conjunto ordenado de elementos del mismo tipo. Los arreglos pueden ser de una
dimensión o de múltiples dimensiones.
En PHP se pueden referenciar los arreglos como tablas de comparaciones (arreglo asociativo) –
también llamadas hash tables– o como vectores, esto no significa que existan dos tipos de arreglos
sino que a los arreglos se los puede acceder de las dos formas.
Arreglos de una dimensión
Sintaxis
$arreglo[clave]=valor; //en forma de vector
Para poder leer o escribir un dato de un arreglo como vector la clave deberá ser un número entero.
$arreglo[‘clave’]=valor;
//en forma de arreglo asociativo
Para poder leer o escribir un dato de un arreglo como arreglo asociativo la clave deberá ser un una
palabra (string).
Ejemplo:
$arreglo[0]=1;
$arreglo[1]=20;
$arreglo[‘texto’]=300;
Si el programador quisiera agregar datos en la última posición (en el caso del ejemplo $arreglo[2]) no
debería preocuparse en averiguar cual fue el último elemento cargado previamente, existe una forma
que consiste en lo siguiente:
$arreglo[]=25; //equivale a $arreglo[2]=25;
$arreglo[]=122;
//equivale a $arreglo[3]=122;
De esta forma se simplifica enormemente el código de la aplicación ya que no se tiene que hacer
controles ni llevar variables extras para saber cuál será el último elemento.
Existe una gran cantidad de sentencias que hacen que PHP sea un lenguaje muy poderoso en el manejo
de arreglos, como por ejemplo:
Funciones de ordenamiento
asort(), arsort(), ksort(), rsort(), sort(), uasort(), usort(), y uksort()
Funciones de conteo
count(), sizeof()
Funciones para recorrer arreglos
next(), prev(), each()
Funciones de para unir arreglos
1
Universidad de Mendoza
Teleinformática I – Tipos de datos no primitivos
array_merge(), array_merge_recursive()
Función de mezclado
shuffle()
Arreglos multidimensionales
Los arreglos de múltiples dimensiones son muy fáciles de definir, simplemente se agrega una clave por
cada dimensión deseada.
Ejemplo
$arreglo[0]=1;
$arreglo[1]=0;
//arreglo de una dimensión
$arreglo[0][0]=1;
$arreglo[0][1]=2;
//arreglo de dos dimensiones
$arreglo[‘accion’][0]=2;
$arreglo[‘accion’][1]=3;
$arreglo[0][‘color’]=3; //arreglo de 2 dimensiones mezcla de arreglo asociativo y vectorial
$arreglo[0][0][0]=1;
//arreglo de 3 dimensiones
Puede verse en los ejemplos que se pueden mezclar arreglos asociativos con arreglos vectoriales y
ordenarlo de cualquier forma que deseemos.
En la versión 3 de PHP no es posible referenciar un arreglo multidimensional, en forma directa dentro
de los strings. Es evidente que en el siguiente ejemplo:
$arreglo[‘color’][0]=”amarillo”;
echo “El color seleccionado es $arreglo[‘color’][0]”;
Esto no funcionará en la versión 3 de PHP, en su lugar deberíamos hacer lo siguiente:
$arreglo[‘color’][0]=”amarillo”;
echo “El color seleccionado es “.$arreglo[‘color’][0]”; //Se quita la expresión fuera del string y se
concatena
Esta limitación del intérprete de PHP en la versión 3 fue solucionada en la versión 4 haciendo lo
siguiente:
$arreglo[‘color’][0]=”amarillo”;
echo “El color seleccionado es {$arreglo[‘color’][0]}”;
Se pueden llenar los arreglos de distintas maneras, una muy ingeniosa es utilizar la sentencia array().
Ejemplo:
$arreglo["color"] = "rojo";
$arreglo["gusto"] = "dulce";
$arreglo["forma"] = "redonda";
2
Universidad de Mendoza
Teleinformática I – Tipos de datos no primitivos
$arreglo["nombre"] = "manzana";
$arreglo[3] = 4;
el mismo arreglo puede llenarse utilizando array() de la siguiente forma:
$arreglo = array(
“color” => “rojo” ,
“gusto” => “dulce” ,
“forma” => “redonda” ,
“nombre” => “manzana” ,
3 => 4);
También se pueden llenar arreglos multidimensionales con la sentencia array() anidándolos. Ejemplo
$arreglo = array(
“manzana” => array(
“color” => “rojo” ,
“gusto” => “dulce” ,
“forma” => “redonda”
)
“naranja” => array(
“color” => “anaranjado” ,
“gusto” => “acido” ,
“forma” => “redonda”
)
)
al hacer
echo arreglo[‘manzana’][‘gusto’];
El resultado será dulce.
Clases y objetos
Definición de clases
class Fruta
{
var color;
var gusto;
var forma;
function cargar_datos($c, $g, $f)
{$this->color=$c;
$this->gusto=$g;
$this->forma=$f;
}
function mostrar_datos()
{echo “Color: “.$this->color.”<br>”;
echo “Gusto: “.$this->gusto.”<br>”;
echo “forma: “.$this->forma.”<br>”;
}
3
Universidad de Mendoza
Teleinformática I – Tipos de datos no primitivos
}
$manzana= new Fruta;
$manzana->cargar_datos(“rojo”, ”dulce”, ”redonda”);
Para crear un objeto de la clase Fruta se debe utilizar la sentencia new. La sentencia new se utiliza
para crear una variable nueva.
Una clase puede heredar de otra clase o dicho de otra forma una clase puede extender a otra. Para
hacerlo posible se utiliza el modificador extends.
Al extender una clase la nueva clase hereda las propiedades y métodos de la clase padre, y a esta le
podemos agregar nuevas propiedades y métodos.
Constructores
El constructor de una clase es un método que lleva el mismo nombre de la clase y se ejecuta
automáticamente cuando se crea un nuevo objeto de la clase.
class Fruta
{
var color;
var gusto;
var forma;
function Fruta($c, $g, $f)
{$this->color=$c;
$this->gusto=$g;
$this->forma=$f;
}
function cargar_datos($c, $g, $f)
{$this->color=$c;
$this->gusto=$g;
$this->forma=$f;
}
function mostrar_datos()
{echo “Color: “.$this->color.”<br>”;
echo “Gusto: “.$this->gusto.”<br>”;
echo “forma: “.$this->forma.”<br>”;
}
}
$manzana= new Fruta;
$manzana->cargar_datos(“rojo”, ”dulce”, ”redonda”);
Creación de un objeto del tipo Fruta utilizando el constructor de la clase
4
Universidad de Mendoza
Teleinformática I – Tipos de datos no primitivos
$manzana= new Fruta (“rojo”, ”dulce”, ”redonda”);
5
Descargar