Вы находитесь на странице: 1из 14

GUA DE LABORATORIO 3

Funciones estndares y formularios

Universidad Nacional del Santa

Laboratorio4-Fundamentos del Lenguaje PHP

LABORATORIO Objetivos: Escribir funciones en PHP. Utilizar las funciones predeterminadas del PHP. Recuperar valores de los formularios HTML con PHP.

Equipos, Materiales, Programas y Recursos: Sistema Operativo Windows. Navegador Web. Editor de texto.

Introduccin: En esta unidad aprenderemos sobre las libreras estndares del PHP, como las de manejo de vectores, caracteres, tiempo, fecha, para uso de formularios, etc. Adems conoceremos cmo trabajar con formularios en HTML, para recuperar y procesar los datos enviados. Seguridad: Ubicar maletines y/o mochilas en el gabinete al final de aula de laboratorio. No ingresar con lquidos ni comida al aula de laboratorio. Al culminar la sesin de laboratorio, apagar correctamente la computadora y el monitor.

Preparacin: Los alumnos debern realizar todos los ejercicios realizados y propuestos de esta gua de laboratorio. Procedimiento y Resultados:

EAPISI

Dra. Diana Cecilia Muoz Casanova dianauns@yahoo.es

Pg. 2

Universidad Nacional del Santa

Laboratorio4-Fundamentos del Lenguaje PHP

LABORATORIO FUNCIONES Primera funcin <?php function mayor ($x, $y) { $msg = ""; if ($x > $y) { $msg = $x." es mayor que ".$y; } else { $msg = $y." es mayor que ".$x; } return $msg; } print mayor(3, 5); ?> Paso de valores a las funciones por valor <?php function incrementar($x){ $x = $x + 1; return $x; } $x = 10; incrementar($x); print $x; // Imprime 10 ?> Paso de valores a las funciones por referencia <?php function incrementar(&$x){ $x = $x + 1; return $x; } $x = 10; incrementar($x); print $x; // Imprime 11 ?>

EAPISI

Dra. Diana Cecilia Muoz Casanova dianauns@yahoo.es

Pg. 3

Universidad Nacional del Santa

Laboratorio4-Fundamentos del Lenguaje PHP

Parmetros por defecto en las funciones <?php function suma ($x=1, $y) { $x = $x + 1; return $x+$y; } print suma (3); //Error: Imprime: 'Warning: Missing argument 2 for suma()' ?>

<?php function suma ($y, $x=1) { $x = $x + 1; return $x+$y; } print suma (3); // Correcto!: Imprime : '5' ?> Ambito de las variables en las funciones <?php $posicion = "m"; function cambiar_posicion(){ $posicion = "s"; } cambiar_posicion(); echo $posicion; ?>

Ejercicio1: Programar las siguientes funciones: Funcin llamada cuadrado que calcule el cuadrado de un nmero. Funcin llamada implicacin que calcule si la implicacin lgica de sus dos operandos es verdadera o falsa. Funcin que devuelve la media aritmtica de los nmeros contenidos en un vector que se le pasa como argumento. (Nota: count($a) devolvera el nmero de elementos del vector $a). Funcin que calcule el factorial de un nmero (el factorial de un nmero natural es ese nmero multiplicado por todos los dems nmeros naturales menores que l, de modo que el factorial de 4 sera igual a 4*3*2*1).

EAPISI

Dra. Diana Cecilia Muoz Casanova dianauns@yahoo.es

Pg. 4

Universidad Nacional del Santa

Laboratorio4-Fundamentos del Lenguaje PHP

FUNCIONES DE VECTORES Bsqueda en vectores <?php $paises = array("us", "uk", "ca", "cr", "de"); if (in_array ("us", $paises)){ print "Encontrado us <br/>"; } if (in_array("uk", $paises)) { echo "Encontrado uk <br/>"; } ?> Bsqueda en vectores asociativos <?php $paises = array("us" => "United States", "uk" => "United Kingdom", "ca" => "Canada", "cr" => "Costa Rica", "pe" => "Per"); $clave = array_search('Per', $paises); print $clave; ?> Ordenar vectores <?php $paises = array("us", "uk", "ca", "cr", "de"); sort($paises); while( list($key, $val) = each($paises) ){ echo "El elemento $key equivale a $val <br/>"; } ?> Ordernar un vector asociado <?php $paises = array("us" => "United States", "uk" => "United Kingdom", "ca" => "Canada", "cr" => "Costa Rica", "de" => "Germany"); sort($paises); // asort($paises);
EAPISI Dra. Diana Cecilia Muoz Casanova dianauns@yahoo.es Pg. 5

Universidad Nacional del Santa

Laboratorio4-Fundamentos del Lenguaje PHP

// ksort($paises); while( list($key, $val) = each($paises) ){ echo "El elemento $key equivale a $val <br/>"; } ?> Agregar elementos a un Vector <?php $paises = array("us", "uk", "ca", "cr", "de"); array_push($paises, "pe"); print '<pre/>'; print_r($paises); ?> Agregar elementos a un Vector Asociativo <?php $paises = array("us" => "United States", "uk" => "United Kingdom", "ca" => "Canada", "cr" => "Costa Rica", "pe" => "Per"); $mas_paises = array("co" => "Colombia"); $total_paises = array_merge($paises, $mas_paises); print '<pre/>'; print_r($total_paises); ?> Eliminar elementos de un Vector <?php $paises = array("us" => "United States", "uk" => "United Kingdom", "ca" => "Canada", "cr" => "Costa Rica", "de" => "Germany"); unset($paises['ca']); print_r($paises); ?> Encontrar la posicin de un elemento dentro de un Vector

EAPISI

Dra. Diana Cecilia Muoz Casanova dianauns@yahoo.es

Pg. 6

Universidad Nacional del Santa

Laboratorio4-Fundamentos del Lenguaje PHP

<?php $paises = array("us" => "United States", "uk" => "United Kingdom", "ca" => "Canada", "cr" => "Costa Rica", "de" => "Germany"); $posicion = array_search("Canada", $paises); print $posicion; ?> Invertir un Vector <?php $paises = array("us" => "United States", "uk" => "United Kingdom", "ca" => "Canada", "cr" => "Costa Rica", "de" => "Germany"); $paises2 = array_reverse($paises); print_r($paises2); ?>

Ejercicio2: Crear una funcin que tome un vector no asociativo y lo devuelva ordenado de forma ascendente, sin duplicados y con el puntero interno apuntando al principio.

FUNCIONES DE CADENAS Substring <?php $s = substr("hola", 1); // $s = "ola" print $s; $s = substr("hola", -1); // $s = "a" $s = substr("hola", 1, 2); // $s = "ol" $s = substr("hola", 0, -2); // $s = "ho" $s = substr("hola", 1, 52); // $s = "ola" $s = substr("hola", 1, -2); // $s = "o" ?>

EAPISI

Dra. Diana Cecilia Muoz Casanova dianauns@yahoo.es

Pg. 7

Universidad Nacional del Santa

Laboratorio4-Fundamentos del Lenguaje PHP

Reemplazar un string <?php $s = substr_replace ("hola", "arbol", 1, 2); // $s = "harbola" print $s; ?> Quitar espacios en blanco <?php $s = trim(" hola "); // $s = "hola" print $s; ?> Convertir a maysculas y minsculas <?php $texto = "hola pepe"; $s = ucwords($texto); // $s = "Hola Pepe" $s = strtolower($texto); $s = strtoupper($texto); print $s; ?> Obtener la longitud de la cadena <?php $n = strlen("hola"); // $n = 4 print $n; ?> Manejo de cadenas con HTML <?php $s = addslashes("'hola'"); // $s = "\'hola\'" print $s; ?> Convertir los \n en <br/> <?php echo nl2br("Aqui sucede un salto de\nlinea"); ?> Convertir caracteres especiales a entidades HTML <?php echo htmlspecialchars("Texto de \" prueba \". Este es un ampersand & "); ?>
EAPISI Dra. Diana Cecilia Muoz Casanova dianauns@yahoo.es Pg. 8

Universidad Nacional del Santa

Laboratorio4-Fundamentos del Lenguaje PHP

FUNCIONES DE TIEMPO Y FECHA Mostrar la hora actual (Nmero de segundos transcurridos desde las 00:00:00 del 1 de enero de 1970 GMT) <?php print time(); ?> Formatos de Fecha y Hora <?php date("d-m-Y"); // 07-04-2007 date("H:i:s"); // 14:30:22 date("Y"); // 2007 date("YmdHis"); // 20070407143022 date("d/m/y H:i a"); // 07/04/07 14:30 pm date("d-m-Y H:i", time()); // el momento actual ?> Funcin restar das <?php function restarDias($numdias) { list($hora, $min, $seg, $dia, $mes, $anno) = explode( " ", date("H i s d m Y")); $d = $dia - $numdias; $fecha = date("d-m-Y", mktime($hora, $min, $seg, $mes, $d, $anno)); return $fecha; } $resultado = restarDias(2); print $resultado; ?> Verificar una fecha <?php if (checkdate(2, 31, 2007)) { echo "La fecha es correcta"; } else { echo "La fecha es incorrecta"; } ?>

EAPISI

Dra. Diana Cecilia Muoz Casanova dianauns@yahoo.es

Pg. 9

Universidad Nacional del Santa

Laboratorio4-Fundamentos del Lenguaje PHP

Ejercicio3: Crear una funcin que, dado un da, mes y ao, devuelva verdadero si dicha fecha est entre el da actual y 30 das despus de la fecha actual (inclusive). FUNCIONES DE ENTRADA Y SALIDA Leer un archivo <?php //abre un archivo e imprime cada lnea $archivo = fopen("data.txt" , "r"); if ($archivo) { while (!feof($archivo)) { $linea = fgets($archivo, 255); echo $linea . <br/>; } } fclose ($archivo); ?> Escribir en un archivo <?php //abre un archivo y escribe en l $archivo = fopen("data.txt" , "w"); if ($archivo){ fputs ($archivo, "Curso de PHP"); } fclose ($archivo); ?> Verificar si un archivo existe <?php if (file_exists("data.txt")){ echo "El archivo existe"; } else { echo "El archivo NO existe"; } ?> Copiar archivo <?php if (copy("data.txt", "data_backup.txt")) echo "El archivo ha sido copiado con xito"; else echo "El archivo NO se ha podido copiar";
EAPISI Dra. Diana Cecilia Muoz Casanova dianauns@yahoo.es Pg. 10

Universidad Nacional del Santa

Laboratorio4-Fundamentos del Lenguaje PHP

?>

Ejercicio4: Escribir una funcin que lee un archivo compuesto por direcciones de correo electrnico, una por lnea y devuelva un vector con esas lneas. MANEJO DE FORMULARIOS HTML CON PHP

Script que recupera los datos del formulario recupera.php <?php if ( isset ( $_POST['enviar'] )) { echo "<b>RECUPERANDO LOS DATOS:</b><p>\n"; echo "Hola <b>" . $_POST['nombre'] . "</b> que tal ests<BR>\n"; echo "Eres " . $_POST['sexo'] . "<BR>\n"; echo "Tienes " . $_POST['edad'] . "<BR>\n"; echo "Tu sistema favorito es " . $_POST['sistema'] . "<BR>\n"; if ( isset ( $_POST['futbol'] ) ) { echo "Te gusta el futbol <BR>\n"; } else { echo "NO te gusta el futbol <BR>\n";
EAPISI Dra. Diana Cecilia Muoz Casanova dianauns@yahoo.es Pg. 11

Universidad Nacional del Santa

Laboratorio4-Fundamentos del Lenguaje PHP

} if ( $_POST['aficiones'] != "" ) { echo "Tus aficiones son: <BR>\n"; echo nl2br($_POST['aficiones']); } else { echo "NO tienes aficiones <BR>\n"; } } ?>

Ejercicio5: Crear un formulario que pida a un cliente sus datos. Estos sern: nombre, apellidos, nombre de usuario, contrasea (pedirla dos veces), direccin, ciudad, Codigo Postal, Pas, telfono y direccin de correo electrnico. Escribir todos estos datos en un arc hivo. Debe ir todo el mecanismo en un slo archivo en PHP. Validar formularios (del ejercicio anterior) <?php $error = ""; if (isset($_POST['enviar'])) { if (!$_POST['nombre']) $error .= "Tendr usted un nombre, digo yo.<br>"; if (!$_POST['aficiones']) $error .= "No creo que sea usted tan aburrido, algo har, seguro.<br>"; print $error; } if ($_POST['enviar'] && !$error) { echo "<b>RECUPERANDO LOS DATOS:</b><p>\n"; echo "Hola <b>" . $_POST['nombre'] . "</b> que tal ests<BR>\n"; echo "Eres " . $_POST['sexo'] . "<BR>\n"; echo "Tienes " . $_POST['edad'] . "<BR>\n"; echo "Tu sistema favorito es " . $_POST['sistema'] . "<BR>\n"; if ($_POST['futbol']) { echo "Te gusta el futbol <BR>\n"; } else { echo "NO te gusta el futbol <BR>\n"; } if ($_POST['aficiones'] != "") { echo "Tus aficiones son: <BR>\n"; echo nl2br($_POST['aficiones']); } else { echo "NO tienes aficiones <BR>\n"; } } ?>

EAPISI

Dra. Diana Cecilia Muoz Casanova dianauns@yahoo.es

Pg. 12

Universidad Nacional del Santa

Laboratorio4-Fundamentos del Lenguaje PHP

Funcin para validar Correos function validar($email) { return eregi('^[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+'. '@'. '[-!#$%&\'*+\\/0-9=?A-Z^_`az{|}~]+\.' . '[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+$', $email); }

Ejercicio6: Vamos a incorporar nuevas reglas de validacin a nuestro formulario de nuevo cliente (del ejercicio anterior): El nombre, apellidos, pas, telfono y direccin de correo electrnico deben ser rellenados obligatoriamente. La direccin de correo electrnico debe ser vlida. El telfono debe tener ms de 9 caracteres. Si el usuario lo rellena, el cdigo postal debe tener 5 caracteres.

La pgina deber mostrar todos los errores que haya en el formulario. SUBIR ARCHIVOS AL SERVIDOR Formulario para subir archivos <FORM ENCTYPE="multipart/form-data" ACTION="subir_archivo.php" METHOD="post"> <INPUT TYPE="hidden" name="MAX_FILE_SIZE" value="100000"> <INPUT NAME="archivo" TYPE="file"> <INPUT TYPE="submit" VALUE="Subir Archivo"> </FORM> Script PHP que sube el archivo al servidor <?php if ( isset ($_FILES['archivo']['tmp_name'])) { $uploaddir = 'C:/tools/Apache2/htdocs/ '; $uploadfile = $uploaddir. $_FILES['archivo']['name']; $maxsize = '100000'; if (move_uploaded_file($_FILES['archivo']['tmp_name'], $uploadfile)){ print 'archivo subido correctamente: <br>'; print_r ($_FILES); } else { print 'Error, algo no anda bien.<br>'; } } ?>

EAPISI

Dra. Diana Cecilia Muoz Casanova dianauns@yahoo.es

Pg. 13

Universidad Nacional del Santa

Laboratorio4-Fundamentos del Lenguaje PHP

Ejercicio7: Al ejercicio anterior, vamos a incorporarle la posibilidad de que el cliente suba una foto. Esta posibilidad ser opcional pero, si se emplea, se deber dar error si el archivo supera los 100Kb. Si todo eso se cumple, el archivo con la foto se guardar en el mismo directorio donde est el script.

Conclusiones: En la presente sesin, se detall la creacin de funciones PHP. Adems, se utiliz algunas funciones estndares que trae el PHP. Finalmente, se detall la forma cmo recuperar valores de los formularios HTML.

N de Ejercicios totales: 07 N de Ejercicios de avance para hoy 09.10.13: 04

EAPISI

Dra. Diana Cecilia Muoz Casanova dianauns@yahoo.es

Pg. 14

Вам также может понравиться