Você está na página 1de 35

Instituto Tecnolgico de Cancn

Programacin Web
Equipo numero 5:

Cancn, Quintana Roo, a

30 de

septiembre de 2011.

3.1. Procesamiento del lado del servidor.


La Programacin del lado del servidor es una tecnologa que consiste en el procesamiento de una peticin de un usuario mediante la interpretacin de un script en el servidor web para generar pginas HTML dinmicamente como respuesta. Todo lo que suceda dentro del servidor es llamado procesamiento del lado del servidor, o server-side processing. Cuando tu aplicacin necesita interactuar con el servidor (por ejemplo, para cargar o guardar datos), sta realiza una peticin del lado del cliente (client-side request) desde el navegador, a travs de la red usando invocaciones remotas a mtodos (remote procedure call, RPC). Mientras se est procesando una llamada RPC, tu servidor est ejecutando cdigo del lado del servidor. La utilizacin de las diferentes aplicaciones o servicios de Internet se lleva a cabo respondiendo al llamado modelo cliente-servidor. Cuando se utiliza un servicio en Internet, como consultar una base de datos, transferir un archivo o participar en un foro de discusin, se establece un proceso en el que entran en juego dos partes. Por un lado, el usuario, quien ejecuta una aplicacin en procesador local: el denominado programa cliente. Este programa cliente se encarga de ponerse en contacto con el procesador remoto para solicitar el servicio deseado. El procesador remoto por su parte responder a lo solicitado mediante un programa que esta ejecutando. Este ltimo se denomina programa servidor. Los trminos cliente y servidor se utilizan tanto para referirse a los programas que cumplen estas funciones, como a las computadoras donde son ejecutados esos programas. El programa o los programas cliente que el usuario utiliza para acceder a los servicios de Internet realizan dos funciones distintas. Por una parte, se encargan de gestionar la comunicacin con el computador servidor, de solicitar un servicio concreto y de recibir los datos enviados por ste; y por otra, es la herramienta que presenta al usuario los datos en pantalla y que le ofrece los comandos necesarios para utilizar las prestaciones que ofrece el servidor.

Cuando nosotros seleccionamos un enlace hipertexto, en realidad lo que pasa es que establecemos una peticin de un archivo HTML residente en el servidor (una computadora que se encuentra continuamente conectado a la red) el cual es enviado e interpretado por nuestro navegador (el cliente). As pues, podemos hablar de lenguajes de lado servidor que son aquellos lenguajes que son reconocidos, ejecutados e interpretados por el propio servidor y que se envan al cliente en un formato comprensible para l, por ejemplo: ASP, PHP, JSP. Por otro lado, los lenguajes de lado cliente (entre los cuales no slo se encuentra el HTML sino tambin el Java y el JavaScript los cuales son simplemente incluidos en el cdigo HTML) son aquellos que pueden ser directamente "digeridos" por el navegador y no necesitan un pretratamiento.

Cada uno de estos tipos tiene por supuesto sus ventajas y sus inconvenientes. As, por ejemplo, un lenguaje de lado cliente es totalmente independiente del servidor, lo cual permite que la pgina pueda ser albergada en cualquier sitio sin necesidad de pagar ms ya que, por regla general, los servidores que aceptan pginas con scripts de lado servidor son en su mayora de pago o sus prestaciones son muy limitadas. Inversamente, un lenguaje de lado servidor es independiente del cliente por lo que es mucho menos rgido respecto al cambio de un navegador a otro o respecto a las versiones del mismo.

3.2. Conceptos bsicos de la herramienta de desarrollo


Una herramienta es un objeto elaborado a fin de facilitar la realizacin de una tarea mecnica que requiere de una aplicacin correcta de energa. El trmino herramienta, en sentido estricto, se emplea para referirse a utensilios resistentes, tiles para realizar trabajos mecnicos que requieren la aplicacin de una cierta fuerza fsica. Cada herramienta tiene un fin especfico y debera ser usado solo con un fin determinado, Sin embargo esto no se cumple en la mayora de las tareas del quehacer humano y mucho menos en las aplicaciones web. Cuando pensemos en las mejores herramientas para el desarrollo web es necesario pensar en donde estar alojado nuestro sitio (hosting). El hosting o alojamiento web es un sistema esencial para el funcionamiento de los sitios en Internet y es el lugar donde fsicamente reside nuestra informacin. Si tenemos recursos ilimitados para tener nuestro propio sitio entonces tendramos que hacer una gran investigacin para seleccionar las herramientas ms sofisticadas. Sin embargo para la mayora de las aplicaciones debemos pagar porque nuestra informacin sea colocada en cierto servidor. El lugar donde fsicamente se almacenara nuestra informacin determina los lenguajes soportados (cliente, servidor), el gestor de la base de datos y las prestaciones que podremos ofrecer a nuestros futuros usuarios. Sin el afn de romperse las camisas discutiendo este punto, las herramientas que usaremos para desarrollar el sitio, dependen de las preferencias, del acceso a las herramientas ("licencias") y la disponibilidad. En resumen cada quien habla como le va en la feria. Si somos expertos en un X lenguaje y el sistema Operativo de nuestro host no lo soporta, podremos tener las herramientas ms sofisticadas pero no servirn de nada. Las fases de un desarrollo web, as como los lenguajes de programacin usados, son muy extensos y variados, y por ello necesitamos herramientas especficas para cada una de ellas. Conoceremos a continuacin las principales herramientas existentes para poder desarrollar fcilmente un proyecto web. En el desarrollo web tenemos unas herramientas para el diseo, otras para la maquetacin, otras para la programacin, y para la depuracin. Todas las herramientas que usemos son muy importantes, desde el sistema operativo hasta el comando ms insignificante, y por ello debemos elegir la ms adecuada a nuestras necesidades y capacidades. Sistema Operativo Para desarrollar una web, lo primero que necesitamos es un Sistema Operativo, como es lgico, y su eleccin no es tan

trivial. Hay que tener en cuenta las aplicaciones de las que dispone el Sistema Operativo y sus costos.

Si pensamos desarrollar en .NET este solo es soportado por windows y los costos de hospedaje son mas caros que los que soportan Linux. Fases de desarrollo de una web Para elegir las herramientas a utilizar, antes debemos identificar las fases del proceso que forman el ciclo de vida de un desarrollo web.

Diseo: consiste en crear esbozos de la web final mediante una herramienta grfica, como Photoshop Maquetacin HTML/CSS: consiste en convertir los esbozos creados en la fase anterior en plantillas HTML, su respectiva hoja de estilos, y las imgenes usadas. Es posible saltarse la fase anterior para comenzar directamente con esta fase, dependiendo de si dominamos herramientas como Photoshop o no. Programacin cliente: consiste bsicamente en Javascript. Existen muchas librerias de distribucin libre como JQUERY que nos aportan verdaderas joyas para el desarrollo. Programacin servidor: en esta fase, que se desarrolla junto con la anterior, crearemos la aplicacin web en un lenguaje de servidor, como puede ser PHP, ASP .NET, Python, Perl, Java, etc. Depuracin: esta fase enlaza la anterior con la siguiente, y es donde haremos las pruebas unitarias, aserciones, trazas, etc. Pruebas en local: en nuestro servidor local haremos todas las pruebas posibles. Por ejemplo usando wampServer Subir archivos al hosting: Dependiendo del hosting, podremos usar FTP, SSH, aconsejo usar cuteFTP es una herramienta confiable y versatil. Pruebas en hosting: realizaremos las ltimas pruebas en el servidor del hosting para comprobar que el cambio de servidor no ha afectado a nada. Para evitar problemas, nuestro servidor local debe tener exactamente la misma configuracin que el servidor del hosting. Recuerde probar que sus cdigos sean compatibles al menos con Firefox, Safari e Internet explorer

En general podemos usar comercialmente la suite de Adobe que incluye a Dreamwever y sus herramientas de edicin un servidor FTP, adems de validar nuestros cdigos javascript y css. Con el inconveniente de ser una herramienta muy cara. En contra parte, va versin Joomla! edition de kademar Linux es la adaptacin de la versin de Escritorio DVD (Leo) 4.9.1 con la inclusin de los programas necesarios para trabajar con el gestor de contenidos Joomla!.

En esta edicin se incluye instalado el gestor de contenidos Joomla, junto con los programas necesarios para su funcionamiento totalmente instalados y configurados. Es posible aprender a usar Joomla! sin necesidad de buscar un servidor de hosting para crear pginas web. Est funcionando en local y no se tiene que pelear con la instalacin de todo lo necesario: base de datos MySql, phpmyadmin, apache.... etc. Todo est ya instalado y configurado, plenamente funcional para usarlo inmediatamente.

3.3 Operadores
Los operadores son componente esencial de cualquier lenguaje de programacin. Con ellos podemos asignar, unir, cambiar o comparar valores de datos, cambiar el flujo del programa, etc. Los operadores son smbolos que representan operaciones sobre un valor. Vamos a ver a continuacin los operadores admitidos por PHP agrupados segun su utilidad.

Operador de asignacin
El smbolo = permite asignar valores a variables:

<?php $ciudad = "madrid"; $mi_numero = 123; $var1 = var2 = 0; ?>

Operador de concatenacin
Usando el smbolo del . podemos unir valores:

<?php $nombre = "jorge"; $apellido = "prez"; $id = $nombre." ".$apellido; // suma los dos valores mas un espacio ?>

El operador .= asigna un dato al valor anterior:

<?php echo = "uno, dos, tres" .= "cuatro, cinco, seis"; // imprime "uno, dos, tres, cuatro, cinco, seis" $id = "jorge";

$id .=" perez"; // $id es ahora jorge perez ?>

Operadores aritmticos
Los simbolos + - / * permiten realizar las operaciones de suma, resta, divisin y multiplicacin. El smbolo % permite hallar el resto de una divisin.
aritmeticos
evaluar

Operadores de incremento - decremento


Los smbolos ++ y -- aplicados a una variable, permiten incrementar o decrecer su valor. Su efecto es distinto segun se empleen precediendo o siguiendo el nombre de la variable:
++$a $a++ --$a

Incrementa Devuelve Decrece el

$a $a valor y

en

uno despus $a en

despus

devuelve $a en devuelve

$a. uno. $a.

incrementa uno y

de

despus

$a-- Devuelve $a y despus decrece su valor en uno.


incremento
evaluar

valor de $a:

Operadores de Comparacin
$a == $b

(igualdad).

Cierto

si

$a

es

igual

$b.

$a === $b $a $a < !=

(identidad). Cierto si $a es igual a $b y si son del mismo tipo (slo PHP4)


$b

(desigualdad). que).

Cierto si $a

si es

$a

no

es

igual menor

a que

$b. $b.

$b

(menor

Cierto

estrictamente

$a > $b (mayor que). Cierto si $a es estrictamente mayor que $b. $a <= $b (menor o igual

que).

Cierto

si

$a

es

menor

igual

que

$b.

$a >= $b (mayor o igual que). Cierto si $a es mayor o igual que $b.

comparar
evaluar

Por defecto todos los valores que introduzcas sern considerados strings (cadenas de carcteres) aunque esten formados solo por nmeros. Si deseas forzar que el valor se compare como un integer (nmero entero), introduce el nmero (no letras!) y marca el checkbox junto a ese campo. NOTAS: el operador = no compara sino que ASIGNA un valor a una variable: $password="miclave" no compara si la variable password tiene el valor miclave sino que le asigna ese contenido. el operador == compara dos valores y devuelve TRUE si son iguales: $password=="miclave" se cumple si el valor de $password es miclave. El operador === da TRUE si los dos valores son adems de iguales, idnticos. Se compara no solo el contenido, sino el tipo de variable: 123 == 123: TRUE (si son dos valores numericos). "123" === 123: FALSE (mismo valor, pero el primero es una cadena, el segundo un nmero). Si deseas probar === introduce dos numeros iguales en el formulario. Para que se vea la diferencia marca el checkbox de uno de los campos para que pase el valor como integer.

Operador de ejecucin
PHP soporta un operador de ejecucin: el apstrofe invertido (``). 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). Ejemplo:

<?php $output = `dir c:`; echo "<pre>$output</pre>"; ?>

Es equivalente a la funcin shell_exec y por defecto est inhabilitado su uso si php esta configurado para ejecutarse en safe_mode

Operadores Lgicos
$a $a and or $b $b

Y: O:

Cierto

si

tanto si

$a $a

como o $b

$b

son son

ciertos. ciertos.

Cierto

$a xor $b ! $a

O exclusiva: Cierto si $a es cierto o $b es cierto, pero no ambos a la vez. Negacin: Cierto si $a no es cierto.

$a $a

&& ||

$b $b

Y: O:

Cierto

si

tanto si

$a $a

como o $b

$b

son son

ciertos. ciertos.

Cierto

La razn de las dos variaciones de "y" y "o" es que operan con distinta precedencia

Operadores a nivel de bit


Los operadores bit a bit te permiten activar o desactivar bits individuales de un entero.
$a & $b $a | $b

Y Se activan los bits que estn activos tanto en $a como $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

a No Se activan los bits que no

la estn activos en

vez. $a.

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)
$a >> $b

ejemplo:

<?php function hexColor($color) { return dechex(($color[0]<<16)|($color[1]<<8)|$color[2]); } $col[0] = 25; $col[1] = 255; $col[2] = 55; print hexColor($col); ?>

3.4 Sentencias.
PHP Al ser un lenguaje de script, se programa mediante simples sentencias o frases (no compiladas), que son interpretadas por el motor PHP instalado en el servidor,

devolviendo al visitante de la pgina el texto resultante. Esto quiere decir que en el cdigo fuente de la pgina final solo vers html, nada de php. Insertando PHP en pginas html Nuestras sentencias PHP pueden ir mezcladas con el cdigo HTML. Para que el servidor las reconozca como lo que son, y las ejecute, necesitaremos en primer lugar indicarle que es un archivo que contiene cdigo ejecutable, lo que conseguimos sustituyendo la extensin habitual htm o html por php: pagina.php. Y en segundo lugar separamos en el cuerpo de la pgina lo que es html y lo que es cdigo php ejecutable marcando el inicio y final de este mediante etiquetas de inicio y cierre:

<?php ..... ?> (modo normal) <? ..... ?> (modo abreviado) <% ..... %> (modo asp, deshabilitado por defecto)

O tambien con la etiqueta script: <script language="php"> </script>

Vamos con el primer ejemplo, el tradicional "hola mundo":


<html> <head> <title></title> </head> <body> <h3>Mi primer <?php echo "hola mundo"; ?> <hr> </body> </html>

ejemplo

php</h3>

t/man/php/index.php

Sentencia break
La sentencia break escapa de la estructuras de control iterantes (bucles) actuales for, while, o switch. La sentencia break acepta un parmetro opcional, el cual determina cuantas estructuras de control hay que escapar. Intenta averiguar el comportamiento de los siguientes programas:

ejecutar ver cdigo fuente

ejecutar ver cdigo fuente

Evalua el curso de PHP y accede a las 3 unidades gratis con acceso completo al aula virtual donde podrs disfrutar de la inestimable ayuda del tutor y una gran variedad de recursos como videotutoriales, ejercicios resueltos, foros, enlaces, bibliografa, etc....

Sentencia continue
La sentencia continue se usa dentro de la estructura del bucle para saltar el resto de la iteracin actual del bucle y continuar la ejecucin al comienzo de la siguiente iteracin. Acepta un parmetro opcional, el cual determina cuantos niveles (bucles) hay que saltar antes de continuar con la ejecucin.

ejecutar ver cdigo fuente

Evalua el curso de PHP y accede a las 3 unidades gratis con acceso completo al aula virtual donde podrs disfrutar de la inestimable ayuda del tutor y una gran variedad de recursos como videotutoriales, ejercicios resueltos, foros, enlaces, bibliografa, etc....

Sentencia switch
La sentencia switch es similar a una serie de sentencias IF en la misma expresin. En muchas ocasiones, se quiere comparar la misma variable (o expresin) con muchos valores diferentes, y ejecutar una parte de cdigo distinta dependiendo del valor de dicha variable (o expresin). Para eso sirve la sentencia switch. La sintaxis de la sentencia switch es la siguiente: switch(expr){ case break; case break; . . . default: sentencia()s; }

valor1: sentencia(s)1; valor2: sentencia(s)2;

Veamos cmo se ejecuta la sentencia switch: cuando se encuentra una sentencia case con un valor igual al valor de la expresin switch, PHP empieza a ejecutar las sentencias correspondientes a dicho case y contina ejecutando las sentencias hasta el final del bloque switch (en el caso de que no haya ningn break) o hasta la primera vez que encuentre una sentencia break.
Nota: Si no se escribe una sentencia break al final de una lista de sentencias case, PHP seguir ejecutando las sentencias del siguiente case.

Los siguientes dos ejemplos son dos modos distintos de escribir la misma cosa, uno usa una serie de sentencias if, y el otro usa la sentencia switch:

ejecutar ver cdigo fuente

ejecutar ver cdigo fuente


Nota: En una sentencia switch, la condicin se evala slo una vez y el resultado se compara a cada sentencia case. En cambio, en una sentencia elseif la condicin se evala otra vez. Si la condicin es complicada, un switch puede ser ms rpido que una serie de if anidados.

Cul crees que sera el comportamiento del siguiente cdigo?:

ejecutar

ver

cdigo

fuente

Aqu, si $i es igual a 0, PHP ejecutara todas las sentencias echo. Si $i es igual a 1, PHP ejecutara las dos ltimas sentencias echo y slo si $i es igual a 2, se obtendra la conducta "esperada" mostrandose "i es igual a 2". Es importante no olvidar las sentencias break.
Nota: La lista de sentencias de un case puede estar vaca, lo cual simplemente pasa el control a la lista de sentencias del siguiente case.

Este ejemplo mostrara por pantalla "i es menor que 3, pero no negativo", ya que, al ser $i=0 y estar vaca la lista de sentencias del case 0, pasa el control a la lista de sentencias del case 1, que tambin est vaca y por tanto salta la ejecucin a la sentencia del case 2. ejecutar ver cdigo fuente
Nota: El case default El case default es un case especial: PHP ejecutar las sentencias del case default cuando el valor de la expresin del switch no coincida con ninguno de los valores de los cases anteriores. El case default puede o no aparecer, pero si aparece ha de estar en ltimo lugar.

ejecutar ver cdigo fuente

Evalua el curso de PHP y accede a las 3 unidades gratis con acceso completo al aula virtual donde podrs disfrutar de la inestimable ayuda del tutor y una gran variedad de recursos como videotutoriales, ejercicios resueltos, foros, enlaces, bibliografa, etc....

Sintaxis Alternativa de Estructuras de Control


PHP ofrece una sintaxis alternativa para alguna de sus estructuras de control, como son: if, while, for, y switch. En cada caso, la forma bsica de la sintaxis alternativa es:

cambiar abrir-llave ({) por dos puntos (:) y cambiar cerrar-llave (}) por endif;, endwhile;, endfor;, o endswitch;, respectivamente.

La sintaxis alternativa se aplica tambin a else y a elseif.

3.5 arreglos.
Una particularidad de las variables es la capacidad de crear variables que contengan mltiples valores. Estamos hablando de los arrays o arreglos. Tambin son conocidos como matrices Se comportan casi como una variable normal, es decir, comienzan con el signo $, se nombran con letras, nmeros y "_", admiten los mismos operadores, pero se diferencian en que almacenan ms de un valor:

$variable1 1 2 3 => valor3 => => valor1 valor2

Al requerir el valor de la variable, hay que especificar cul de esos valores es el que se quiere obtener. Para esto, hay que indicar el nmero de dicho valor entre signos [ y ]. Por ejemplo:

echo $variable1[1]; = "otro valor";

$variable1[2];

Para definir una variable como array, hay que utilizar la funcin Array(). Si no se especifica ningn parmetro dentro de los parntesis, crer un array vaco. De lo contrario establecer los valores que contendr el array:

$mi_array1 = // array $mi_array2 = Array("valor 1","valor 2","valor 3");

Array(); vaco

Tambin existen los arrays o arreglos etiquetados, es decir, que en lugar de tener asignado un nmero cada valor del array, tienen asignado un otro valor string:

$variable2 "uno" "dos" "tres" => valor3 => => valor1 valor2

Se comportan exactamente de la misma manera:

echo $variable2["uno"] = "otro valor";

$variable2["dos"];

y si se quiere crear el array como etiquetado desde el principio con la misma funcin Array(), se debe hacer de la siguiente manera:

$mi_array3 = Array("ETIQUETA 1"=>"valor 1","ETIQUETA 2"=>"valor 2","ETIQUETA 3"=>"valor 3");

Las

variables

predefinidas

Las variables predefinidas o del servidor son variables que estn definidas por php y que proporcionan informacin

sobre el servidor o el cliente. En ellas est almacenada, por ejemplo, la IP del cliente, su navegador y hasta el lenguaje preferido por el usuario. Tambien las hay para acceder a los contenidos GET y POST, y para obtener informacin del servidor, como sistema operativo y dems. Estas variables comienzan con $_ y son arrays. A saber (solo las que trabajaremos, las ms utilizadas):

$_SERVER Informacin $_POST Variables $_GET Variables $_COOKIES $_SESSION Variables $_FILES Archivos (a tratar)

del enviadas enviadas Cookies de

servidor por por sesin

y el el (a

del mtodo mtido (a

cliente POST GET tratar) tratar)

$_POST y $_GET son matrices etiquetadas idnticas a las que tratamos hace un momento. Las etiquetas son los
nombres de los campos y cada una tiene su respectivo valor. Por ejemplo:

echo $_POST["nombre"];

La variable $_SERVER es un array etiquetado. Algunas de las etiquetas son las siguientes: la URL del acript actual ("PHP_SELF"), IP del servidor ( "SERVER_ADDR"), IP del cliente ("REMOTE_ADDR"), nombre del navegador ("HTTP_USER_AGENT"), lenguaje preferido ("HTTP_ACCEPT_LANGUAGE"), tipos de archivos que soporta el navegador ("HTTP_ACCEPT"), nombre del host ("HTTP_HOST"), ruta de acceso al script en el servidor ("PATH_TRANSLATED") y ms. Puedes consultar en

El uso de ARRAYS es una de las grandes fortalezas del lenguaje PHP. Ningn otro lenguaje lo haba facilitado tanto ni haba aportado tantas posibilidades y funciones. Gracias a su amplia galera de funciones y a los mtodos que se han implementado en este lenguaje, manejar arreglos, incluso multidimensionales, es algo tan facil como era el manejar cadenas. No obstante, siempre es necesario "agarrarle la idea" ya que en un principio puede resultar confuso para los neofitos. Por eso publicamos aqui una gua rpida para conocer el uso y las funciones disponibles en este amigable lenguaje.
//Para declarar una variable como un array sencillo $a = array();

//Para declarar una variable como array y ponerle elementos $a = array("Maiz","Arroz","Pan","Frijoles","Azcar");

Una manera prctica de ver el contenido de una variable de tipo array es con la funcin var_dump. Para usar esta funcin lo hacemos de la siguiente manera:
echo "<pre>"; var_dump($a); echo "</pre>";

LA funcin var_dump() nos sirve para propsitos de depuracin, para ver el contenido de nuestros arrays cuando notamos que algo no funciona. Es recomendable encerrarlo entre los TAGS (pre) y (/pre) para poder ver ms claramente el resultado. En el ejemplo anterior tendramos la siguiente salida:
Salida del programa:

array(5) { [0]=> string(4) "Maiz" [1]=> string(5) "Arroz" [2]=> string(3) "Pan" [3]=> string(8) "Frijoles" [4]=> string(6) "Azcar" }

Ntese que el array delcarado tiene cinco elementos, y estos van del elemento cero al cuatro (0-4) tal como nos lo muestra el resultado del var_dump.
A continuacin utilizaremos el mtodo foreach para recorrer todo el arreglo y mandar a la pantalla los elementos que contiene.

//Para declarar una variable como array y ponerle elementos $a = array("Maiz","Arroz","Pan","Frijoles","Azcar"); //Para mostrar en la salida el array con los elementos foreach($a as $v) { echo "$v"; echo "<br>";

Con foreach le decimos que recorra el array $a y en cada ciclo nos pondr cada valor del arreglo dentro de la variable $v.
Salida del programa:

Maiz Arroz Pan Frijoles Azcar

Tambien se pudo utilizar un ciclo for desde 0 hasta 4. Pero el foreach es ms practico porque no necesitamos conocer el nmero de elmentos del array. El programa utilizando un ciclo for quedara de la siguiente manera:
for($i=0 ; $i<count($a); $i++) { echo $a[$i]; echo "<br>"; }

Y la salida sera la misma del programa anterior.

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 array_slice()

el

tamao

de

un

array

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 todos los elementos desde el ndice 0 (el principio) hasta un nmero total de 3 elementos. El segundo array_slice() indica que se tomen todos los elementos a partir del ndice 1 (segunda casilla). <? $entrada //modifico $salida //muestro foreach

array

("Miguel",

"Pepe", el

"Juan",

"Julio",

"Pablo"); tamao 3); array $actual) "<br>"; "<p>";

array_slice el ($salida

($entrada, as

0,

echo echo //modifico $salida //muestro foreach ?> Tendr Miguel Pepe Juan Pepe Juan

$actual

= ($salida echo

otra array_slice el as $actual

($salida,

vez 1); array $actual) "<br>";

como

salida:

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, por tanto, no recibir ms que el array al que se desea eliminar la primera posicin. 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.

<? $entrada

array

("Miguel", la =

"Pepe",

"Juan",

"Julio",

"Pablo"); casilla ($entrada); array "<br>"; $actual) "<br>"; "<p>";

//quito $salida //muestro echo "La foreach

primera array_shift el . as . $salida .

funcin echo

devuelve: " ($entrada $actual

echo //quito la primera casilla, que ahora sera la segunda del $salida = array_shift echo "La funcin devuelve: " . $salida //muestro el foreach ($entrada as echo $actual . ?> Da La Pepe Juan Julio Pablo La Juan Julio Pablo funcin como devuelve:

array original ($entrada); . "<br>"; array $actual) "<br>";

resultado: Miguel

funcin

devuelve:

Pepe

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. <? $estadios_futbol = array("Barcelona"=> "Nou Camp","Real Madrid" => "Santiago Bernabeu","Valencia" => "Mestalla","Real Sociedad" => "Anoeta");

//mostramos foreach echo echo //eliminamos unset

los ($estadios_futbol $indice . " as -" .

estadios $indice=>$actual) $actual . "<br>"; "<p>";

el

estadio asociado ($estadios_futbol["Real los ($estadios_futbol . " -estadios " as .

al

real

madrid Madrid"]);

//mostramos foreach echo $indice ?> La Barcelona Real Valencia Real Barcelona Valencia Real

otra $actual

vez $indice=>$actual) . "<br>";

salida -Madrid Sociedad --

ser

la Nou Santiago

siguiente: Camp Bernabeu Mestalla Anoeta Camp Mestalla Anoeta

---

-Nou ---

Sociedad

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. <? $tabla

array

("Lagartija", el "Gorrin",

"Araa", tamao

"Perro",

"Gato",

"Ratn"); array "Oso");

//aumentamos array_push($tabla,

del "Paloma",

foreach echo ?> Da Lagartija Araa Perro Gato Ratn Gorrin Paloma Oso como

($tabla $actual

as .

$actual) "<br>";

resultado

esta

salida:

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. En este cdigo de ejemplo creamos tres arrays y luego los unimos con la funcin array_merge() <? $tabla $tabla2 $tabla3

array = =

("Lagartija", array el

"Araa", "Perro", "Gato", "Ratn"); array ("12","34","45","52","12"); ("Sauce","Pino","Naranjo","Chopo","Perro","34"); del $tabla2, as $actual . array $tabla3); $actual) "<br>";

//aumentamos $resultado foreach

tamao array_merge($tabla,

($resultado echo

?> Da Lagartija Araa Perro Gato Ratn 12 34 45 52 como resultado:

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 normales array se hara as:

$tabla = $tabla[3]="Algarrobo"; En

("Sauce","Pino","Naranjo");

arrays Sociedad" =>

asociativos: "Anoeta");

$estadios_futbol = array("Valencia" => "Mestalla","Real $estadios_futbol["Barcelona"]= "Nou Camp";

3.7 Funciones

Una funcin es el trmino para describir una secuencia de rdenes que hacen una tarea especfica de una aplicacin ms grande. Una funcin de usuario en PHP no es ms que una porcin de cdigo que podemos llamar en cualquier momento. De un lado, al dividir nuestro cdigo en funciones podemos aislar y perfeccionar cada una de sus funcionalidades; de otro lado, podemos reutilizar este cdigo, ya que una funcin puede ser llamada cuantas veces la necesitemos. Para definir una funcin debemos usar la palabra reservada function. Para llamar la funcin basta con invocar su nombre. Las declaraciones de funciones generalmente son especificadas por:

Nombre de la funcin con el que se identifica y se distingue de otras. No podr haber otra funcin, ni procedimiento con ese nombre (salvo sobrecarga o polimorfismo en programacin orientada a objetos). Un tipo de dato de retorno. Tipo de dato del valor que la funcin devolver al terminar su ejecucin. Una lista de parmetros. Especificacin del conjunto de argumentos (pueden ser cero, uno o ms) que la funcin debe recibir para realizar su tarea. El cdigo u rdenes de procesamiento. Conjunto de rdenes y sentencias que debe ejecutar la funcin.

La sintaxis de una funcin es la siguiente:

function nombreFuncion(arg1, arg2,... argn) {


//cuerpo de la funcin }

Ejemplo: Conventir grados centgrados a grados Fahrenheit.

En las lneas 2 al 4 se hace la declaracin de la funcin La palabra reservada return regresa el valor de la funcin lnea 3 En la lnea 11 se hace un llamado a la funcin cF pasandole como parmetro una variable

<?php function return }

cF( 1.8 *

$grados $grados +

){ 32;

$g = $_POST['centigrados'];

if(isset($_POST['convertir']) and $_SERVER['REQUEST_METHOD'] == 'POST' and !empty($g) ) { echo "<p class='centrado'>$g grados centigrados equivalen a "; echo cF($g)." grados Fahrenheit</p>"; unset($_POST['centigrados']); } else {

echo "<p class='centrado'>Falta informacin as no puedes "; echo "ejecutar</p>"; }

3.7. Ejemplos
Redireccionamiento de los visitantes a las pginas especficas en su idioma. Conocer los idiomas seleccionados en el navegador de nuestros visitantes puede ser un dato muy importante que puede utilizar para redirigir al usuario a una pgina especfica en el idioma correspondiente, o bien para mostrar informacin especfica dirigida al usuario (como por ejemplo el anuncio ms adecuado) Si deseamos que nuestro sitio sea bilinge en ingls y espaol, bajo el supuesto que el espaol y el ingls son los dos idiomas ms utilizado por nuestros visitantes (nuestro idioma por defecto ser espaol).
<? if (substr($_SERVER['HTTP_ACCEPT_LANGUAGE'],0,2) == 'es'){ include("paginaEspanol.html"); } else { include("paginaIngles.html"); } ?>

Imprimir fecha y hora del sistema


<html> <body> La fecha del da de hoy es: <? echo date("Y/m/d"); ?> La hora local del servidor es: <? echo date("G:i:s"); ?> </body> </html>

Ejecutar Procesando Formularios Para conocer mediante que mtodo recibimos el formulario en PHP usamos la variable de servidor $_SERVER['REQUEST_METHOD']. El siguiente cdigo muestra su uso.
<?php if ($_SERVER['REQUEST_METHOD'] == 'GET'){ echo 'Usaste GET para enviar los datos'; } else if($_SERVER['REQUEST_METHOD'] == 'PUT'){ echo 'Usaste PUT para enviar los datos';

} ?>

Eliminar espacios

La funcim trim elimina los espacios en blanco de la cadena. Observe que est funcin solo elimina los espacios en blanco de los extremos izquierdo y derecho de la cadena, ignorando los espacios en blanco internos (Lnea 9). la funcin strtoupper convierte la cadena en maysculas ucfirst convierte el primer carcter de una cadena a mayscula, si el carcter es alfabtico. la funcin strlower convierte la cadena en minsculas (Lnea 3). ereg_replace busca cualquier ocurrencia del patrn en la cadena y la reemplaza por otra. En nuestro caso, cambia todo espacio en blanco por vacio (Lnea 4).

<?php function eliminarEspacios($cadena) { $cadena = strtolower($cadena); $cadena = ereg_replace( ' ', '', $cadena); return "<p class='centrado'>".$cadena."</p><br />"; } if( isset($_POST['enviar']) && $_SERVER['REQUEST_METHOD'] == 'POST' ) { $cadena = trim($_POST['cadena']); if( empty($cadena)) { echo "<p class='centrado'>Enviaste una cadena vaca</p>"; } else echo eliminarEspacios($cadena); } else { echo "<p class='centrado'>As no puedes ejecutar</p>"; } ?>

Descargar Ejecutar

Clculo de reas y permetros El programa principal (phpcodigo3903.php) realiza una interfase bsica buscando separar el formato del proceso, por eso la cantidad de archivos.

La funcin isset() checa si pulso el botn calcular (Lnea tres). En caso contrario carga la interfase lnea 15 La funcin unset() destruye una variable, es decir la saca de la memoria (Lnea cinco). La sentencia include() inserta y evala el archivo especificado, observe que se tiene uno por figura (Lnea 8 cuadrado.inc, lnea 10 circulo.inc y lnea 12 rectngulo.inc.

Por simplicidad se presenta aqu el cdigo cuadrado.inc que no es otra cosa que cdigo html para obtener los datos necesarios para calcular el rea y el permetro de un cuadro.

En este caso el nico dato necesario es el lado. Note que las propiedas id y name del form se llaman cuadrado (lnea 1), nombre de la figura. Considere que para todos las figuras el botn de procesamiento se llamara calcular. Se incluye un componente de tipo hidden con el valor de Cuadrado (lnea 16).

Por ltimo se presenta el cdigo que procesa los datos de entrada

Envio de correos Enviar correos mediante PHP es sumamente sencillo si usamos la funcin mail La funcin mail es: mail($destino, $asunto, $mensaje, $encabezado);

donde

$destino: es la direccin a donde se enviar el mensaje $asunto: asunto del mensaje $mensaje: cuerpo del mensaje $encabezado: aqu se anexa por ejemplo a quien se enva el mensaje, si el mensaje va ir con copia para, si el mensaje ira con copia oculta para, si tendr formato html, etc. or die manda un mesaje si ocurre un error y detiene el proceso

Cdigo.

En la lnea 2 se carga una funcin llamada emailValido que se explicara posteriormente. En la lnea 4 se checa que la pgina se carga mediante el mtodo POST. Las lneas 9, 10 y 11 se recuperan los datos que provienen del formulario definido en phpcodigo3904.html. El correo se envia mediante el cdigo definido en la lnea 10, siempre y cuando tenga un destino, un asunto, un mensaje y un correo valido.

Convertir nmeros arbigos a romanos. Los nmeros romanos se escriben usando una serie de caracteres alfanmericos. Los nmeros romanos validos tienen un rango entre 1 y 3,999. Se presenta a continuacin la interfase y la solucin PHP.

La funcin principal es escribeRomanos la cual recibe como parmetro un nmero arbigo. El cdigo proporcionado incluye una funcin denominada entero que verifica que la cadena a traducir sea un entero valido entre 1 y 3,999. En las lneas 2, 8, 13 y 20 se crean los vectores necesarios para representar nmeros romanos (unidades, decenas, centenas y miles). La funcin substr extrae subcadenas y se usa para ir traduciendo el nmero arbigo a romano. La funcin int convierte una cadena a nmero si lo es.

Convertir nmeros a letras La funcin que se presenta a continuacin convierte nmeros a letras. El nmero a convertir debe ser un entero positivo menor a 999,999, 999,999.

La lnea 3 (Editada para fines de presentacin) declara un array con la representacin alfabtica de los nmeros comprendidos entre 1 y 29. Esta caracterstica se debe a que dichos nmeros no siguen un patrn para su escritura. La lnea 7 declara un arreglo asociativo que contiene la conversin de los nmeros 30, 40 ... y 90. La lnea 9 obtiene el mdulo 10 de n. Si el mdulo 10 de n es cero se regresa la posicin asociada a n en el vector decenas(lnea 9) Si el mdulo 10 de n es diferente de cero. Se regresa la posicin asociada a n en el vector decenas y se hace un llamado a la funcin bsico. La lnea 14 declara un arreglo asociativo para la representacin alfabtica de los nmeros 100,200, ... y 900. La lnea 20 hace uso de un operador ternario para poder manejar la escritura de los nmeros comprendidos entre 101 y 199. En la lnea 27 se obtiene la longitud de n. En el caso de los miles est longitud vara entre 4 y 6. substr($cadena, -3) obtiene los ltimos 3 caracteres de la cadena, lnea 28.

Grficos La grfica es una de las herramientas ms tiles en el estudio de la mayora de las disciplinas, ya que permite una visin de conjunto del fenmeno sometido a investigacin, ms rpidamente perceptible que la observacin directa de los datos numricos y alfanumricos. Sus aplicaciones son mltiples y variadas en casi todo el quehacer humano.

Existen diversas libreras escritas para PHP gratuitas y de paga, su seleccin depende del objetivo y el precio. En este punto abordaremos el uso de JpGraph librera de uso libre completamente escrita en PHP y funcional para scripts PHP. JpGraph es una librera orientada a objetos para PHP >= 5.1 Grfica X - Y A continuacin se presentan las temperaturas (mnimo, media y mxima) promedio en la ciudad y puerto de Veracruz, Ver. Mxico

En la lnea 2 y 3 se carga la librera JpGraph. Las lneas 4, 5 y 6 se encargan de definir los datos mediante arreglos para cada serie En las lneas 7 al 13 se definen las caractersticas de las grficas. Donde Graph( Ancho, Alto), crea un objeto de tipo grfica En las lneas 15 al 17, se definen el eje X en este caso meses en espaol. Las lneas 20 al 22, definen las series en la grfica La lnea 24 agrega fsicamente las series a las grficas y la lnea 25 imprime la grfica.

Gfica de barras El ejemplo describe los resultados oficiales del examen de admisin 2010 del Instituto Tcnologico de Veracruz. La lnea 11 se encarga de posicionar las leyendas de cada serie en nuestro caso ingresos a primer semestre e ingresos al semestre cero. La lnea 15 y 20 definen el formato de presentacin de los datos, en este caso %0.0f indica que los valores se presentaran como enteros. La propiedad SetFillGradient (lneas 16 y 21) configuran el degradado de los colores en las barras El mtodo Stroke nos permite mostrar la grfica (lnea 28)

Grficas de pastel Las grficas de pastel sirven para expresar porcentajes o conteos de variables cualitativas (ordinales o nominales).

PiePlot crea una instancia de una grfica de pastel (lnea 5) Las etiquetas se crean en la lnea 20 se definen las etiquetas de los datos y su representacin (.1f) expresa un decimal.

Você também pode gostar