Php y MySql Parte6

21
PHP y MySQL. Aplicaciones Web: programación PHP II (sexta parte) Autor: Johnny Zulca Mamani [Ver curso online] Descubre miles de cursos como éste en www.mailxmail.com 1 mailxmail - Cursos para compartir lo que sabes

description

oop

Transcript of Php y MySql Parte6

Page 1: Php y MySql Parte6

PHP y MySQL. Aplicaciones Web:programación PHP II (sextaparte)Autor: Johnny Zulca Mamani

[Ver curso online]

Descubre miles de cursos como éste en www.mailxmail.com 1

mailxmail - Cursos para compartir lo que sabes

Page 2: Php y MySql Parte6

Presentación del curso

Programación de aplicaciones Web con PHP y MySQL. Ahora continuaremos con elestudio del lenguaje de programación PHP. Aprende sobre la variable Arrays, losArrays asociados, los multidimensionales y las funciones para los Arrays. Tambiénte enseñaremos a realizar el envío de mail por PHP. Al finalizar este curso habrásaprendido el funcionamiento y realización de los scripts de PHP, el uso de bucles decódigo, el uso de los Arrays en sus diferentes formas, la utilización y creación de suspropias librerías de funciones en PHP, además de otros aspectos.

Visita más cursos como este en mailxmail:[http://www.mailxmail.com/cursos-informatica][http://www.mailxmail.com/cursos-seguridad-informatica]

¡Tu opinión cuenta! Lee todas las opiniones de este curso y déjanos la tuya:[http://www.mailxmail.com/curso-php-mysql-web-programacion-6/opiniones]

Cursos similares

Cursos Valoración Alumnos Vídeo

WML. Internet para móvil (segunda parte)Internet para móvil y el lenguaje WML son las claves de este curso. En estaocasión estudiaremos la creación del WML y las variables m&a... [07 /07/09]

579  

Zone AlarmEn la actualidad las líneas ADSL nos permiten navegar sin tener que mirar elreloj y nos facilitan una velocidad más que interesante para navegar. Estasdos cual... [09 /03/04]

5.202  

Usabilidad webLa usabilidad es el principal elemento con el cual debe contar toda páginaWeb. Yo defino Usabilidad como la capacidad de una aplicación de seragradable, eficiente y fá... [17 /07/06]

1.880  

Conceptos básicos de redesEste curso presenta los principios básicos y la escritura de lascomunicaciones en red para que puedas crear tus propias redes ysolucionar todos los problemas que te sur... [03 /11/05]

8.905  

Introducción de redesUna red de área local (LAN: Local Are Network) es la interconexión dedispositivos de Cómputo que pueden comunicarse entre sí y compartir ungrupo de recursos comunes, co... [21 /02/06]

8.899  

Descubre miles de cursos como éste en www.mailxmail.com 2

mailxmail - Cursos para compartir lo que sabes

Page 3: Php y MySql Parte6

1. Arrays[http://www.mailxmail.com/curso-php-mysql-web-programacion-6/arrays]

Arrays

Un Array es una variable que dentro de el contiene muchos valores asociadosmediante una clave, algo así como una variable que contiene como valor muchasotras variables. Son un lugar donde tiene un nombre en donde podemos almacenarun conjuntode valores, cada elemento del array tiene un índice asociado empezando desde 0 amás.

Arrays indexados numéricamente

Ejemplo de un Array

Una forma de declarar un Array$días_semana = array("lunes","martes","miércoles","jueves","viernes","sábado","domingo");echo $días_semana[3]; //esto me devolverá el día Jueves asociado al índice "3"Otra forma de declarar un Array$días_semana[0] = "lunes";

$días_semana[1] = "martes";$días_semana[2] = "miércoles";$días_semana[3] = "jueves";$días_semana[4] = "viernes";$días_semana[5] = "sábado";$días_semana[6] = "domingo";

Como recorrer un Array, ósea como visualizar por pantalla todos los datos de unArray, esto se puede hacer utilizando las estructuras de control o utilizando unafunción de PHP "foreach".

for($i=0;$i<7;$i++) //7 por que es el número de datos (días) que tiene el Array{echo $días_semana[$i]."<br>";//imprime cada día de la semana identificado por su índice $i}

//La otra forma de recorrer un Array es://foreach obtiene cada valor en una variable $día por ejemplo hasta llegar alfinalforeach($días_semana as $dia){echo $día."<br>";}

Descubre miles de cursos como éste en www.mailxmail.com 3

mailxmail - Cursos para compartir lo que sabes

Page 4: Php y MySql Parte6

2. Foreach(): estructura[http://www.mailxmail.com/curso-php-mysql-web-programacion-6/foreach-estructura]

La estructura de foreach() es como sigue:

foreach($array as $clave=>$valor){instrucciones;}

Práctica 1: Manejo de Arrays

array1.php- Utilización de arrays indexados numéricamente para listar libros

<?$libros[0]="Action, ";$libros[1]="Photoshop, ";$libros[2]="Flash, ";$libros[3]="Red hat.";echo "<h3>Recorrido con each()</h3>";foreach($libros as $clave=>$valor){echo "indice ".$clave." Valor ".$valor."<br>";}echo "<h3>Otro Recorrido con each()</h3>";

foreach($libros as $dia){echo $dia."<br>";}?>

Descubre miles de cursos como éste en www.mailxmail.com 4

mailxmail - Cursos para compartir lo que sabes

Page 5: Php y MySql Parte6

3. Arrays Asociados[http://www.mailxmail.com/curso-php-mysql-web-programacion-6/arrays-asociados]

Arrays Asociativos

A cada elemento se le asigna un valor (key) para acceder a el, para entenderlovayamos con un ejemplo, supongamos que tenemos un array en la que cadaelemento almacena el numero de visitas a nuestra Web por cada día de la semana.Utilizando el método clásico de índices, cada día de la semana seria representadopor un entero, 0 para el lunes, 1 para martes, etc.

$visitas[0] = 200;$visitas[1] = 185;

i usamos arrays asociativos seria así:

$visitas["lunes"] = 200;$visitas["martes"] = 185;o de esta forma$visitas = array("lunes"=>200; "martes"=>185);

Y obtenemos el valor de algún elemento del array de esta forma echo$visitas["martes"]."<br>";

De aquí con este tipo de arrays se salva la dependencia de un índice para elrecorrido del array u obtener un elemento del mismo.

Recorrer un array, es común utilizar la función "each()" cuando recorre el ultimoelemento del array devuelve falso y salto de la iteración que controla el recorrido.

$visitas = array("lunes"=>200; "martes"=>185; "miercoles"=>450);reset($visitas);while(list($clave, $valor) = each($visitas))

{echo "el día $clave ha tenido $valor visitas <br>";}

Descubre miles de cursos como éste en www.mailxmail.com 5

mailxmail - Cursos para compartir lo que sabes

Page 6: Php y MySql Parte6

foreach funciona solamente con matrices (arrays)each() Devuelve el siguiente par clave/valor de una matriz y avanza elapuntador. Tiene que usar reset()each() se usa normalmente de forma conjunta a list() para recorrer una matriz.

Descubre miles de cursos como éste en www.mailxmail.com 6

mailxmail - Cursos para compartir lo que sabes

Page 7: Php y MySql Parte6

4. Arrays Multidimensionales[http://www.mailxmail.com/curso-php-mysql-web-programacion-6/arrays-multidimensionales]

Arrays Multidimensionales

Los arrays multidimensionales son simplemente arrays en las cuales cada elementoes a su vez otro array.

Por ejemplo un listado de libros y cada uno de ellos con algunos atributos porejemplo; su código, nombre, precio.

$libros=array(array("A","Action",100),array("P", "Photo", 10),array("F", "Flash", 4));

Como recorrer este tipo de arrays, de esta manera:

While(list($clave, $valor) = each($libros)){echo "El libro con código $valor[0] de nombre $valor[1] tiene un costo de S/.$valor[2] <br>";} //otra forma de hacerlo es:for ($fila=0;$fila<3;$fila++){while(list ($key, $value)=each($libros[$fila])){echo"|$value";}echo "|<br>";}

array2.php- Utilización de arrays asociativos en listado de libros

<?$precios= array("Action"=>112, "Photo"=>24, "Flash"=>43);echo "<h3>Recorrido array asociativo con list()</h3>";while(list($producto, $precio) = each($precios))echo "$producto - $precio<br>";

reset($precios);echo "<h3>Recorrido array asociativo</h3>";while($elemento = each($precios)){echo $elemento["key"];echo " - ";echo $elemento ["value"];echo"<br>";}?>

Descubre miles de cursos como éste en www.mailxmail.com 7

mailxmail - Cursos para compartir lo que sabes

Page 8: Php y MySql Parte6

5. Funciones para Arrays[http://www.mailxmail.com/curso-php-mysql-web-programacion-6/funciones-arrays]

Funciones para Arrays

Práctica 2: aleatorio.php - Mostrar imágenes de libros aleatorio.

<?php$imágenes= array("libro1.jpg","libro2.jpg","libro3.jpg","libro4.jpg","libro5.jpg","libro6.jpg","libro7.jpg","libro8.jpg","libro9.jpg","libro10.jpg","libro11.jpg","libro12.jpg");shuffle($imagenes);?>< h t m l ><head><tit le>Librería Online</tit le>< /head><body><center><h1>Librería Online</h1><!-Listado de imágenes aleatoriamente->

<table width=75%>< t r ><?for($i=0;$i<3;$i++){?>

Descubre miles de cursos como éste en www.mailxmail.com 8

mailxmail - Cursos para compartir lo que sabes

Page 9: Php y MySql Parte6

<td align=center><img src="<? echo $imagenes[$i];?>" widht="140"height="200"></ td><?}?>< / t r>< / tab le>< /cen te r>< / b o d y >< / h t m l >

Descubre miles de cursos como éste en www.mailxmail.com 9

mailxmail - Cursos para compartir lo que sabes

Page 10: Php y MySql Parte6

6. Librería de Funciones[http://www.mailxmail.com/curso-php-mysql-web-programacion-6/l ibreria-funciones]

Librería de Funciones de PHP

Funciones para el manejo de cadenas (strings)

Descubre miles de cursos como éste en www.mailxmail.com 10

mailxmail - Cursos para compartir lo que sabes

Page 11: Php y MySql Parte6

7. Funciones para el manejo la fecha y el tiempo[http://www.mailxmail.com/...curso-php-mysql-web-programacion-6/funciones-manejo-fecha-tiempo]

Práctica 3: práctica3.php- Utilizando diversas funciones de cadena

<?phpecho "Esta cadena: (123456) tiene como tamaño: ".strlen("123456")."<br>";echo "Esta frase (Esto es una prueba) va ha ser partida en:<br>";$palabras = split(" ","Esto es una prueba");for($i=0;$i<sizeof($palabras);$i++){echo $palabras[$i]."<br>";}$resultado = sprintf("8x5 = %d <br>", 8*5);echo $resultado."<br>";echo substr("Devuelve una subcadena de otra",3,9)."<br><br>";if(trim(" cadena \n\n") == "cadena"){echo "Iguales<br><br>";}echo strpos("Busca palabra dentro de la frase","palabra")."<br><br>";echo str_replace("verde","rojo","Un pez de color verde, como verde es lahierba.")."<br><br>";?>

Funciones para el manejo la Fecha y el Tiempo

time

Devuelve el número de segundos transcurridos desde el 1 de Enero de 1970. A esta forma deexpresar fecha y hora se le denomina timestamp.

date(formato,timestamp)

La función date devuelve una cadena formateada según los códigos de formato. Si no lepasamos la variable timestamp nos devuelve la cadena formateada para la fecha y la horaactual. Los códigos de formato para la función date son:

Descubre miles de cursos como éste en www.mailxmail.com 11

mailxmail - Cursos para compartir lo que sabes

Page 12: Php y MySql Parte6

Descubre miles de cursos como éste en www.mailxmail.com 12

mailxmail - Cursos para compartir lo que sabes

Page 13: Php y MySql Parte6

8. Funciones de fecha hora (primera parte)[http://www.mailxmail.com/...o-php-mysql-web-programacion-6/funciones-fecha-hora-primera-parte]

Algunos ejemplos de las funciones de fecha hora

date("d-m-Y"); / / 07-04-2006date("H:i:s"); // 14:30:22date("Y"); // 2006date("YmdHis"); // 20060407143022date("d/m/y H:i a"); // 07/04/06 14:30 pmdate("d-m-Y H:i", time()); // el momento actual

mktime(hora, min, seg, mes, dia, año)

La función mktime devuelve una variable de tipo timestamp a partir de las coordenadas dadas.La principal utilidad de esta función es la de añadir o quitar una determinada cantidad de fechau horas a una dada.

function restar_dias($numdias, $date){if(isset($date)){$date = time();}list($hora, $min, $seg, $día, $mes, $anno)= explode(" ", date("H i s d m Y"));$d = $día - $numdias;$fecha = date("d-m-Y", mktime($hora, $min, $seg, $mes, $d, $anno));return $fecha;}echo restar_dias(25, date("d-m-Y"))."<br>";

Descubre miles de cursos como éste en www.mailxmail.com 13

mailxmail - Cursos para compartir lo que sabes

Page 14: Php y MySql Parte6

9. Funciones de fecha hora (segunda parte)[http://www.mailxmail.com/...o-php-mysql-web-programacion-6/funciones-fecha-hora-segunda-parte]

mktime(hora, min, seg, mes, dia, año)

La función mktime devuelve una variable de tipo timestamp a partir de las coordenadasdadas. La principal utilidad de esta función es la de añadir o quitar una determinadacantidad de fecha u horas a una dada.

function restar_días($numdias, $date){if(isset($date)){$date = time();}list($hora, $min, $seg, $dia, $mes, $anno)= explode(" ", date("H i s d m Y"));$d = $día - $numdias;$fecha = date("d-m-Y", mktime($hora, $min, $seg, $mes, $d, $anno));return $fecha;}echo restar_días(25, date("d-m-Y"))."<br>";

checkdate(mes. Dia, año)

La función checkdate compraba si una fecha es válida, si es así devuelve True y si no lo esFalse. Una fecha se considera válida si el año esta entre 1900 y 32767, el mes entre 1 y 12 yel día es menor o igual que el número de días total del mes en cuestión.

if(checkdate(31, 2, 2006)){echo "la fecha es correcta";}else{echo "la fecha es incorrecta";}

Práctica 4: fecha_nace.php- Calcular tu edad y el día que naciste

<?function fecha_nace($dia, $mes, $ano){$seg_pasados = mktime(0,0,0,$mes,$dia,$ano);$seg_actuales = time();$seg_trans = $seg_actuales - $seg_pasados;$dias=$seg_trans/(60*60*24);$ano=floor($dias/365);$resultado = "tu edad es ".$ano."<br>";$días = array();$días[0]="domingo";$días[1]="lunes";$días[2]="martes";$días[3]="miércoles";$días[4]="jueves";$días[5]="viernes";$días[6]="sábado";$resultado.="El día que naciste es ";

Descubre miles de cursos como éste en www.mailxmail.com 14

mailxmail - Cursos para compartir lo que sabes

Page 15: Php y MySql Parte6

$resultado.=$dias[date("w", mktime(0,0,0,$mes,$dia,$ano))];return $resultado;} //día ,mes ,añoecho fecha_nace(06,12,1978);

Descubre miles de cursos como éste en www.mailxmail.com 15

mailxmail - Cursos para compartir lo que sabes

Page 16: Php y MySql Parte6

10. Envío de mails con PHP[http://www.mailxmail.com/curso-php-mysql-web-programacion-6/envio-mails-php]

EnvÍo de mails con PHP

Para el envÍo de correo electronico utilizando PHP disponemos de una función"mail()" bastante potente, incluida en todas las versiones de PHP, sin necesidad deinstalar ningun añadido, en contra de lo que ocurria con ASP.

mail(destinatario, asunto, texto del mensaje);

Existe una sintaxis extendida de la función mail(), que nos permite añadirinformación adicional a la cabecera del mensaje.

mail(destinatario, asunto, texto del mensaje, información adicional de cabecera);

En la información de cabecera podermos incluir parámetros adicionales al mensajecomo: Reply-To, From, Content-type... que nos permiten tener un mayor controlsobre el mensaje.

Descubre miles de cursos como éste en www.mailxmail.com 16

mailxmail - Cursos para compartir lo que sabes

Page 17: Php y MySql Parte6

11. Envío de mail. Práctica[http://www.mailxmail.com/curso-php-mysql-web-programacion-6/envio-mail-practica]

Práctica 5: envia_email.html- envío de email

<form action="enviar.php" method="post"><table width="100%" border="0" cellpadding="2" cellspacing="2"><tr><td>Nombres y Apel l idos:</td><td><input type="text" name="nombres" value="" size="30"></td></tr><t r><td>Direcc ion:</ td><td><input type="text" name="direccion" value="" size="30"></td></tr><tr><td>Telefono y/o celular:</td><td><input type="text" name="teléfono" value="" size="15"></td></tr>< t r>< td>ema i l :< / td><td><input type="text" name="email" value="" size="30"></td></tr><t r><td>Comentar io :</ td><td><textarea name="comentario" rows="4"co ls="40"></ tex tarea></ td></ t r><tr><td align="right"><input type="reset" value="Limpiar"></td><td align="left"><input type="submit" value="Enviar"></td></tr>< / tab le>< / f o r m >

enviar.php - procesa el formulario de envío de email

<?$tipo_envío="html"; //text | html$email_contacto = "jozuma";$asunto = "Contacto desde la Web";$cuerpo="";if($tipo_envío=="text"){

//envío en formato texto plano$cuerpo.= "Nombres: ".$_POST["nombres"]."\n";$cuerpo.= "Telefono: ".$_POST["telefono"]."\n";$cuerpo.= "Direccion: ".$_POST["direccion"]."\n";$cuerpo.= "Comentario: ".$_POST["comentario"]."\n\n";$headers = "From: ".$_POST["nombres"]." <".$_POST["email"].">\n";mail($email_contacto,$asunto,$cuerpo,$headers);echo "su comentario fue enviado con exito";}elseif($tipo_envio=="html"){//envío en formato HTML$cuerpo = "<html><head><tit le>Contacto desde la Web</tit le></head><body>Contacto".$_POST["nombres"]."<br>".$_POST["direccion"]."<br>".$_POST["teléfono"]."<br><b>Comentario</b><h1>".$_POST["comentario"]."< /h1><b r>< /body>< /h tm l> " ;$headers = "Content-type: text/html\n";

Descubre miles de cursos como éste en www.mailxmail.com 17

mailxmail - Cursos para compartir lo que sabes

Page 18: Php y MySql Parte6

$headers.= "From: ".$_POST["nombres"]." <".$_POST["email"].">\n";mail($email_contacto,$asunto,$cuerpo,$headers);echo "su comentario fue enviado con éxito";}?>

Descubre miles de cursos como éste en www.mailxmail.com 18

mailxmail - Cursos para compartir lo que sabes

Page 19: Php y MySql Parte6

12. Reutilización de código, require() e include()[http://www.mailxmail.com/...php-mysql-web-programacion-6/reutil izacion-codigo-require-include]

Reutilización de Código, require() e include()

Una página web hecha en HTML y una página Web hecha en PHP modularizada con el uso deincludes en las siguientes partes:

Header - cabeceraFooter - pieCuerpo - contenidos

¿Por que modularizar?

Siempre el pie y cabecera son lo mismo si nosotros deseamos cambiar informacion en unade ellas deberiamos cambiar en todas las páginas que tendría nuestro Sitio Web si no estánmodularizadas.

¿Por que reutilizar código?

Uno de los beneficios para los programadores, es para no volver a escribirlo.También nospermite reducir los costos de creación de una aplicación, incrementar la rentabilidad denuestro trabajo provee a nuestras aplicaciones de consistencia al tener un código masuniforme.

require e include

Nos permite reutilizar cualquier tipo de código usando una declaración require o includepodemos cargar un archivo dentro del script de php, ese archivo puede contener todo lo quepuede escribirse en cualquier script, inlcuyendo declaraciones php, texto, etiquetas HTML,funciones php o clases php.

PHP no mira la extensión del archivo que va a cargar, no es necesario que sea .php Lassentencias require() e include() son idénticas en todos los aspectos excepto en el modo deactuar ante un error, include() produce un Warning mientras que require() produce un ErrorFatal.

require("librería.php");require("datos.txt");include("header.php")son algunos ejemplos de cómo se cargan con las sentencias require() e include() archivos obien llamados por su propósito librerías

Práctica 6: Reutilizar codigo con include() y require()

Descubre miles de cursos como éste en www.mailxmail.com 19

mailxmail - Cursos para compartir lo que sabes

Page 20: Php y MySql Parte6

13. Declarar y llamar funciones[http://www.mailxmail.com/curso-php-mysql-web-programacion-6/declarar-l lamar-funciones]

Declarar y Llamar Funciones

Funciones

El uso de funciones nos da la capacidad de agrupar varias instrucciones bajo un solonombre y poder llamarlas a estas varias veces desde diferentes sitios, ahorrandonosla necesidad de escribirlas de nuevo.

function nombre_funcion(parametro1, parámetro2){instrucción1;instrucción2;return valor_de_retorno;}

Opcionalmente podemos pasarle parámetros a las funciones, que se tratarán comovariables locales y así mismo podemos devolver un resultado con la instrucciónreturn valor.

< h t m l ><head><tit le>ejemplo de funciones 1</t i t le></head><body><?phpfunction media_artimetica($a, $b){$media = ($a + $b)/2;return $media;}echo media_aritmetica(4, 6)."<br>";echo media_aritmetica(234, 546)."<br>";?>< / b o d y >< / h t m l >

Los parámetros se pasan por valor y también por referencia el cual va afectar alvalor de la variable original dentro de la función.

function porvalor($parametro){$parametro = "hola";}$mivariable = "esto no cambia";porvalor($mivariable);echo "<br>".$mivariable; //no cambia el valor de $mivariablefunction porreferencia(&$cadena){$cadena = "si cambia";

Descubre miles de cursos como éste en www.mailxmail.com 20

mailxmail - Cursos para compartir lo que sabes

Page 21: Php y MySql Parte6

}$str = "esto es una cadena";porreferencia($str);echo $str; //imprim "si cambia"Pasamos los parámetros por referencia si, en la declaración de la funcióncolocamos "&" antes del parámetro

Práctica 7: utilización de funciones en librería con include() y require()

NOTA: Con este capítulo hemos llegado al final del curso.

Visita más cursos como este en mailxmail:[http://www.mailxmail.com/cursos-informatica][http://www.mailxmail.com/cursos-seguridad-informatica]

¡Tu opinión cuenta! Lee todas las opiniones de este curso y déjanos la tuya:[http://www.mailxmail.com/curso-php-mysql-web-programacion-6/opiniones]

Cursos similares

Cursos Valoración Alumnos Vídeo

WML. Internet para móvil (segunda parte)Internet para móvil y el lenguaje WML son las claves de este curso. En esta ocasiónestudiaremos la creación del WML y las variables m&a... [07 /07/09]

579  

Introducción de redesUna red de área local (LAN: Local Are Network) es la interconexión de dispositivosde Cómputo que pueden comunicarse entre sí y compartir un grupo de recursoscomunes, co... [21 /02/06]

8.899  

Internet. Web 2.0Internet. Web 2.0 se refiere a una segunda generación en la historia de la Webbasada en comunidades de usuarios y servicios especiales, como las redessociales... [27 /05/09]

1.573  

Redes y comunicaciones (tercera parte)Este curso es la tercera y última parte de nuestro estudio técnico explicativo sobreredes y comunicaciones de transferencia de datos. En esta oportunidad podrásampliar ... [27 /08/08]

1.816  

Crea un Blog con BloggerLos Blogs, abreviación de Weblog, son páginas de opiniones e informaciónestructurada por días y horas de publicación, cómo si de un diario o bitácora setratase.... [28 /06/04]

13.041  

Descubre miles de cursos como éste en www.mailxmail.com 21

mailxmail - Cursos para compartir lo que sabes