Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
LABORATORIO
Objetivos:
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:
Preparacin:
Los alumnos debern realizar todos los ejercicios realizados y propuestos de esta gua de
laboratorio.
Procedimiento y Resultados:
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;
}
<?php
function incrementar($x){
$x = $x + 1;
return $x;
}
$x = 10;
incrementar($x);
<?php
function incrementar(&$x){
$x = $x + 1;
return $x;
}
$x = 10;
incrementar($x);
<?php
function suma ($x=1, $y) {
$x = $x + 1;
return $x+$y;
}
print suma (3);
<?php
function suma ($y, $x=1) {
$x = $x + 1;
return $x+$y;
}
print suma (3);
<?php
$posicion = "m";
function cambiar_posicion(){
$posicion = "s";
}
cambiar_posicion();
echo $posicion;
?>
Ejercicio1:
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/>";
}
?>
<?php
$paises = array("us" => "United States",
"uk" => "United Kingdom",
"ca" => "Canada",
"cr" => "Costa Rica",
"pe" => "Per");
Ordenar vectores
<?php
$paises = array("us", "uk", "ca", "cr", "de");
sort($paises);
<?php
$paises = array("us" => "United States",
"uk" => "United Kingdom",
"ca" => "Canada",
"cr" => "Costa Rica",
"de" => "Germany");
sort($paises);
// asort($paises);
// ksort($paises);
<?php
$paises = array("us", "uk", "ca", "cr", "de");
array_push($paises, "pe");
print '<pre/>';
print_r($paises);
?>
<?php
$paises = array("us" => "United States",
"uk" => "United Kingdom",
"ca" => "Canada",
"cr" => "Costa Rica",
"pe" => "Per");
print '<pre/>';
print_r($total_paises);
?>
<?php
$paises = array("us" => "United States",
"uk" => "United Kingdom",
"ca" => "Canada",
"cr" => "Costa Rica",
"de" => "Germany");
unset($paises['ca']);
print_r($paises);
?>
<?php
$paises = array("us" => "United States",
"uk" => "United Kingdom",
"ca" => "Canada",
"cr" => "Costa Rica",
"de" => "Germany");
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"
?>
Reemplazar un string
<?php
$s = substr_replace("hola", "arbol", 1, 2); // $s = "harbola"
print $s;
?>
<?php
$s = trim(" hola "); // $s = "hola"
print $s;
?>
<?php
$texto = "hola pepe";
$s = ucwords($texto); // $s = "Hola Pepe"
$s = strtolower($texto);
$s = strtoupper($texto);
print $s;
?>
<?php
$n = strlen("hola"); // $n = 4
print $n;
?>
<?php
$s = addslashes("'hola'"); // $s = "\'hola\'"
print $s;
?>
<?php
echo nl2br("Aqui sucede un salto de\nlinea");
?>
<?php
echo htmlspecialchars("Texto de \" prueba \". Este es un ampersand & ");
?>
(Nmero de segundos transcurridos desde las 00:00:00 del 1 de enero de 1970 GMT)
<?php
print time();
?>
<?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
?>
<?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;
?>
<?php
if (checkdate(2, 31, 2007)) {
echo "La fecha es correcta";
}
else {
echo "La fecha es incorrecta";
}
?>
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).
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);
?>
<?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";
?>
Ejercicio4:
Escribir una funcin que lee un archivo compuesto por direcciones de correo electrnico,
una por lnea y devuelva un vector con esas lneas.
recupera.php
<?php
if ( isset ( $_POST['enviar'] )) {
}
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 archivo. Debe ir todo el
mecanismo en un slo archivo en PHP.
<?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;
}
function validar($email) {
return eregi('^[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+'. '@'. '[-!#$%&\'*+\\/0-9=?A-Z^_`a-
z{|}~]+\.' . '[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+$', $email);
}
Ejercicio6:
Vamos a incorporar nuevas reglas de validacin a nuestro formulario de nuevo cliente (del
ejercicio anterior):
<?php
if ( isset ($_FILES['archivo']['tmp_name'])) {
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>';
}
}
?>
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: