Cap 5
Cap 5
Funciones
CAP. 6: FUNCIONES ••
Veamos las p r i n c i p a l e s funciones q u e tiene PHP para el manejo de las variables; hay q u e tener en
............................................................
. .
. .
¡ isset($variable) ¡
•
. •
.
............................................................
el siguiente código:
,·•································································································································································································
• •
c?php ·
. if (isset($titulo)) .
else
•
•
Resultado:
como un valor.
en cuenta q u e el resultado nos debe arrojar el tipo de datos y su d e fi n i c i ó n true o false, según el
valor de la v a r i a b l e :
···································································································································································································.
• •
•
c?php
$resultado= isset($edad);
Resultado:
boolean false
••••• DESARROLLO DE APLICACIONES WEB CON PHP
monto monto
1 Validar J
Ingrese
10000 Ingreso correcto
monto
1 Validar ]
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . .. . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . .. . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. .
<!DOCTYPE html>
<html>
<head> •
•
<meta charset=''UTF-8''> •
•
• •
•
<title>Validaciones</title>
• •
•
<link href=''estilo.css'' rel=''stylesheet''> •
• •
• •
</head> •
• •
<body> •
<header>
</header>
<section>
<?php
error_reporting(0};
•
• if(isset($_POST['txtMonto']))
$mensaje='Ingreso correcto';
else
?>
•
<tr> •
• •
•
•
<td width=''100''>Ingrese monto</td> •
• •
• •
•
<td width=''200''> •
•
•
value="<?php echo $_POST['txtMonto'];?>"/>
</td>
</tr>
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. .. . . .. . .. . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . .. . . . .. . .. . . . .. . . . . . .. . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
CAP. 6: FUNCIONES •••
ctd></td>
ctd></td> •
•
c/tr>
e/table>
•
</form> •
· c/section> ·
</body>
. c/html> .
.............................................................. .. . . .... .. . ... .... ' ' .
Hay que considerar que la evaluación realizada solo controla si la variable tiene algún valor, no
necesariamente n u m é r i c o .
Finalmente, el código P H P se apoya del archivo estilo.css, que permite presentar de la mejor manera
posible al formulario:
..................................................................................................................................................................................................
body{ .
font-family: tahoma;
; font-size: 14px; ;
. } .
centrado{
text-align: center;
•
•
: } .
table {
rgin: auto;
; #error{ :
color: r e d ·,
font-size: 12px;
...................................................................................................................................................................................................
....................................................................................................................
. .
! unset($variable); :
. .
• •
. .
•• . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . •
Tener en cuenta:
......................................................................................................................................
. .
! unset($GLOBALS['variable']); !
. .
.· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · .
. $variable=gettype($variable); ¡
. .
........................................................................
o Si es un n ú m e r o fraccionario, devolverá d o u b l e .
Veamos el s i g u i e n t e caso:
o Necesitamos i d e n ti fi c a r los diferentes tipos de datos que pueden darse en variables para un
..................................................................................................................................................................................................
. .
<?php
: $nombre='Juan P e r e z ' ; :
$sueldo=3050.78;
$edad=35;
$fechaNac='1979-10-10';
$objTel=new s t d C l a s s ( ) ;
•
•
• •
: ?> .
•
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . ......... . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. .. . ... . ..... . .. . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
..............................................................................
. .
\ settype($variable, 'Tipo_Datos' ) ; \
•
. •
.
..............................................................................
necesita autogenerar un nuevo código cuando se registre un nuevo empleado, para esto se
, .
. .
< ?php
$ c ó d i g o = ' 0 0 0 0 5 ' ;
• •
•
• •
• •
: //Aplicamos settype .
$nuevoCodigo=sprintf("%05d",$codigo+l);
•
•
•
•
•
• •
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .•
Resultado:
o Del caso anterior, generar los 10 códigos de los e m p l e a d o s de forma correlativa a partir del código
00005:
.· ·································································································································································································· .
<?php
• •
¡ $código = '00005' ; ¡
• •
• •
• •
•
•
¡ //Aplicamos settype ¡
• •
•
• •
• •
. for ( $ i = 1 ; $ i < = 1 0 ; $ i + + ) { ,
· $nuevoCodigo=sprintf(''%05d'',$codigo+$i); ,
•
}
•
•
..................................................................................................................................................................................................
••••• DESARROLLO DE APLICACIONES WEB CON PHP
Resultado:
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
.•........••.......•......••......••......••......••......••............
. .
. .
( empty($variable) (
. .
. .
........................................................................
o V a l i d a n d o u n a v a r i a b l e de tipo string:
..................................................................................................................................................................................................
. .
< ? p h p
if (empty($clave))
........................................... '' .
o V a l i d a n d o u n a v a r i a b l e de tipo entero:
...................................................................................................................................................................................................
• •
< ? p h p
. $ n u m e r o = 0; .
if (empty($numero))
1 Validar 1
CAP. 6: FUNCIONES ••
..................................................................................................................................................................................................
. .
<!DDCTYPE html>
<html>
<head>
<meta charset=''UTF-8''>
<title>Validaciones</title>
• •
• •
• •
• <header> •
•
• •
• •
<h2 id="centrado">Validación usando EMPTY</h2>
•
•
</header>
<section>
<?php
error_reporting(0);
//Capturando valores
$usuario=$_POST['txtUsuario'];
•
•
$clave=$_POST['txtClave'];
•
•
•
•
//Validando el usuario y su clave
$menUsuario=' ' ;
$menClave=' ' ;
if (empty($usuario))
if (empty($clave))
$menClave='Ingrese clave';
•
•
?> •
• •
•
•
•
<form name="frmlogin" method="POST"> •
• •
• •
•
• <table border=''0'' width=''S50'' •
• •
•
cellspacing=''0'' cellpadding=''0''>
•
ctr»
•
<td>Ingrese usuario</td>
<td>
</td>
•
•
<td id="error"><?php echo $menUsuario; ?></td>
•
</tr>
•
•
<tr>
<td>Ingrese clave</td>
<td>
maxl e ngth="4"
•
</td> •
•
• •
•
•
<td id="error"><?php echo $menClave; ?></td> •
•
•
• •
•
•
</tr > •
•
• •
• •
•
<tr>
•
•
•
<td></td> •
•
<td></td>
</tr>
</table>
</form>
</section>
</body>
</html>
..................................................................................................................................................................................................
••••• DESARROLLO DE APLICACIONES WEB CON PHP
•................................................................................................................................................................................................•
. .
body{
font-family: t
•
font-size: 14p
•
#centrado{
•
text-align: center; •
• } •
•
•
• table { •
margin: auto;
#error{
color: red;
font-size: 12px;
..................................................................................................................................................................................................
....................................................................................................
. .
. .
j is_integer($variable_numerica); j
• •
: is_int($variable_numerica); ,
. .
. .
...................................................................................................•
entera:
..................................................................................................................................................................................................
. .
<?php
$numero=l23;
if (is_integer($numero)) .
· else
..................................................................................................................................................................................................
$NUMERO MENSAJE
o Validar el ingreso de una nota en un determinado curso, para lo cual debe registrar un valor
Validar
..................................................................................................................................................................................................
. .
<!DOCTYPE html>
<html>
<head>
•
<meta charset=''UTF-8''> ,
•
•
<title>Validaciones</title> ,
•
· </head> ·
<body>
<header>
</header>
<section>
<?php
error_reporting(0);
//Capturando va
$nota=$_POST['t
•
•
•
•
• •
· / /Validando ,
• •
$menNota=' ' ; :
•
if (!is_integer($nota))
$menNota='nota incorrecta';
cellspacing=''0'' cellpadding=''0''>
<tr>
<td>Ingrese nota</td> ,
•
<td> .
•
• •
</td> .
</tr>
<tr>
<td></td>
<td></td>
</tr>
</table>
</form>
</section> ,
•
, </body> !
• •
</html> :
•
.......................................................................•.......................................................................................................................... •
••••• DESARROLLO DE APLICACIONES WEB CON PHP
••............................................................................................................................................................................................... ,
. .
body{
font-family: t
font-size: 14p
#centrado{
•
text-align: center;
. } :
. table { :
r- g .m : auto;
or{
color: red;
•
•
font-size: 12px;
..................................................................................................................................................................................................
........................................................................
. .
• •
• •
; is_double($variable); ¡
. .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . .. . . . . . . . . . . . . . .
...................................................................................................................................................................................................
.
<?php
$altura=l.72;
if (is_double($altura))
•
•
echo 'Altura registrada correctamente';
•
•
else
•
•
•
echo 'Altura ingresada de forma incorrecta . . ! ! ' ;
$ALTURA MENSAJE
el c u a l usará el control TEXT para d i c h o ingreso. Si el valor ingresado es número entero, negativo,
[ Validar j
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . ' .. ' .
• •
• •
<!DOCTYPE html> •
•
• •
• <html>
•
<head>
<meta charset=''UTF-8''>
<title>Validaciones</title>
</head>
<body>
<header>
</header>
<section> •
•
<?php
error_reporting(0);
//Capturando valores
$monto=$_POST['txtMonto'J*l;
//Validando
$mensaje=' ' ;
• 1 1 empty($monto) 1 1 $monto<0)
•
$mensaje = ' Error en el ingreso del monto . . ! ! ' ;
• •
?> •
•
<form name="frmMonto" method="POST">
• •
•
• cellspacing=''0'' cellpadding=''0''> •
•
•
•
<tr> •
<td>Ingrese monto</td>
•
<td> •
</td>
</tr>
<tr>
<td></td>
• •
•
<td><input type=''submit'' value=''Validar'' /></td> •
<td></td>
•
•
</tr>
•
•
</table>
</form>
•
</section> •
</body>
</html>
..................................................................................................................................................................................................•
••••• DESARROLLO DE APLICACIONES WEB CON PHP
•................................................................................................................................................................................................•
. .
body{
font-family: t
font-size: 14p
•
•
#centrado{
•
text-align: center;
•
} •
•
•
• table { •
mar-g m : auto;
#error{
color: red·
'
font-size: 12px;
..................................................................................................................................................................................................
. .
.····················•···•··········••·•································· .
¡ is_string($variable); ¡
. .
. .
........................................................................
en el ingreso de código»:
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. .
<?php
$codigo='EMP001';
if(is_string($codigo))
• else
..................................................................................................................................................................................................
$CÓDIGO MENSAJE
nombre del e m p l e a d o » :
[ Validar [
..................................................................................................................................................................................................
. .
<!DOCTYPE html>
<html>
<head>
•
• <meta charset=''UTF-8''> •
•
• •
• •
<title>Validaciones</title> •
•
• •
• •
</head>
<body>
<header>
</header>
<section>
<?php
error_reporting(0);
//Capturando valores
$empleado=$_POST['txtEmpleado'];
• •
//Validando •
•
•
•
$mensaje=' ' ; •
•
• •
•
$ p e r m i t i d o s = ' / A [ A - Z üÜáéíóúÁÉÍÓÚñÑ]{l,100}$/i';
•
if (!preg_match($permitidos,$empleado)
1 1 !is_string($empleado))
• ?>
•
cellspacing=''0'' cellpadding=''0''>
<tr>
<td>
•
•
value="<?php echo $_POST['txtEmpleado']; ? > " / >
• •
•
• •
• </td>
•
</tr>
<tr>
<td></td>
<td></td>
</tr>
•
•
</table>
</form>
</section>
</body>
</html>
................................ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . .. .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .•
.•......................•.................••............................
. .
• •
¡ var_dump($variable); ¡
. .
. .
........................................................................
Veamos el s i g u i e n t e caso:
alumno:
•.................................................................................................................................................................................................
. .
<?php
: / /Ingreso de valores :
$fechaNac = '16/05/2005';
$talla= 1.30;
$edad= 9;
•
• •
· //Impresión ·
var_dump($empleado);
var_dump($fechaNac);
var_dump($talla);
var_dump($edad);
•
: ? > :
• •
• •
............................................................................................................................................... ' .
Resultado:
float 1. 3
int 9
$edad lnt 9
w FUNCIONES DE CADENA 1
................................................................................................
. .
. .
. .
, $código=' E M P 0 0 1 ' ; ,
. .
; $edad='24'; ;
. .
¡ $email='[email protected]'; ¡
. .
; $fechaNac='2005-05-16'; ¡
. .
. .
. .
................................................................................................
CAP. 6: FUNCIONES ••
.............................. ' .
. .
• •
• •
¡ $código=" E M P 0 0 1 " ; ¡
. .
¡ $edad="24"; ¡
¡ $email=''[email protected]''; i
¡ $fechaNac=''2005-05-16''; ¡
. .
. .
. .
.....................................................................................
c o m i l l a s i m p l e , sería de la siguiente m a n e r a :
..................................................................................................................................................................................................
. .
. c?php .
$sueldo= 1000;
..................................................................................................................................................................................................
Notemos que para imprimir la variable sueldo se necesita concatenar con el operador punto. En
.•······················································································· .
.
c?php
· $sueldo = 1000; ·
. ?> .
.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Su formato es:
. . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. .
. .
¡ $variable=strlen($variable_string); ¡
. .
.........................................................................................
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·•
, c?php ,
: $edad= 18; i
•
• •
• •
' if (strlen($edad) ! = 2 ) i
• •
· elseif ($edadc18) ;
: elseif ($edad>65) ,
else
•
$mensaje='La e dad
a ingresa d a
d es corree t a . . .1 .1 • ;
echo $mensaje;
$EDAD MENSAJE
mensajes convenientes.
[ Validar J
. ································································································································································································· .
<!DOCTYPE html>
<html>
<head>
<meta charset=''UTF-8''>
<title>Validaciones</title>
</head>
<body>
<header>
<section>
<?php
error_reporting(0);
//Capturan
$dni=$_POS
//Validando
$mensaje=' ' ;
if(!preg_match('/A[[:digit:]]+$/', $dni))
elseif (strlen($dni)!=8)
?>
<tr> •
• •
•
• •
• <td>Ingrese DNI del empleado</td> •
•
•
•
• <td>
•
•
value="<?php echo $_POST[ ' t x t D N I ' ] ; ?>"/>
</td>
</tr>
<tr>
<td></td>
··································································································································································································
CAP. 6: FUNCIONES ••
.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
.
<td></td>
</tr>
• •
</table>
</form>
· </section> '
</body>
•
· </html>
..................................................................................................................................................................................................
..................................................................................................................................................................................................
.
body{
font-family: tahoma;
font-size: 14px;
} .
, #centrado{ ,
•
text-align: center; ¡
#error{
color: red·
'
font-size: 12px;
• •
..................................................................................................................................................................................................
..................................................................................................................................................
. .
. .
'••·············································································································································
Se presentan a l g u n a s v a r i a c i o n e s de la f u n c i ó n :
, ,
VARIACION DESCRIPCION
stri pos($varia ble_ a_ evaluar, 'canten ido') adiciona que no distingue entre mayúsculas
y minúsculas.
strri pos($varia ble_ a_ evaluar, 'contenido') encontró un valor dentro de una cadena, sin
Veamos el s i g u i e n t e caso:
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . .. . . . . . . . . . . . .. . .. . . . . . . . . . . . . .
.
<?php
. $email = '[email protected]'; ,
$pos=strpos($email,'@')+l;
............. ' ' ' '.' ' ' '' , ' ''''' ..
••••• DESARROLLO DE APLICACIONES WEB CON PHP
Resultado:
[ @ se encuentra en la posición: 15 ]
............................................................................................................................
. .
• •
: $variable_resultante = strcmp($variablel,$variable2); :
. .
. .
............................................................................................................................
decir que:
Veamos el s i g u i e n t e caso:
o Determinar si la cadena de caracteres que representan la clave son iguales o no; mostrar los
mensajes correspondientes .
•.................................................................................................................................................................................................
. .
<?php
$clave= 'Sócrates';
$iClave = 'socrateS';
•
•
•
• •
if (strcmp($clave, $iClave)==0) •
•
•
•
echo 'La clave es correcta';
else
..................................................................................................................................................................................................
Resultado:
[ La clave NO es correcta ]
Su formato es:
.•••.......................•....•................••...............................•.........••....•.••......•................
. .
. .
. .
La opción true permite obtener los caracteres, desde la posición inicial hasta la posición donde
encontró el carácter. Mientras que false obtiene los caracteres desde la posición encontrada hasta
la posición fi n a l de la c a d e n a .
CAP. 6: FUNCIONES ••
Veamos el s i g u i e n t e caso:
usuario:
...................................................................................................................................................................................................
.
<?php
•
•
$email - '[email protected]';
• •
• •
• •
•
echo ' E l dominio del correo electrónico es: ' . $ s e r v i d o r . ' < b r > ' ;
..................................................................................................................................................................................................
Resultado:
...................................................................................................................................................................................
. .
Veamos el s i g u i e n t e caso:
usuario:
..................................................................................................................................................................................................
. .
<?php
• •
. echo ' E l dominio del correo electrónico e s : ' . $ s e r v i d o r . ' cbr» " ; .
• •
Resultado:
, ,
FUNCION DESCRIPCION
chop.
Veamos el s i g u i e n t e caso:
..................................................................................................................................................................................................
<?php
//Asignación de valores
//Impresión
?>
..................................................................................................................................................................................................
Resultado:
Fundamentos de
Permite r e e m p l a z a r u n a cadena por otra; tantas veces sea encontrado. Su formato es:
.•..................................................................................................
. .
. .
1 $variable_obtenida=str _ r e p l a c e ( $ c a d e n a ) ; 1
. .
. .
....................................................................................................
Veamos el s i g u i e n t e caso:
o A partir del código de un alumno con el formato 2014CI0001, debemos modificarlo por
....... ..... ... . ... . . . .. .................................................... .. . . .. . . . . . . . . . . . . . ... . . . ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . .. ... ... ......... .. . .. .. ..........
. .
<?php
//Asignación de valores
: $código = '2014CI0001'; ;
//Impresion
• •
?>
..................................................................................................................................................................................................
Resultado:
[ 2014ET0001 l
.· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · .
. .
: $variable_minusculas = strtolower($variable); :
. .
: $variable_mayusculas = strtoupper($variable); :
. .
. .
•..........................................................................................................
Veamos el s i g u i e n t e caso:
o El encargado del área de personal de u n a empresa necesita registrar los datos de un determinado
empleado, a q u i e n se le solicita que ingrese sus datos por m e d i o de una página web ofrecida
por la empresa. A partir de dicha información, asegurar que el código del empleado sea en
.•························································································· .
.
<?php
•
//Asignación de valores ·
$código= 'emp001_14a';
$email = '[email protected]';
• •
• •
•
•
//Impresión •
echo 'El códi registrado es: '.strtoupper($código). ' < b r > ' ;
?
•
•. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . .. ....... . . .. .. .. ... .. ............
•
Resultado:
..................................................................................
. .
. .
................................................................................
••••• DESARROLLO DE APLICACIONES WEB CON PHP
formatos:
SÍMBOLO DESCRIPCIÓN
caracteres.
Indica el carácter de inicio dentro de una cadena caracteres. Por ejemplo, "'a indica
Indica con qué carácter termina dentro de una cadena de caracteres. Por ejemplo, $a
$
indica que la cadena termina con la letra a.
Indica que el carácter se puede repetir una o más veces. Por ejemplo, a+ indica que
+
a se repetirá una o más veces dentro de la cadena de caracteres.
Indica que el carácter se puede repetir de cero veces a más. Por ejemplo, a* indica
•
que a podrra estar en la cadena o podrra repetirse muchas veces.
Indica que el carácter se puede repetir cero o, por lo menos, una vez. Por ejemplo,
?
a? indica que a se puede encontrar en la cadena de caracteres solo una vez o nunca.
Indica que los caracteres especificados dentro se buscarán de forma agrupada dentro
( ) de la cadena de caracteres. Por ejemplo (gma) indica que se buscarán los caracteres
encontrarse uno o los dos a la vez dentro de una cadena de caracteres. Por ejemplo,
Indica la cantidad de veces que se puede repetir un determinado carácter. Por ejemplo
{n}
a{3} indica que a se repetirá tres veces dentro de una cadena de caracteres.
Indica la cantidad de veces, por rango, que se puede repetir un determinado carácter.
{n,m} Por ejemplo, a{1,5} indica que a se repetirá de una a cinco veces dentro de una
cadena de caracteres.
• [a-z] Representa a todas las letras en minúsculas, también puede usar \O.
• [A-Z] Representa a todas las letras en mayúsculas, también puede usar \O.
• [0-9) Representa a todos los valores numéricos enteros, también puede usar \d.
forma correlativa; se necesita verificar q u e los caracteres emp o E M P se encuentren dentro del
código registrado:
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·.
: <?php
: $codigo=' emp001'; :
else
..................................................................................................................................................................................................
CAP. 6: FUNCIONES •••
Resultado:
•.................................................................................................................................................................................................
. .
<?php
$email='[email protected]';
, $buscar='hotmail'; ,
if (preg_match("/\b$buscar\b/i",$email)) ·
. else
..................................................................................................................................................................................................
Resultado:
Considere que el atributo \b permite buscar la palabra completa dentro de una cadena de
caracteres.
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·•
<?php .
//Asignando valores
$url='http://www.editorialmacro.com/desarrolladores.html';
preg_match('@'(?:http://)?(['/]+)@i',$url, $coincidencias); ,
$servidor= $coincidencias[!];
?>
•
• •
•. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ' ' .•
Resultado:
o En la fecha de n a c i m i e n t o solo se permitirá el ingreso de fechas con formato válido, como dd/
mm/aaaa.
[ Validar [
..................................................................................................................................................................................................
. .
<!DOCTYPE html>
<html>
<head>
<meta charset=''UTF-8''>
<title>Validaciones</title>
</head>
<body>
. <header>
: </header> ¡
: <section> :
•
; <?php j
¡ error_reporting(0); :
• •
• •
//Capturando valores •
$nombre=$_POST['txtN
$fecha=$_POST['txtFe
$email=$_POST['txtEm
$fono=$_POST['txtFon
//Validando
$mNombre=' ' ;
if (!preg_match('/h[A-Z üÜáéíóúÁÉÍÓÚñÑ){l,100}$/i',
$nombre))
$mFecha=' ' ;
if (!preg_match('/h\d{l,2}\
$mFecha='Fecha no v
$mEmail=' ' ;
if (!preg_match('/h([a-zA-Z0-9))+([a-zA-Z0-9\._-))* .
, @([a-zA-20-9_-))+([a-zA-20-9\._-)+)+$/', $email))
; $mEmail='Email incorrecto'; :
•
• •
• •
•
•
; $mFono=''; ¡
: if (!preg_match('/h[9)[0-9){8}$/', $fono)) ¡
; $mFono='Movil incorrecto'; ¡
• •
•
•
•
•
cellspacing=''0'' cellpadding=''0''>
<tr>
<td>
</td>
..................................................................................................................................................................................................
CAP. 6: FUNCIONES ••
··································································································································································································•,
' </tr> :
. <tr> i
• <td>Fecha de nacimiento</td> ·
</tr>
r>
<td>Correo electronico</td>
</td>
/tr>
r>
<td>Teléfono</td>
•
•
<td><input type=''text'' name=''txtFono''
<td></td>
<td></td>
</tr>
</table>
</form>
</section>
</body>
</html>
..................................................................................................................................................................................................
...............................................................................................................................................
. .
: $variable arreglo=explode('Criterio',$variable
.
.
- -a-d e s c o m p o n e r ) ; :
.
.
. .
...............................................................................................................................................
..................................................................................................................................
. .
. .
j $ a r r e g l o _ v a r i a b l e [ ... ] ; . . , j
hay que tener en cuenta q u e solo se debe registrar un nombre, un a p e l l i d o paterno y un materno:
..................................................................................................................................................................................................
. .
<?php
: $nombre=explode(' ',$empleado); :
..................................................................................................................................................................................................
••••• DESARROLLO DE APLICACIONES WEB CON PHP
Resultado:
····································································································································································································
•
· c?php ·
$hoy='2015-10-15';
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . .
Resultado:
Año: 2015
Mes: 10
Día: 15
.•.............•.........................•......•............•..••..........................................................•..•....•.......•..•............•......................... ············ .
. .
c?php •
• •
• •
• •
$hoy='2015-10-15';
list($año,$mes,$dia)=explode('-',$hoy);
•
• echo 'Año: '.$año.'<br>'; //Resp: 2015
• •
• •
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. .. . .. . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . .. . . . .. . . . . . . . .
.................. .. .
. .
c?php
$email='[email protected]';
• •
•
• •
•
$correo=explode('@',$email);
: ? > :
•
. . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . •
Resultado:
Servidor: hotmail.com
Usuario: manuel.torresr
CAP. 6: FUNCIONES ••
.•.......................................................................................................
. .
. .
¡ $variable_invertida=strrev ( $ v a r i a b l e ) ; ¡
. .
. .
.........................................................................................................
Veamos el s i g u i e n t e caso:
..................................................................................................................................................................................................
.
<?php
•
$código='100PME';
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . .. .. .. .. .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Resultado:
. . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . .. .. . . . . . . . . . . .
. .
¡ str_repeat('valor_repetido',veces_repetidas); ¡
. .
. .
..............................................................................................................
Veamos el s i g u i e n t e caso:
.•................................................................................................................................................................................................
. .
<?php .
$n=l;
• •
..................................................................................................................................................................................................
Resultado:
. . . .. .. .. . . .. . .. . . .. . .. . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. .
Donde:
la c a d e n a .
siguientes tipos:
Veamos el s i g u i e n t e caso:
..................................................................................................................................................................................................
. .
<?php
: $n = 1; ·
: ? > :
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . .. .. . . .. .. .. . . . .. .. .. . .
m FUNCIONES NUMÉRICAS 1
Las funciones numéricas para PHP están preparadas para valores que estén dentro de los límites
p e r m i ti d o s por los tipos de datos integer y float. Hay q u e t e n e r en cuenta que un valor numérico
es asignado a una variable sin especificar comillas ni otra clase de símbolo, entonces podríamos
m e n c i o n a r l a s siguientes a s i g n a c i o n e s :
o Asignación de n ú m e r o s enteros:
,•···················································•,
. .
' $n=10·
: ' .
1 $edad=24;
. .
•...................................................•
.•...................................................
. .
: $sueldo=1250.50; .
( $talla=l.75; ·
.
. .
.....................................................
.............................................................
. .
l $n='10' • 1;
. .
: $sueldo='1250.50' • 1.0; :
. .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . .
Permite devolver el mismo valor asignado en forma positiva, considere q u e abs no modifica los tipos
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . .. . . . . . . .
. .
. .
( abs($variable_numerica); (
. .
. .
....................................................................................................
CAP. 6: FUNCIONES ••
Veamos el s i g u i e n t e caso:
,·•·······························································································································································································•,
•
•
· c?php :
· $monto=l500; ;
$descuento=l0/100.0 * $monto;
$montoDescontado=($descuento-$monto);
..................................................................................................................................................................................................
.•.............................................................
. .
. .
¡ ceil($variable); ¡
. .
. .
...............................................................
Veamos el s i g u i e n t e caso:
..................................................................................................................................................................................................
. .
<?php
•
•
$promedio=10.3;
•
• •
.................................................................................................................................................................................................•
...............................................................
. .
•
• exp($variable_numerica); !
•
. .
...............................................................
Veamos el s i g u i e n t e caso:
..................................................................................................................................................................................................
. .
c?php
• •
$n=l;
•
• echo ' E l nuevo monto e s : ' . e x p ( $ n ) ; //Resp. 2.7182 •
..................................................................................................................................................................................................
.....................................................................
. .
, fl o o r ( $ v a r i a b l e _ n u m e r i c a ) ; 1
. .
•. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . •
••••• DESARROLLO DE APLICACIONES WEB CON PHP
Veamos el s i g u i e n t e caso:
..................................................................................................................................................................................................
.
<?php
•
$n=4.3;
...................................................................................................................................................... .
Permite mostrar el n ú m e r o máximo entero de los valores aleatorios p e r m i ti d o s por PHP. Su formato
es:
.•..........................................•.......
. .
•
. •
.
¡ getrandmax(); ¡
. .
.........•..............................•.........•.
Veamos el s i g u i e n t e caso:
,·•································································································································································································ .
<?php
•
.................................................................................................................................................................................................. •
es:
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . .
. .
. .
¡ max($variable_coleccion); ¡
. .
....................................................................
Veamos el s i g u i e n t e caso:
d e t e r m i n a r el mayor e l e m e n t o :
,·•······························································································································································································•·,
• •
•
<?php
$números=array(l,4,26,7);
..................................................................................................................................................................................................
formato es:
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. .
. .
! min($variable_coleccion); !
. .
. . . . . . . . . . . . . . . . . . . . .. . . .. . . . . . . . . . . . . . . .. . . .. .. . . . . . . . . . . . . . . . . . . . .
CAP. 6: FUNCIONES ••
Veamos el s i g u i e n t e caso:
d e t e r m i n a r el m e n o r e l e m e n t o :
,·•·······························································································································································································•,
•
· c?php ·
· $números=array(l,4, 26, 7 ) ; ·
?>
• •
• . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . ' ' .•
.•.........................................................................................
. .
. .
j mt_rand ( $ v a l o r_ i n i c i a l , $ v a l o r _ fi n a l ) ; j
. .
...........................................................................................
Veamos el s i g u i e n t e caso:
..................................................................... ' .
. .
c?php
•
$valor inicial=100;
•
•
$ v a l o r _ fi n a l = 9 9 9 ;
•
• •
echo mt_rand($valor_inicial, $ v a l o r _ fi n a l ) ;
•
•
•
navegador.
l 6.3.9 j Función pi )]
······························································· ..............•.........••••..•.••......••......••.•..••••.•...•••...............................•...•••••...•.••••....••......••..
.
· ·
,
.
.
. •
. pi( ); .
. •
. .
'
M PI·
•
. - '
.
'
·. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ... ....... ... .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .............. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Veamos el s i g u i e n t e caso:
o I m p r i m i r el valor P I :
..................................................................................................................................................................................................
. .
. .
. .
c?php
. •
. .
. .
. .
.
.
echo p i ( ) ; // Resp: 3.1415926535898 .
.
. .
. .
.
. echo M PI· // R e s p : 3.1415926535898
.
.
•
- ' •
.
.
•
. ?> .
.
·. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . .. . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . .. .. . . . . . . . . . . . . . . . . . . . .
. .
$variable=pow($valor_base,valor_potencia); ]
. .
.....................................................................................................
••••• DESARROLLO DE APLICACIONES WEB CON PHP
Veamos el s i g u i e n t e caso:
o A partir del número entero 2, determinar el cuadrado, cubo, raíz cuadrada y raíz c ú b i c a :
..................................................................................................................................................................................................
. .
<?php
• •
• $n=2; •
•
•
$cuadrado=pow($n,2);
$cubo=pow($n,3);
$rcuadrada=pow($n,1.0/2.0);
$rcubica=pow($n,l.0/3.0); •
•
echo · c b r xLa raíz cubica de · . $n. ' es: · . $reubica; // Resp: 1 . 2599
..................................................................................................................................................................................................
.··················································································································.
. .
¡ round($variable_decimal,numero_decimales); ,
. .
. .
..................................................................................................................
Veamos el s i g u i e n t e caso:
..................................................................................................................................................................................................
. .
<?php
$nota=10.5; •
•
echo 'La nota es: '.round($nota); //Resp: 11 •
•
•
• •
echo 'La nota es: '.round($nota,1); //Resp: 10.5
•
.................................................................................................................................................................................................•
.......................................................
. .
, sqrt($variable); ¡
. .
. .
.....................................................
Veamos el s i g u i e n t e caso:
o Muestre la raíz c u a d r a d a de un n ú m e r o :
.· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · .
: <?php :
$n=2;
• •
• •
•. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . •
CAP. 6: FUNCIONES •••
Resultado:
P H P considera a las fechas como u n a cadena de caracteres, h a c i e n d o q u e sus funciones detecten una
.......................................................
. .
. .
¡ date ( f o r m a t o ) ; ¡
. .
. .
. . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
o Mostrar la fecha a c t u a l :
. - · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · • ,.
· c?php ·
. ?> .
•
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ... ... ........ .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . ... ....... ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Resultado:
c?php
•
echo 'cbr>Número de mes sin ceros a la izquierda: '.date('n');
•
•
echo 'cbr>Hora actual 1-12: '.date('g');
•
..................................................................................................................................................................................................
••••• DESARROLLO DE APLICACIONES WEB CON PHP
Resultado:
AM o PM: PM
a m o pm: pm
Año de 2 cifras: 14
<?php
•
•
•
echo date('l jS \of F Y h:i:s A');
•
..................................................................................................................................................................................................
Resultado:
.......................................................
. .
1 time(); 1
. .
•....................................................
Veamos el s i g u i e n t e caso:
día al a c t u a l :
•........................................................................................................... · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · .
.
<?php
$hoy=date('Y-m-d');
.................................................................................................................................................................................................•
Resultado:
Hoy es:2014-08-01
Comentarios:
•· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·•
: $hoy=date('Y-m-d'); ·
•
'••·································································································································································································
..................................................................................................................................................................................................
. .
• $ m a ñ a n a = t i m e ( ) + (1 * 24 * 60 * 60);
................................................................................................................................................................................. ................•
minutos y 60 segundos .
.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . .. . . . .. . .. . . .
.
..................................................................................................................................................................................................
..................................................................................................................................................................................................
. .
··································································································································································································
Hay que tener en cuenta que el mes es un valor n u m é r i c o entre 1 y 12, el día es un valor numérico
Veamos el s i g u i e n t e caso:
.·················· ................................................................................................................................................................................•
. .
. .
i <?php i
¡ $fechaReg='02-26-2015'; ¡
. .
¡ $fecha=explode(' - ',$fechaReg); ,
. .
. .
. .
. .
. .
1 $mes=$fecha[0]; 1
. .
¡ $día=$fecha[l]; ¡
. .
¡ $año=$fecha[2]; ¡
. .
. .
. .
. .
. .
. .
, else ,
. .
. .
: ? > :
. .
• •
•....................................••......••......••......••......•.......••......................................•......••......••......••.......•......••....................................
Comentarios:
..................................................................................................................................................................................................
. .
$fechaReg='02-26-2015';
•
• $fecha=explode('-',$fechaReg);
..................................................................................................................................................................................................
mes, día y año en una variable de ti po arreglo, llamada $fecha. La función explode permite
desprender los elementos y dividir según un criterio; en este caso, por cada g u i o n se estará
·································································································································································· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
• •
· $mes=$fecha[0]; ·
$ d í a = $ f e c h a [ l ] ;
$año=$fecha[2]; ;
........................................•................•.......•.....................•..........•.....•..............•................•..............................................•..........
Para poder recuperar los valores almacenados en la variable $fecha, debemos crear tres
.•...............•....•.........•........•.......•...........................................•................................................................................................••..
. .
•
if (checkdate($mes, $día, $año))
.................................................................... , , , .
$fecha.
Resultado:
Permite generar un arreglo de valores con los elementos q u e conforman la fecha actual del sistema.
Su formato es:
. . . . . . . . . . . . . . . . . . . . . . . . . . . .. .. . . . . . . . . . .. . . . . . . . . . . . . .
. .
1 getdate(formato); 1
. .
. .
.....................................................
Veamos el s i g u i e n t e caso:
..................................................................................................................................................................................................
. .
<?php
$hoy=getdate(time());
?
• •
•
................................................................................................................ . . . . . . . . . . . . . . . . . .. . . . . . . . ' ' .•
Resultado:
Año: 2014
Mes: August
Día: 1
Hora: 17
Minutos: 43
Segundos: 52
CAP. 6: FUNCIONES ••
interpretará línea por línea de forma top-down. Con la incorporación de las estructuras c o n d i c i o n a l e s
y repetitivas cambió un poco la perspectiva de desarrollo, ya que no era tan secuencial como al
inicio. Es así q u e c u a n d o t e r m i n e una a p l i c a c i ó n web con PHP notará que ha escrito m u c h o código
PHP, la cual permita controlar los pagos q u e se les realiza a sus vendedores. Se debe
A 20.00 %
B 16.00 %
e 14.00 %
D 12.00 %
o El sueldo bruto resulta entonces de la adición del sueldo básico más la comisión
a l c a n z a d a durante el mes.
descuento a l g u n o .
un v e n d e d o r durante un mes d e t e r m i n a d o .
••••• DESARROLLO DE APLICACIONES WEB CON PHP
o D e t e r m i n a r el s u e l d o básico de $250.00.
Como notará, hemos agotado todas las actividades que se puede realizar en el caso propuesto;
funciones:
N. DE ACTIVIDAD FUNCIÓN
getVendedor()
su sueldo.
getMontoVendido()
el paso uno.
determinaSueldoBasico()
3
Asigna el sueldo básico de $ 2 5 0 . 0 0 .
calculaComision(monto, categoría)
para la función.
calculaSueldoBruto(monto,comision)
calculaDescuento(bruto)
6
Permite calcular el descuento según el sueldo bruto obtenido.
.................................................................................................
. .
. .
. .
¡ function nombre(Parametros){ ¡
( //Sentencias o Instrucciones (
. .
¡ return valor_de_retorno; ¡
. .
: } :
. .
. .
. .
. .
. .
...............................................................................................
CAP. 6: FUNCIONES ••
o El término function es una p a l a b r a reservada por el lenguaje P H P para identificar las funciones
o Los parámetros son d e fi n i d o s como variables de entrada que serán usadas estrictamente dentro
de la función, y que desde el exterior es enviada como valor; así por ejemplo:
o Las sentencias o instrucciones son parte del c u e r p o de la función, estas p u e d e n ser c u a l q u i e r tipo
getVendedor(){
1 return $_POST['txtVendedor'];
getMontoVendido(){
2 return $_POST['txtMonto']:
determinaSueldoBasico(){
3 return 250;
calculaComision($monto, $categoría){
if($categori"a=='A')
el seif($categori"a==' B'}
return 0 . 1 6 • $monto;
el seif($categori"a=='C')
4
return 0 . 1 4 • $monto;
el seif($categori"a==' D')
return 0 . 1 2 • $monto;
else
return O;
calcula5ueldoBruto($monto,$comision){
5 return $monto+$comision;
calculaDescuento($bruto){
if($bruto>2500)
return 0 . 1 1 * $ b r u t o ;
6
else
return O;
calculaNeto($bruto,$descuento){
7 return $bruto-$descuento;
}
••• • • DESARROLLO DE APLICACIONES WEB CON PHP
debe ser invocada dentro de la a p l i c a c i ó n web P H P c u a n d o sea necesario. El formato presenta las
siguientes v a r i a c i o n e s :
s e n c i l l a : los parámetros son valores de entrada a la función; es decir, son valores q u e son necesarios
función para realizar u n a tarea específica; e l l o s serán los parámetros. Su formato es:
.· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · .
. .
. .
. .
; / /Cuerpo de la función ¡
. .
. .
! } !
. .
. .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . .. .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
.•······································································································································································.
. .
. .
. .
¡ return round(($nota1+$nota2+$nota3+$nota4)/4); ¡
. .
! } !
. .
•. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . •
10 % de la m i s m a :
.........................................................................................................................................................................
. .
¡ function calculaDescuento($subtotal){ ¡
. .
. .
¡ return $descuento; ¡
. .
! } ;
. .
. .
•......................................................................................................................................................................
CAP. 6: FUNCIONES ••
o Función que determine el monto por hora, según la categoría del empleado, sabiendo que
A=$25.00, 8=$20.00 y C=$15.00; en c u a l q u i e r otro caso devolver cero como valor de monto:
. . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . .. . . .. . . . . . . . . . . . . .
. .
. .
: function determinaMontoxHora($categoria){ :
. .
: if ($categoría==' A ' ) :
. .
: return 2 5 . 0 0 ; :
: e l s e i f ( $ c a t e g o r i a = = ' B ' ) :
. .
: return 20.00;
elseif($categoria=='C')
• return 1 5 . 0 0 ; :
· else ·
return 0;
}
. •
.
'••····································································································································································
6.5.5 Implementación de una función con parámetros y con valor por defecto
se envíe un valor, o s i m p l e m e n t e sea vacía, tome el v a l o r por defecto y trabaje en base a dicho valor.
Su formato es:
.................................................................................................................................
. .
. .
: function nombre_funcion($parámetro=valor_x_defecto){ :
: / /Cuerpo de la función :
: } :
. .
. .
. .
...............................................................................................................................
Veamos el s i g u i e n t e caso:
categoría, las cuales son: operario ($750.00), administrativo ($1750.00) y jefe ($2750.00).
Implementaremos una función que asigne un monto de pago según su categoría y, además,
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . • . . . . . . . . . . . . . . • • . . . . . . • • . . . . . . • • . . . . . . . . . . . . . . • . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . • • . . . . . . • • . . . . . . • • . . . . . . • • . . . . . . . . . . . . . . . . . . . . . . . . . . . .. .
. .
•
<?php
function determinaPago($categoria='
if ( $ c a t e g o r i a = = ' O p e r a r i o ' )
return 750;
•
•
elseif ($categoria=='Administra
return 1750;
return 2750;
•
•
• •
•
• •
• //Invocando la función •
•
• •
•
•
• echo ' E l pago por defecto e s : ' . determinaPago();
•
• •
echo ' c b r > E l pago del Jefe e s : ' . d e t e r m i n a P a g o ( ' J e f e ' ) ;
•. . . . . . . . . . . . . . . . . . . . . . . . . . . . . • . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . • . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
El resultado de la a p l i c a c i ó n es:
o Función que determine el monto por hora, según la categoría del empleado, sabiendo que
A=$25.00, 8=$20.00 y C=$15.00; en c u a l q u i e r otro caso devolver cero como valor de monto:
. . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . .. . . .. . . . . . . . . . . . . .
. .
. .
: function determinaMontoxHora($categoria){ :
. .
: if ($categoría==' A ' ) :
. .
: return 2 5 . 0 0 ; :
: e l s e i f ( $ c a t e g o r i a = = ' B ' ) :
. .
: return 20.00;
elseif($categoria=='C')
• return 1 5 . 0 0 ; :
· else ·
return 0;
}
. •
.
'••····································································································································································
6.5.5 Implementación de una función con parámetros y con valor por defecto
se envíe un valor, o s i m p l e m e n t e sea vacía, tome el v a l o r por defecto y trabaje en base a dicho valor.
Su formato es:
.................................................................................................................................
. .
. .
: function nombre_funcion($parámetro=valor_x_defecto){ :
: / /Cuerpo de la función :
: } :
. .
. .
. .
...............................................................................................................................
Veamos el s i g u i e n t e caso:
categoría, las cuales son: operario ($750.00), administrativo ($1750.00) y jefe ($2750.00).
Implementaremos una función que asigne un monto de pago según su categoría y, además,
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . • . . . . . . . . . . . . . . • • . . . . . . • • . . . . . . • • . . . . . . . . . . . . . . • . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . • • . . . . . . • • . . . . . . • • . . . . . . • • . . . . . . . . . . . . . . . . . . . . . . . . . . . .. .
. .
•
<?php
function determinaPago($categoria='
if ( $ c a t e g o r i a = = ' O p e r a r i o ' )
return 750;
•
•
elseif ($categoria=='Administra
return 1750;
return 2750;
•
•
• •
•
• •
• //Invocando la función •
•
• •
•
•
• echo ' E l pago por defecto e s : ' . determinaPago();
•
• •
echo ' c b r > E l pago del Jefe e s : ' . d e t e r m i n a P a g o ( ' J e f e ' ) ;
•. . . . . . . . . . . . . . . . . . . . . . . . . . . . . • . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . • . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
El resultado de la a p l i c a c i ó n es:
Cuando u n a función no devuelve valor se le l l a m a función con retorno vaao o s i m p l e m e n t e sin valor
formato es:
. .
.· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · .
. .
¡ function nombre_funcion(parámetros){ ¡
. .
: / /Cuerpo de la función ¡
¡ } ¡
. .
.................................................................•.............•................................•......................................................
Veamos el s i g u i e n t e caso:
,·•·································································································································································································
• •
•
•
<?php •
•
function determinaIVA($mo
$monto=10000;
•
•
echo 'El monto a pagar es: $ ' . number _format($monto, ' 2 ' , ' . ' , ' ' ) ;
determinaIVA($monto);
..................................................................................................................................................................................................
Resultado:
..................................................................................................................................................................................................
. .
function nombre_funcion(p
$variablel=expres
$variable2=expres
•
•
$variableN=expresionN; •
•
•
•
.. . . .. . . . . . . . . . . . . . . . .. . . . .. . .. . . . .. .. .. . . .. . .. . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Veamos el s i g u i e n t e caso:
y la nota mínima; se pide r e a l i z a r todos los cálculos en una sola función, u s a n d o función con
m ú l ti p l e s valores de retorno.
CAP. 6: FUNCIONES •••
: <?php :
• •
: //Implementación de la función :
function estadisticas($nl,$n2,$n3){
//Calculando el promedio
$promedio=($n1+$n2+$n3)/3;
'
•
'
•
$notas=array($nl,$n2,$n3); •
• •
•
•
•
$mayor=max($notas); •
•
• •
•
$menor=min($notas); •
•
$nota2=20;
$nota3=16;
•
•
'
•
//Capturando los valores múltiples desde la función
list($promedio,$mayor,$menor)=estadisticas($notal,$nota2,$nota3);
.................................................................................................................................................................................................•
Resultado:
El promedio es: 15
ligada a un nombre. En el cálculo lambda, todas las funciones son anónimas. El combinador Y
programación t a m b i é n proveen soporte, tanto para f u n c i o n e s con nombre como para las f u n c i o n e s
a n ó n i m a s . Su formato es:
.................................................................................................................................
. .
: $variable= function(parámetros){ :
. .
: //Cuerpo de la función :
¡ return valor_de_retorno; ¡
. .
: } :
. .
. .
. .
...............................................................................................................................
Veamos el s i g u i e n t e caso:
FORMA).
••••• DESARROLLO DE APLICACIONES WEB CON PHP
., · • · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · .
•
<?php
•
//Función lambda
•
$retiro=function($cuenta,$monto){
$cuenta-=$monto; •
•
• •
•
return $cuenta; •
•
};
•
•
//Invocando a la función
$cuenta=5000; •
•
• •
•
$monto=1000;
•
•
echo 'El monto de la cuenta es: $'
•
• . number _ f o r m a t ( $ c u e n t a , ' 2 ' , ' . ' , ' ' ) ;
. . . . . . . . . . .. . . .. . . .. . .. . . . .. . . . . . .. . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Resultado:
FORMA) .
...................................................................................................................................................................•..............................
. .
<?php
//Función lambda
· $retiro=function($cuenta,$monto){ !
$cuenta-=$monto; ·
}; •
•
•
•
•
//Invocando a la función
' $cuenta=5000;
· $monto=1000;
$retiro($cuenta,$monto);
. . . . . .. . . . . . . .. . . .. . .. . .. .. . .. . . . . .. .. .. .. . . . . .. . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Resultado:
FORMA).
CAP. 6: FUNCIONES ••
•
<?php •
//Función Lambda
//Invocando a la función
$cuenta=5000;
$monto=1000;
• •
• •
• •
• •
········································································································································ , .
Resultado:
H a b í a m o s visto como concepto de función el poder romper el código en porciones pequeñas que
require, pues d i c h a f u n c i ó n importa código desde el exterior; es decir, permite insertar un código P H P
en otro.
Entonces podemos d e d u c i r q u e :
o Tanto include como require invocan archivos HTML y PHP; otros tipos de archivos deben ser
Es una función que permite importar código PHP dentro de otro, haciendo lo que comúnmente
...........................................................................................
. .
• •
! include{'archivo.php'); !
. .
¡ include('archivo.html'); ¡
. .
.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
soda, en e l l a se debe ingresar el nombre del cliente y las cantidades de los productos ofrecidos.
••••• DESARROLLO DE APLICACIONES WEB CON PHP
La interfaz i n i c i a l se muestra a c o n ti n u a c i ó n :
FUENTE DE SODA
Ciente
[ Finalizar venta J
Tener en cuenta:
FUENTE DE SODA
'
FUENTE DE SODA
3
�
P
l �
ita
� de
�p¡;
� odl
�;:-..
� �n
s
� J
���j¡íad
� c=========:J
) ""reoo""
,,..,
· $-------,r.:; ubtotal==$-------I
Ensalada de
1 $10.00 $10.00
frutas
FinalizarVenta j
TOTAL A PAGAR
$24.00
Archivo: fuente.php
,·•····································································································································· ··················································••,
• •
• •
•
•
<!DOCTYPE html>
•
• •
. <html> :
•
: <head> .
· <meta charset=''UTF-8''> :
•
<title></title> .
</head> •
<body>
<header>
</header>
<section>
•
<?php
//asignaPrecios.php
error_reporting(0);
include('asignaPrecios.php');
?>
cellspacing=''l'' cellpadding=''l''>
<tr>
<td>Cliente</td>
<td colspan=''3''>
</tr>
<tr>
..................................................................................................................................................................................................
••••• DESARROLLO DE APLICACIONES WEB CON PHP
. .
. .
c/tr>
c tr»
ctd>Ensalada de Frutasc/td>
c/tr>
ctr>
ctd>Jugo de Frutasc/td>
•
value=''c?php echo $cantidadJug¡ ?>'' /></td> •
•
•
ctd><?php echo '$'.number_format($jugo,2)¡ ?></td>
•
• •
ctd>c?php echo '$'. number_format($subtota1Jug,2)?></td> •
•
•
• •
•
</tr>
•
• •
•
ctr> •
• •
• •
•
ctd>Heladoc/td> •
•
•
•
•
value=''c?php echo $cantidadHel; ?>'' /></td> •
c/tr>
ctr>
ctd>Sandwichc/td>
c/tr>
c t r»
•
•
ctd></td>
•
•
ctd colspan=''3''><input name=''btnFinalizar'' type=''submit''
c/tr>
c?php
if ($_POST['btnFinalizar']){
?>
ctr>
ctd></td>
<td></td>
ctd>TOTAL A PAGAR</td>
ctd id=''codigo''>S
</tr>
c?php} ?> •
•
• e/table> •
• •
• </form> •
• •
c/section> •
• •
• •
cfooter> •
•
• •
• •
c/footer> •
•
•
•
• </body> •
•
</html> •
•
...................................................................................... .. . . . . . .. . . . . . . ... ... . . .. . ....... . ........ ..................... ................ ... . .. .. ... . .. . . . .. . . . . . . . . . .•
CAP. 6: FUNCIONES ••
Archivo: encabezado.php
···································································································································································································
' '
<!DOCTYPE html> '
' '
' '
'
'
<html> '
'
'
'
'
<head> '
'
'
'
<title></title>
</head>
<body>
</body>
</html>
., ............................................................................•...•...............•.......•.......•..........................................•...............•.......•.......•....
Archivo: pie.php
.•................................................................................................................................................................................................
' '
<!DOCTYPE html>
<html>
'
'
<head> '
'
' '
<meta charset=''UTF-8''> '
<title></title>
</head> •
'
•
<body> '
'
<1mg src=''bannerPie.png'' width=''770'' height=''20''/> '
' '
' '
' '
' </body> '
</html>
' ..................................................................................................................................................................................................
Archivo: calculos.php
..................................................................................................................................................................................................
'
<?php
'
//Asignación de precios
$ensalada=10;
$jugo=13;
$helado=7;
$sandwich=25;
•
'
$cliente= $_POST['txtCliente'];
$cantidadJug - $_POST['txtJugo'];
$cantidadHel - $_POST['txtHelado'];
$cantidadSan - $_POST['txtSandwich'];
'
'
' '
' $total= $subtota1Ens+$subtota1Hel+$subtota1San+$subtotaljug;
'
'
' '
' . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . '
••• • • DESARROLLO DE APLICACIONES WEB CON PHP
Tiene la misma funcionalidad que include con la diferencia de que no muestra mensaje de
advertencias cuando el archivo solicitado no se encuentra, sino más bien detiene la aplicación
,········································································.
( r e q u i r e ( ' a r c h i v o . p h p ' ) ; (
• •
¡ r e q u i r e ( ' a r c h i v o . h t m l ' ) ; ;
........................................................................
si el acceso es correcto.
La interfaz i n i c i a l se muestra a c o n ti n u a c i ó n :
CONTROL DE USUARIOS
Usuario Administrador •
Password
! INGRESAR 1
Prindpal I Salr
Tener en cuenta:
CONTROL DE USUARIOS
Prindpal I Salr
1
CAP. 6: FUNCIONES ••
,/_
CONTROL DE USUARIOS
Principal I Sair
Archivo: p r i n c i p a l. p h p
...................................................................................................................................................................................................
• •
: <html> :
• •
• •
: <head> :
•
. <meta charset="UTF-8"> :
• •
: <title></title> :
: </head> :
. <body> :
<header> ·
</header>
•
<section>
<?php
error_reporting(0);
require('captura.php');
$usuario= getUsuario();
•
$clave= getPassword();
?>
cellspacing="'l'' cellpadding=''l''>
e tr»
<td>Usuario</td>
<td>
<select name=''selUsuarios''>
<option value=''Administrador''>Administrador</option>
<option value='"Sistemas''>Sistemas</option>
<option value='"Operador''>Operador</option>
</select>
</td>
</tr>
<tr>
<td>Password</td>
</tr>
ct r»
name=''btnlngresar'' />
</td>
</tr>
c tr»
<?php
if (isset($_POST['btningresar'J)){
..................................................................................................................................................................................................
••••• DESARROLLO DE APLICACIONES WEB CON PHP
···································································································································································································
•
• •
•
• require('validar.php'); •
•
• •
•
• •
•
•
if (valida($usuario, •
•
$clave)=='ok')
• •
•
•
•
•
header('location:bienvenida.php'); •
•
• •
else{
•
•
•
echo 'Error de datos . . ! ! ' ;
} •
•
?>
</td>
</tr>
</table>
</form>
</section>
<footer>
</footer>
</body>
</html>
.................................................................................................................................................................................................
Archivo: encabezado.php
.•.................................................................................................•....................................................................•........................
. .
<!DOCTYPE html>
<html>
<head> •
•
•
•
<meta charset=''UTF-8''> •
•
•
<title></title>
</head>
<body>
•
<img src="banner_usuarios.jpg"/> •
•
• •
•
<h2 id="centrado">CONTROL DE USUARIOS</h2>
</body>
</html>
.................................................................................................................................................................................................
Archivo: pie.php
.................................................................................................................................................................................................
. .
<!DOCTYPE html>
<html>
•
<head> •
• •
• •
<meta charset=''UTF-8''>
<title></title>
</head>
•
<body>
• •
• •
<p id=''centrado''>
<a href=''principal.php''>Principal</a>
<a href=''javascript:close()''>Salir</a>
</p> •
• •
•
•
</body>
</html>
.................................................................................................................................................................................................
Archivo: captura.php
···································································································································································································
• •
• •
• •
<?php
function getusuari
return $_POST['
• •
•
function getPassword(){
•
•
return $_POST['txtPassword'J; •
. ?> .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .•
CAP. 6: FUNCIONES •••
Archivo: validar.php
·································································································································································································
<?php
function valida($usuario,$clave){
$acceso=' ' ;
return $acceso;
.................................................................................................................................................................................................
Archivo: bienvenida.php
.................................................................................................................................................................................................
. .
<!DOCTYPE html>
<html> •
•
<head> •
• •
•
• •
•
<meta charset=''UTF-8''> •
•
•
•
<title></title>
•
</head >
<body>
<header>
</header>
<section>
•
•
•
<table border=''l'' width=''550'' •
•
•
•
• •
cellspacing=''l'' cellpadding=''l''> •
<tr>
</tr>
</table>
•
</section>
<footer>
•
<?php require('pie.php'); ?>
</footer>
• •
•
•
•
•
</body> •
•
• •
•
</html> •
• •
.................................................................................................................................................................................................
Archivo: estilo.css
.................................................................................................................................................................................................
. .
. .
. .
. .
.
.
body{ .
.
. .
. .
.
. font-family: tahoma; .
.
. .
. .
. .
.
. font-size: 14px; .
.
. .
. .
. .
.
.
} .
.
. .
. .
. .
.
.
#centrado{ .
.
. .
. .
. .
.
.
text-align: center; .
.
. .
. .
. .
. } .
. .
. .
. .
.
. table { .
.
. .
. .
. .
.
.
marg1n: auto; .
.
. .
. .
. .
.
.
} .
.
. .
. .
. .
.
.
img{ .
.
. .
. .
.
. marg1n: auto; .
.
. .
. .
. .
.
. display: block; .
.
. .
. .
. .
.
.
} .
.
. .
. .
. .
.
.
#centrado{ .
.
. .
. .
. .
. text-align: center; .
. .
. .
. .
.................................................................................................................................................................................................
••••• DESARROLLO DE APLICACIONES WEB CON PHP
. .
. .
td {
border-top: #006699;
•
•
•
border-right: #006699; •
•
• •
• •
• border-left: #006699; •
border-bottom: #006699;
.................................................................................................................................................................................................
m CASOS DESARROLLADOS )
Archivo: estilo.css
.................................................................................................................................................................................................
. .
body{
font-family: ta
•
font-size: 14px;
•
}
•
#centrado{
text-align: center; •
•
} •
•
•
table { •
· margin: auto; :
•
•
}
•
img{ •
•
: margin: auto; ·
: } :
•
. Hla{ :
; font-size: 13px; :
•
: background: #b9c9fe; :
¡ color: #039; ¡
; } ;
• •
¡ #error{ ¡
; color: red; l
• •
¡ font-size: 12px; :
¡ } ¡
¡ #codigo{ ;
• •
¡ } :
• •
• •
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .•
empleado catalogado como nuevo en la empresa, para lo cual deberá registrar sus apellidos,
RegtStre CODIGO
Apeldos Ingrese apellidos
RegLStre
Fecha de Fecha no
dd/mm/yyyy
naci'niento �Ida
[ Autogenerar código j
Tener en cuenta:
0 Al presionar el botón Autogenerar código deberá generar el código del empleado usando el
siguiente criterio:
actual
3: Viudo
4: Divorciado
0 El estado civil del empleado debe registrarse en un control tipo SELECT con los siguientes
•
CODIGO
Apeldos Tarres Lazara
GENERADO
[ Autogenerar código ]
Archivo: codigo.php
.................................................................................................................................................................................................
. .
<!DOCTYPE html>
<html>
<head>
<meta charset=''UTF-8''>
<title>Registro de Empleados</title>
</head>
<body>
<header>
</header>
<section>
<?php
error_reporting(0);
$apellidos=$_POST['txtApellidos'J;
$nombres=$_POST['txtNombres'];
$fecnac=$_POST['txtfecnac'J;
$estado=$_POST['se1Estado'];
$sexo=$_POST['rd5exo'];
•
•
$mNombres='';
· $mApellidos=' • ; '
•
· $mfecha= • ' ; :
· if ( !preg_match($permitidos,$apellidos) ;
· 1 1 ! is_string($apellidos)) .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .•
CAP. 6: FUNCIONES ••
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . .. . . ' ' .
.
•
if (!preg_match($permitidos,$nombres)
1 1 !is_string($nombres)) •
•
• •
•
$mNombres ='Registre nombres . . ! ! ' ; •
•
•
if (!preg_match('/A\d{l,2}\/\d{l,2}\/\d{4}$/', $fecnac)) •
$mFecha='Fecha no valida';
switch($estado){
•
case 'Soltero':$cEstado=l;break; •
case 'Casado':$cEstado=2;break;
case 'Viudo':$cEstado=3;break;
case 'Divorciado':$cEstado=4;
if($sexo=='M') $cSexo=l;
if($sexo=='F') $cSexo=2;
•
•
•
$aFecha = explode('/', $fecnac); •
• •
• $año= $aFecha[2);
• •
•
• $edad=date('Y')-$año; •
•
•
ctr»
<td>Apellidos</td>
placeholder=''Ingrese apellidos''
<td>CODIGO GENERADO</td>
</tr>
<tr>
<td>Nombres</td>
placeholder=''Ingrese nombres''
• <td id="codigo">
• •
•
• •
<?php •
•
•
•
if(isset($_POST["btnGenerar")))
•
$codigo=substr(date('Y'), 2).$cEstado.
$cSexo.$edad;
else
$código=' ' ;
echo $código
?>
</td>
</tr>
•
•
ctr»
<td>Fecha de Nacimiento</td>
placeholder=''dd/mm/yyyy''
<td></td>
• </tr>
•
•
ctr» •
• •
• •
• <td>Estado Civil</td> •
• <td>
• •
•
········································································································ · ,, , , .
••••• DESARROLLO DE APLICACIONES WEB CON PHP
. .
. .
<select name=''selEstado''>
Divorciado </option>
</select></td>
<td></td>
<td></td>
</tr>
<tr>
<td>Sexo</td>
Masculino</td>
Femenino</td>
<td><
</tr>
<tr>
<td></td>
<td></td>
<td></td> ·
· </tr> ·
• •
¡ </table> :
. </form> .
• •
; </section> ;
•
; <footer> ,
• •
• •
: </footer> .
•
. </body> ·
</html> ·
........ .. . . .. . . . .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ... .. . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . .. .... . . . . . . . . .•
Comentarios:
..................................................................................................................................................................................................
. .
error_reporting(0);
$apellidos=$_POST['txtApellidos'];
$nombres=$_POST['txtNombres'];
• •
• •
$fecnac=$_POST['txtFecnac']; •
•
$estado=$_POST['se1Estado'];
$sexo=$_POST['rd5exo'];
• •
•
Nombres txtNombres ]
Ingrese nombres
< [
Fecha de
txtFecnac
nadmiento
dd/mm/yyyy
< [
l
•
Estado civl Soltero •�
<-------------,[ sel Estado •
•
•
•
l •
•
•
•
•
sexo t> Mascuino t> Femenino�(----,[ rdSexo ] •
[ Autogenerarcódigo [( [ btnGenerar ]
los valores ingresados y seleccionados por el usuario desde los controles del formulario.
Debemos tener en cuenta que para obtener los valores seleccionados desde el control radio
..................................................................................................................................................................................................
. .
$mNombres=' ' ;
$mApellidos=' ' ;
•
• •
• •
$mFecha=' ' ;
if (!preg_match($permitidos,$apellidos) 1 1 !is_string($apellidos))
•
• •
•
$mApellidos ='Registre apellidos . . ! ! ' ; •
•
•
if (!preg_match($permitidos,$nombres) 1 1 !is_string($nombres))
•
•
if (!preg_match('/A\d{l,2}\/\d{l,2}\/\d{4}$/', $fecnac)) •
•
$mFecha='Fecha no valida';
..................................................................................................................................................................................................
Iniciaremos la validación de los valores registrados por el usuario declarando variables para cada
elemento validado; luego solo para el caso de los nombres y apellidos se declara la variable
$permitidos, que contendrá los valores p e r m i ti d o s para el ingreso del nombre y apellido del
entre los caracteres; y la función is_string es para comprobar que se trata de una cadena de
texto.
SELECTED, para que se mantenga dicho valor al momento de generar el código del empleado .
......................................................................................................................................... .
. .
switch($estado){
case 'Divorciado':$cEstado=4;
.................................................................................................................................................................................................•
Ahora evaluamos el estado civil del empleado para asignar un número por cada ti p o de estado,
y así componer el nuevo código del empleado, según la e s p e c i fi c a c i ó n del caso; 1 será asignado
; if($sexo=='M') $cSexo=l; :
$ a ñ o = $aFecha[2];
$edad=date('Y')-$año;
..................................................................................................................................................................................................
Parte del código autogenerado solicita el año actual, por tanto, debemos obtener la fecha actual
calculamos la edad con la fórmula date('Y')-$año. Las variables $año y $edad serán parte del
nuevo código d e l e m p l e a d o .
rOJO:
•
• 1
aecetre CODIGO
Apeldas Ingrese apellidos
• 1 apelidos . .!! GENERAOO
... ...
................................................................................................... ............................................ ................... ................. .........
. " .
<tr>
.........................................................
.
.
• .
. .
. <td>Apellidos</td> :
. .
.
·
. ......................................................... .
.....................................................................................................................................................
. .
. .
. .
. .
. <td><input type="text" name="txtApellidos" size="70" .
• •
. .
. .
. .
. placeholder=''Ingrese apellidos" .
. .
. .
.
•
•
•
value="<?php echo $apellidos; ? >" /></td> .
.
•. .
.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . .... ' ...............................................................................................
..............................................................................................................
··························································
• •
</tr>
..................................................................................................................................................................................................
, · • · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·········• .
•
• •
• •
•
•
<tr> •
•
• •
• •
• •
• <td>Nombres</td> •
•
• •
• •
• •
• <td><input type=''text name="txtNombres" size="70" •
•
• •
• •
•
• placeholder=''Ingrese nombres'' •
• •
•
• •
•
• value=''<?php echo $nombres; ?>'' /></td> •
•
•
•
• •
•
• < id=''error''><?php echo $mNombres; ?></td> •
•
• •
•
• •
•
<td id="codigo">
•
• •
• •
•
•
<?php •
•
• •
• •
•
•
if(isset($_POST["btnGenerar"])) •
•
• •
• •
•
• $código=substr(date('Y'), 2).$cEstado.$cSexo.$edad; •
•
•
•
•
• else •
•
•
• •
• •
• $código=' ' ; •
• •
•
• •
•
• •
•
•
•
•
echo $codigo •
•
• •
. ? > :
•
•
</td> •
•
•
•
• •
•
•
</tr>
•
• •
.. ..... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . .. . . . . . . . .
. . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. ......... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . ..
la selección del botón generar por parte del usuario, ya q u e al presionarlo deberá generar el
actual, pues la función date('Y') emite 2014, pero en el código solo necesitamos 14; por tanto,
.· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · .
<tr>
<td>Fecha de Nacimiento</td>
placeholder=''dd/mm/yyyy''
•
' value=''<?php echo $fecnac; ?>'' /></td> •
•
<td></td>
</tr>
..................................................................................................................................................................................................
<tr>
•
•
<td>Estado Civil</td> ·
• •
• •
• •
•
<td> •
•
•
<select name=''selEstado''>
</select>
</td> •
•
•
•
<td></td> •
•
• •
• •
<td></td> •
</tr>
. .
. .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. .. .
a u n después de haber generado el nuevo código del e m p l e a d o ; estas variables fueron asignadas
Implemente una aplicación web con PHP que permita calcular el promedio de notas de un
determinado alumno, el cual ingresará su nombre completo y sus cuatro notas, al fi n a l se deberá
mostrar el nombre del alumno, promedio, nota más alta, nota más baja y la condición del alumno.
Promedio de notas
NOTAS
1 Promediar j
Alumno
Promedio O
Condioon Desaprobado
0 Al iniciar el formulario no debe mostrar los datos resultantes, estos se mostrarán solo cuando el
0 Use funciones numéricas para determinar la nota más alta y más baja.
0 Debemos validar cada control y mostrar un mensaje de error según lo solicitado por el formulario.
Promedio de notas
. ,
'
1
i
•
' 1
•
.,.
�
�
'
- 1 ,
'
,
1
1
1 I
,
-
NOTAS
Nota 1 20 Nota 2 17
Nota 3 14 Nota 4 18
Promediar
1 1
Promedio 18
CondiciÓn Aprobado
Archivo: promedio.php
..................................................................................................................................................................................................
. .
<!DDCTYPE html>
<html>
<head>
<meta charset=''UTF-8''>
<title></title>
: </head> :
• •
i cbody» i
. <header> ¡
<br>
</header>
<section>
<?php
error_reporting(0);
$alumno=$_POST[ºtxtAlumnoº];
$nota1=$_POST['txtNota1'];
$nota2=$_POST['txtNota2'];
$nota3=$_POST['txtNota3'];
$nota4=$_POST['txtNota4']; ·
•
•
•
if (!preg_match($permitidos,$alumno) :
1 1 ! is_string($alumno))
$mNota1=' ' ;
$mNota2=' ' ;
. .
.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
••••• DESARROLLO DE APLICACIONES WEB CON PHP
. .
. .
•
•
$mNota3=' ' ;
•
•
$mNota4= ' ' ;
if(empty($notal} 1 1 ! is_numeric($notal})
elseif{$nota1<0 1 1 $nota1>20}
if(empty($nota2} 1 1 ! is_numeric($nota2})
•
•
$mNota2='Error en Nota 2'; •
•
elseif{$nota1<0 1 1 $nota2>20} •
• •
•
• •
• $mNota2='Error en Nota 2'; •
•
•
•
if(empty($nota3} 1 1 ! is_numeric($nota3})
elseif($nota3<0 1 1 $nota3>20}
if(empty($nota4} 1 1 !is_numeric($nota4}}
elseif($nota4<0 1 1 $nota4>20}
?>
.
<form name="frmPromedio" method="post" action="promedio.php">
<tr>
<td width="80">ALUMNO</td>
•
value=''<?php echo $alumno; ?>''/>
•
<?php echo $mAlumno; ?> •
• •
• </td> •
•
• •
• •
•
</tr> •
•
• •
<tr> •
•
<td>NOTAS</td>
•
<td></td>
</tr>
<tr>
<td colspan=''2''>
cellspacing=''2'' cellpadding=''2''>
<tr>
<td width="179">
.
<input type=''text'' name=''txtNotal'' size=''S''
</td>
<td width="179">
</tr> •
c tr» •
<td>Nota 3</td> •
</td>
</td>
..................................................................................................................................................................................................
CAP. 6: FUNCIONES ••
......................................................................... .
.
•
•
ctd id=''error''><?php echo $mNota4; ?></td>
c/tr>
</table>
</td>
c/tr>
ctr>
ctd></td>
•
• •
• c?php
•
• •
•
• $notas=array($notal,$nota2,$nota3,$nota4); •
•
•
• $mayor=max($notas);
•
$menor=min($notas);
$promedio=round(($notal+$nota2+$nota3+$nota4-$menor)/3,0);
if ($promedio>=l3)
• $condicion='Aprobado';
•
• else
•
•
$condicion='Desaprobado';
•
•
?>
ctr>
ctd>Alumnoc/td>
</tr>
•
ctr>
• •
• •
• ctd>Promedioc/td>
• •
• •
• •
• ctd><?php echo $promedio; ?></td> •
• •
• •
•
c/tr> •
•
•
•
ctr>
•
</tr>
ctr>
•
•
ctd>c?php echo $menor; ?></td>
•
c/tr>
•
•
ctr>
ctd>Condicionc/td>
</tr>
</table>
</form>
•
</section>
•
• cfooter>
• •
•
•
<h6 id="centrado">Todos los derechos reservados - •
•
•
•
•
•
Lic. Manuel Torresc/h6> •
• •
•
•
• </footer> •
c/body>
</html>
•. . .. .... .. . . . . . .. . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. ..... .. . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . .. ..... .. . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . .. .
Comentarios:
,-•················································································································································································· .
•
•
error_reporting(0);
$alumno=$_POST['txtAlumno'];
•
•
•
• $nota1=$_POST['txtNotal'];
..................................................................................................................................................................................................
O m i ti m o s los errores de advertencia del PHP, luego capturamos todos los valores registrados por
el a l u m n o .
••••• DESARROLLO DE APLICACIONES WEB CON PHP
. .
. .
•
• $mAlumno=' ' ;
if (!preg_match($permitidos,$alumno) 1 1 !is_string($alumno)) •
•
··············································································································································· ···················································
..................................................................................................................................................................................................
. .
•
• $mNotal=' ' ;
$mNota2=' ' ;
$mNota3=' ' ;
$mNota4=' ' ;
if(empty($notal) 1 1 !is_numeric($notal))
• •
• •
• $mNotal='Error en Nota 1'; •
•
•
• •
elseif($nota1<0 1 1 $nota1>20)
•
if(empty($nota2) 1 1 !is_numeric($nota2))
• elseif($nota1<0 1 1 $nota2>20)
•
•
• $mNota2='Error en Nota 2';
if(empty($nota3) 1 1 !is_numeric($nota3))
elseif($nota3<0 1 1 $nota3>20) •
• •
•
•
•
$mNota3='Error en Nota 3'; •
•
• •
•
• •
•
•
•
if(empty($nota4) 1 1 !is_numeric($nota4))
elseif($nota4<0 1 1 $nota4>20)
. . . . . . . . . . . . . . . . . . . . . . . . . ... . .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
.
ctr»
<td width="80">ALUMNO</td>
value=" < ?php echo $alumno; ? > " / >< ?php echo $mAlumno; ?>
</td> •
</tr>
..................................................................................................................................................................................................
................................................................................. .
. .
<tr>
• <td width="179"> •
•
• •
• •
• •
<input type=''text'' name=''txtNotal'' size=''5''
</td>
•
•
•
<td width="179"> •
• •
</td>
</tr>
. . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . .. . .. . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
•
<tr>
<td>Nota 3</td>
• •
</td>
•
<td id=''error''><?php echo $mNota3; 1></td> •
<td>Nota 4</td>
'
•
<td><input type=''text'' name=''txtNota4'' size=''S''
• •
•
</td> •
•
• <td id=''error''><?php echo $mNota4; 1></td>
</tr>
..................................................................................................................................................................................................
.................. .
. .
$notas=array($notal,$nota2,$nota3,$nota4);
$mayor=max($notas);
$menor=min($notas);
•
• $promedio=round(($nota1+$nota2+$nota3+$nota4-$menor)/3,0)¡ •
if ($promedio>=13)
•
•
$condicion='Aprobado'; •
else
$condicion='Desaprobado';
.................................................................................................................................................................................................•
••••• DESARROLLO DE APLICACIONES WEB CON PHP
Para poder d e t e r m i n a r la mayor y menor nota hemos implementado una variable llamada
$notas, la c u a l a l m a c e n a las notal, nota2, nota3 y nota4 , como un solo arreglo; a partir de
Si las variables contienen los siguientes datos: nota1=20, nota2=17, nota3=14 y nota4=18, con
ARREGLO VALOR
$notas[O] 20
$notas[1] 17
$notas[2] 14
$notas[3] 18
menor nota obtenida a partir de la función min; t a m b i é n debemos tener en cuenta que se debe
La interfaz gráfica i n i c i a l es la s i g u i e n t e :
VENTA DE PRODUCTOS
Piezas de computadoras
Fecha: 05-07-14
Hora: 04:26 AM
ntidad Precio:
$0.00
J PROCESAR j
CAP. 6: FUNCIONES ••
Tener en cuenta:
0 I m p l e m e n t e funciones para la impresión del número de venta, fecha de venta y hora de la venta.
0 Los valores seleccionados para la venta deben mantenerse a u n después de presionar el botón
Procesar.
SUBTOTAL % DE DESCUENTO
< 300 8 %
<500 20 %
OK
0 F i n a l m e n t e , si todos los datos son correctos, el botón Procesar debe generar la siguiente v e n t a n a :
••••• DESARROLLO DE APLICACIONES WEB CON PHP
VENTA DE PRODUCTOS
Piezas de computadoras
Fecha: 05-07-14
Hora: 03:04 PM
ntidad 5 Precio:
$20.00
[ PROCESAR ]
NÚMERO: 00001
PRODUCTO Teclado
UBTOTAL $100.00
Archivo: venta.php
················································································································································ .
• •
<h
<meta charset=''UTF-8''>
<title>Venta de Productos</titl
</he
<bod
<header>
</header>
<secti
<!--Tabla de Ingreso-->
<tr
< width="200"></td>
< width=''200''></td>
• •
<td width="50"><?php echo generaCodigo(); ?></td> •
•
• •
• •
</tr>
<tr>
<td></td>
<td></td>
,,,.,,,,,,,,,,,,., ,.,,,,,,,,,,,,.,,, ,.,,,,,,,,,,,,,,, , .. ,,,,,,,.
CAP. 6: FUNCIONES ••
.
·································································································································································································· .
<td>Fecha:</td>
</tr>
<tr>
ctd></td>
<td></td>
• ctd>Hora: c/td>
</tr>
•
•
•
•
ctr>
• •
•
•
•
•
<tr>
• •
•
• •
•
•
<td>Producto</td> •
• •
•
•
<?php •
•
•
• •
error_reporting(0);
•
•
list($teclado,$mouse,$impresora,$disco,$lectora)=
•
•
• productoxDefecto(getProducto());
?>
<td colspan=''3''>
cselect name=''selProducto''
onchange=''this.form.submit()''>
Teclado multimediac/option>
•
Impresora color</option>
•
•
coption value="Disco Duro"<?php echo $disco; ?>>
•
• Disco Duro</option>
•
•
coption value="Lectora DVD"c?php echo $lectora; ?>>
Lectora DVD</option>
•
•
</select>
c/td>
<td></td>
<td></td>
</tr>
ctr»
ctd>Cantidadc/td>
<td>Precio:c/td>
•
<td id="código">c?php echo '$'.number_format(
•
•
•
• •
•
•
asignaPrecio(getProducto()),2); ?>
•
•
• •
• </td> •
•
• •
•
• </tr>
•
• •
• •
ctr> •
• •
•
<td></td> •
•
• ctd></td> •
•
ctd><input type="submit" value="PROCESAR" /></td>
ctd></td>
</tr>
</table>
•
<table border=''l'' width=''700"' cellspacing=''0'' cellpadding=''0''>
•
• ctr»
ctd width=''200''>NUMERO:c/td>
•
<td width="200">c?php echo generaCodigo(); ?> </td>
•
•
ctd width=''200''></td>
'
•
• ctd width=''200''></td>
•
'
• </tr>
•
ctr>
.................................................................................................................................................................................................•
••••• DESARROLLO DE APLICACIONES WEB CON PHP
. .
<td>FECHA:</td>
<td>HORA:</td>
•
<td><?php echo muestraHora(); ?></td>
'
• </tr>
'
•
'
<tr>
•
' <td>PRODUCTO</td>
<td></td>
<td></td>
•
'
</tr>
<tr>
•
'
<td>CANTIDAD:</td>
•
'
<td>PRECIO:</td>
asignaPrecio(getProducto()),2); ?>
</td>
•
'
•
</tr>
'
<tr>
•
'
<td></td>
<td></td>
•
'
</tr>
•
</table>
'
<tr>
<td width="200">SUBTOTAL</td>
•
<td width=''200''>
'
<?php
$subtotal=calculaSubtotal(asignaPrecio(getProducto()),
•
' getcantidad());
•
'
echo '$'.number_format($subtotal,'2', ' , ' , ' ' ) ; ?>
</td>
<td width=''200''></td>
<td width=''200''></td>
</tr>
<tr>
<td>DESCUENTO</td>
<td><?php
$descuento= calculaDescuento($subtotal);
</td>
<td>NETO A PAGAR</td>
<td id=''código''><?php
$neto= calculaNeto($subtotal,$descuento);
</td>
</tr>
</table>
<?php}
else
</script>";
?>
</form>
</section>
<footer></footer>
</body>
</html>
..................................................................................................................................................................................................
CAP. 6: FUNCIONES •••
..................................................................................................................................................................................................
. .
<?php
function getProducto(){
return $_POST['se1Producto'];
function getCantidad(){
return $_POST['txtCantidad'];
function generaCodigo(){
•
$n = 1;
•
return str_pad($n,S,'0',STR_PAD_LEFT); •
•
• •
• •
}
•
• •
• •
•
•
function muestraFecha(){ •
• •
• •
•
return date('d-m-y'); •
•
function muestraHora(){
function asignaPrecio($producto){
switch ($producto){
default: return 0;
function productoxDefecto($producto){
•
if ($producto=='Mouse') $selM='SELECTED'; else $selM="";
• •
• •
•
if ($producto=='Impresora') $sell='SELECTED'; else $sel!=""; •
•
•
• •
•
•
•
if ($producto=='Disco Duro') $selD='SELECTED'; else $selD=""; •
•
•
•
• •
if ($producto=='Lectora DVD') $selL='SELECTED'; else $selL=""; •
•
•
• •
return array($selT,$selM,$selI,$selD,$selL);
}
•
function calculaSubtotal($precio,$cantidad){
return $precio*$cantidad;
function calculaDescuento($subtotal){
if ($subtotal<=300)
return $subtotal*0.08;
elseif ($subtotal<=500)
return $subtotal*0.1;
else
return $subtotal*0.2;
function calculaNeto($subtotal,$descuento){
return $subtotal-$descuento;
• •
• •
• •
•
Comentarios:
..................................................................................................................................................................................................
Imprimiremos los valores obtenidos desde las funciones generaCodigo (función que genera
el código autonumérico del registro), muestraFecha (función que muestra la fecha actual) y
.. . . . . .. . ... . . .. . ....... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
.
error_reporting(0);
list($teclado,$mouse,$impresora,$disco,$lectora)=productoxDefecto(getProducto());
•
•
··································································································································································································
implementado una función llamada productoxDefecto, que permite devolver una matriz de
mensajes de acuerdo al producto seleccionado, que luego serán asignados a las variables
$teclado, $mouse, $impresora, $disco y $lectora. La función list que recibe dicha matriz tendrá
la misión de asignar a cada variable el valor devuelto desde la función en estricto orden de
llegada. Considere que para determinar los mensajes, debemos enviar como parámetro el
·································································································································································································•,
•
•
<tr> •
•
• •
<td>Cantidad</td>
<td>Precio:</td>
• •
<td id="código"><?php echo ' $ ' .number_format(asignaPrecio(getProducto()),2)¡ ?> •
</td>
</tr>
..................................................................................................................................................................................................
que no se pierda el valor registrado. En el caso del precio del producto, se mostrará cuando el
usuario seleccione un producto desde el cuadro combinado; por tal motivo, debe implementar
form.submit()"> .
..................................................................................................................................................................................................
. .
················································································ .....•.......................•.....................•.......•..••...•..........................................•...
se mostrará la tabla de impresión de resultados; hay que tener en cuenta que la llave se debe
cerrar al fi n a l i z a r la tabla .
................................................................................................................................................. .
. .
<tr>
<td width=''200''>SUBTOTAL</td>
<td width=''200''>
• •
• •
<?php
•
$subtotal=calculaSubtotal(asignaPrecio(getProducto()), getCantidad());
echo ' $ ' .number_format($subtotal, ' 2 ' , ' . ' , ' ' ) ;
?>
•
•
</td>
<td width=''200''></td>
<td width=''200''></td>
•
•
•
•
</tr> •
•
• •
•
• •
•
··································································································································································································
CAP. 6: FUNCIONES ••
···································································································································································································.
c t r»
<td>DESCUENTO</td>
<td><?php
•
echo ' $ · . number _format($descuento, ' 2 ' , ' . ' , · ' ) ; ?>
</td>
: <td>NETO A PAGAR</td> :
<td id=''codigo''><?php
$neto= calculaNeto($subtotal,$descuento);
. echo ' $ · . number _format($neto, ' 2 ' , ' . ' , · ' ) ; ?>
•
•
•
</td> •
•
</tr>
..................................................................................................................................................................................................
correspondientes .
.· · · · · · · · · · • . . . . • . . • • • . • • . . • . . . . • . • • • . . • . . . . • . . . • • . • • . . . • . . . • • . . . • . • . . . . . • . . . . . . . . • • • . • • . . • • . . . . • . • . . . • • . . • . • . . . • • • . . . • • . . • • • . . • • . • . . . . . . · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · .
. .
: } :
:. else :
.
. .
! </script>"; !
. .
. . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. .
el navegador, para lo c u a l usamos la función alert de JavaScript. Para invocar a esta función
.
•......... .. . ·····················································································································································································.
function getProducto(){
return $_POST['se1Producto'];
function getCantidad(){
return $_POST['txtCantidad'];
function generaCodigo(){
$n = 1;
• function muestraFecha(){
•
•
•
•
return date('d-m-y');
•
• •
• •
• } •
•
• •
•
•
function muestraHora(){ •
•
•
•
• return date('h:i A, ) ; •
•
•
} •
function asignaPrecio($producto){
switch ($producto){
default: return 0;
. . .. . .. . .. . . .. .. . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. .. . . . . . .. . .. . . .. .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . .. . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. .
••••• DESARROLLO DE APLICACIONES WEB CON PHP
i m p r i m a n al lado i z q u i e r d o de la v a r i a b l e $n.
································································································································································································•·,
•
function productoxDefecto($producto){
return array($selT,$selM,$selI,$selD,$selL);
..................................................................................................................................................................................................
solo a uno de ellos el atributo SELECTED; estos serán impresos en cada opción del cuadro
combinado selProducto; todo esto para poder mantener el producto seleccionado por el
u s u a r i o en su m i s m o control.
······················· .
'
' '
return $precio*$cantidad;
function calculaDescuento($subtotal){
if ($subtotal<=300)
return $subtotal*0.08;
elseif ($subtotal<=500)
'
' return $subtotal*0.1; '
'
else
return $subtotal*0.2¡
function calculaNeto($subtotal,$descuento){
return $subtotal-$descuento;
}
'
' . . . . . . . . . . . . . . . .. .. .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. .. . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . '
subtotal, pues según el criterio el subtotal es inferior a 300, o entre 301 y 500, o superior a 500
producto.
CAP. 6: FUNCIONES ••
Implemente una aplicación web con PHP que permita determinar la pensión mensual que paga un
ponderado:
PROMEDIO CATEGORÍA
Superior a 1 7 A
Entre 14 y 17 B
Entre 12 y 14 e
Inferior a 1 2 D
Para obtener el monto de la pensión mensual se deberá evaluar la categoría obtenida desde el
A $ 550.00
B $ 650.00
e $ 750.00
D $ 800.00
PENSION DE ESTUDIANTES
Simulador de cuotas
Alumno
Promedio
[ PROCESAR j
ponderado
Tener en cuenta:
0 Al iniciar el formulario no debe mostrar los datos resultantes, estos se mostrarán solo cuando el
0 Los valores seleccionados para la venta deben mantenerse aun después de presionar el botón
Procesar.
0 Implemente una función lambda que determine la categoría del estudiante según su promedio.
0 Implemente una función lambda que calcule la pensión del estudiante según su categoría.
0 Implemente una función lambda que asigne un valor constante de 5 cuotas para todos los
estudiantes.
••••• DESARROLLO DE APLICACIONES WEB CON PHP
PENSION DE ESTUDIANTES
Simulador de cuotas
Promedio
19 [ PROCESAR ]
ponderado
Promedio 19
categoría A
RESUMEN DE CUOTAS
Número de cuotas 5
07/07/2014 $550.00
07/08/2014 $550.00
07/09/2014 $550.00
07/10/2014 $550.00
07/11/2014 $550.00
Archivo: pension.php
..................................................................................................................................................................................................
. .
<!DOCTYPE html>
<html>
<head>
<meta charset=''UTF-8''>
<title>Pensión de estudiantes</title>
</head>
<body>
<header>
</header>
<section>
<tr>
<td>Alumno</td>
..................................................................................................................................................................................................
CAP. 6: FUNCIONES ••
··································································································································································································· .
• •
•
•
•
<td><input type="text" name="txtAlumno" size="70" •
•
• •
•
•
value=''<?php echo getAlumno(); ?>'' /></td>
•
•
<td></td>
•
</tr>
<tr>
<td>Promedio ponderado</td>
name=''btnProcesar''/></td>
< / tr>
</table>
<?php
$categoria = function($promedio){
if ($promedio>17)
elseif ($promedio>=14)
elseif ($promedio>=12)
return "C";
else
•
return "D";
•
•
•
}; •
• •
• •
• •
•
•
• •
•
• •
•
• •
• <?php if(isset($_POST("btnProcesar"])){?> •
•
• •
<tr>
<td width=''200''>Alumno</td>
<td width=''200''></td>
</tr>
<tr>
<td>Promedio</td>
<td></td>
</tr>
<tr>
<td>Categoria</td>
<td></td>
</tr>
</table>
<?php
$pension= function($categoria){
•
if ($categoria=="A") •
•
• return 550; •
•
•
• •
elseif ($categoria=="B")
•
• •
•
• return 650; •
• •
• •
•
•
elseif ($categoria=="C")
•
• return 750;
•
return 800·,
else
};
..................................................................................................................................................................................................
••••• DESARROLLO DE APLICACIONES WEB CON PHP
. .
. .
•
•
•
•
•
•
<tr>
<td width=''200''></td>
<td width=''200''></td>
</tr>
<tr>
<td>Monto Pensión</td>
•
<td></td>
• •
• •
•
</tr>
•
•
•
<tr> •
•
•
• •
• •
• <td>Fecha Actual</td> •
•
• •
•
•
<td><?php echo $fecha(); ?></td>
• •
• •
• •
<td></td>
•
• •
</tr>
•
<tr> •
<td>Número de Cuotas</td>
<td></td>
</tr>
</table>
<tr>
</tr>
<tr>
<td>Fechas</td>
</tr>
<?php
.
for($i=1;$i<=$cuotas();$i++){
$montoTotal += $pension($categoria(getPromedio()));
?>
<tr>
<td>
<?php
$f=$fecha();
?>
•
</td>
•
•
getPromedio())),'2',',',''); ?> •
•
•
</td> •
• •
•
•
</tr> •
• •
• •
•
•
•
<?php} ?> •
• •
• •
•
• <tr> •
• •
• •
<td><?php echo '$'.number_format($montoTotal, ' 2 ' , ' , ' , ' ' ) ; ? >
• </td> •
</tr>
</table>
<?php} ?>
</form>
..................................................................................................................................................................................................
CAP. 6: FUNCIONES ••
····································································································································································································
• •
¡ </section> i
. .
, cfooter> ,
. .
. .
· c/footer>
c?php
?>
c/body>
•
: </html>
............................••....•..•......••..............................................•.......•......••......•...............................................•..............................
Comentarios:
.•·········································································· .
$categoría= functíon($promedío){
if ($promedío>17)
return "A";
elseíf ($promedio>=14)
return "B".
,
elseíf ($promedío>=12)
" ( " ·
return ,
else
return "D";
};
..................................................................................................................................................................................................
..................................................................................................................................................................................................
.
$pension= functíon($categoría){
if ($categoria==''A'')
return 550;
, elseíf ($categoría=="B")
•
return 6 5 0 ·,
elseíf ($categoría=="(")
•
•
return 7 5 0 ·,
elseíf ($categoría=="D")
• return 800·,
•
• •
• •
•
else •
•
•
};
•
• •
• •
$cuotas= function() { return 5; };
•
•. . . . • . . . . . . . . . . • • . • • . . • • . . • . • . • . . . • • . • . . . . . • . . • . . . • • . • . • . . . . . . • • . . • • . . . . . . . . . • • . . • • . . • . . . • . . • • . . . • • . . . . . . . . • . • . . . • • • • • • . . . • • . • . . . • . . • • . . . . . . . • . . . • . . . . . • • . • • . . . . • • . . . . . . • • . . • • . . • . • • • . . . . • . . • • . • • .
v a r i a b l e $pensión.
$cuotas.
••••• DESARROLLO DE APLICACIONES WEB CON PHP
. .
. .
< ?php
for($i=1;$i<=$cuotas();$i++){
$montoTotal += $pensión($categoria(getPromedio()));
?>
•
•
<tr> •
•
•
•
<td> •
• •
• •
• <?php •
$f=$fecha();
?>
•
•
</td>
•
• <td><?php echo ' $ ' .number_format($pension($categoria(
getPromedio())),'2',',',''); ?>
</td>
</tr>
<?php} ?>
• •
• •
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . .. .. . . . .. . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . , .. , .