presentacion crones
TRANSCRIPT
-
8/16/2019 Presentacion Crones
1/212
0N
Objetvo: El alumno conocerá la funcionalidadde un rn y realizará su implementación.
-
8/16/2019 Presentacion Crones
2/212
-
8/16/2019 Presentacion Crones
3/212
ttz ·u�
E progra o s]m emeJ1te oru e demoo que ·a a pe a los uuio=
e í
de eme
J te tbie mfsao= e jet odenes a ten lo peodieos o eJ1 dete ]1do momenU
Ee demo sei
a de 1, c: ar
m
m
1 ca,
] de ext i as copas el pg.a e n emoa S mane ee o e emaede eodeJ:
se.
.
r
.
deiea caa mÜ1to
· lee oa o n e los o co teJ o eJ1 als: eo /e E os o do eaos beJ po los lso o por em]mtao ]liz1o e como cr o ah co op o e a e a da .
-
8/16/2019 Presentacion Crones
4/212
. oio puede existi l·o er on o
r
usuio
que esMa 1aJmaceado e eI
diecorio
merio co
�
he e]
1
de edo
d IBe de c o onJ
h de coe]e aon de ieo w a oe
deen ihlda oo oo siib a:
-
8/16/2019 Presentacion Crones
5/212
Donde ·
4 y 5 son Io s nco cpos rs aos pa ]
c
1 : o
to d la
u
ó
n y odn s o
re dl comdo a j ut . Cada cpo pude sr W úro
o do d1 aJ go p do= m as sco (n cando
q
oos Ios aos so
Ig t
os
o
a list� de nos tos spados por
comas o
g ones_
E
l s gcado de
stos C lpos s s :
d
d . ca
e
l
Ñiutos G9c2 H�as Q-
c Da 3c M s _ ¡ · c
5 Das- smaa_ _
S i se especa n cpo , or O es s j cua cada sm .
S i s spca c m c po ,ao = st se j u a todo 1 l po_
A füdc 2, 2 s espfc mutos.
-
8/16/2019 Presentacion Crones
6/212
,
// //
[@ ] 1 9 9 5 >>
-
8/16/2019 Presentacion Crones
7/212
0
·a ·
n mn sistea
L
inm
ada smar tenda su p pi
.
inuid
. P
supue
n
en el c nta
o
de cada usmar sol se pei ia eje cu
t eas p
a
a las que ese smo tenga
peis � eje pl
=
mn umao qe n sea
n da aag el sistea
-
8/16/2019 Presentacion Crones
8/212
Ij ( ( o
t
a.
P
a
\er La fni0
1
1alidad deo ·
b
e l comdo os ofree. de mer asica Lassg nietes posi bildades:
usk aa e ,s p d s
Esuo lo :hemos co
ot mqin
# ont
-
E ue
s
k
t
b de s pg s
.
P etar nesra 1ar ea o . e j en aremos ·
t mqin # ont -
Lo que se obtiee e edtor (e l qe ha ao defido e La ' aab le de elon 0 R e e l qu podremos adr leas i o d roab ua por ada tea que dseemosprogr .
-
8/16/2019 Presentacion Crones
9/212
B ra ra rraa
Podre
m
b
tda nuestra prograci
ó
n de tea con
.
maqua · c -r
Ah
ra
�
es alga nta a rspct
[ _ P. cre c]i,.orn
simpem
e nte sereaiza
lasiguiete cn
:
[ maqua cta m av
_ P. er n prgra se d per iss
de e jucn especfa
la ta
bsouta de l scnp
_ L us1
a
s istad en e .c]
L
/
c
r
o
a
·
1
0
1
1
•
puede
aer us de cr_ P.
que n usui utie s
nes se debe de reaiz a sgiete inst
cin
:
[ maqua · cta u usua
L us
as istads n e .]
t · r
y
puede aer us de
CI I
L
-
8/16/2019 Presentacion Crones
10/212
Realizar un rn para apagar el equipo a las
siete y media de la mañana del mañana(ojo,hay que ser root para ejecutar esto):
30 7 28 4 * /sbin/shutdown -h now
-
8/16/2019 Presentacion Crones
11/212
2 Para hacer un .tar.gz de un directorio(como backup, por ejemplo), todos los díaslaborables a las 4:00 horas.
1 15 kk
-
8/16/2019 Presentacion Crones
12/212
3 Para que, cada hora, los sábados y domingos,se guarde en un archivo de log, las conexionesde red abiertas en el sistema:
* * * 7 date>> /var/log/net_con.log;netstat -t >> /var/log/net_con.log
-
8/16/2019 Presentacion Crones
13/212
4 Implementar un rn, el cual permita saberlos usuarios conectados al sistema cada
viernes a las 20 horas y que muestre en unarchivo llamado sólo los siguientesdatos:
- - D - - Q (
h)
-
8/16/2019 Presentacion Crones
14/212
Entregar bitácora de la práctca y subir elarchivo en EDUCAFI.
-
8/16/2019 Presentacion Crones
15/212
E
-
8/16/2019 Presentacion Crones
16/212
Introdcción a o Fltos Programas de UNIX que leen una entrada, realizan una
transformación y escriben una salida .
Ejemplos:
v grep y al
v or
wc
v ec.
elecconan pare de una enrada
Claca la enrada
Cuena la enrada.
Filtros de Datos o Filtros Programables
v ed
v awk
dor de Fluo
Flro programable con nax mlar al C
-
8/16/2019 Presentacion Crones
17/212
z
x v xb b x z
, , wk, f,
x
-
8/16/2019 Presentacion Crones
18/212
x E v á á b x
-
8/16/2019 Presentacion Crones
19/212
Go , .
g patron v.... El comndo grep exmin los rchivos nombrdos (o l entrd
estándr) e imprime cd líne que conteng un cso de ó. Ejemplos:
grepn variable *.[ch] Localia "variable en archivosfuentes de e
grepy mary $HOMElibagendaEncontrar el número de teléfono deMary
who grep mary Is grepv .c
-n Imprime lo números de líne
v Invierte el sentido de l prueb
Comprobar si mary inicio sesión
Archivos que no sean fuentes de C
-y Hce indistinto el ptrón en myúsculs o minúsculs
-
8/16/2019 Presentacion Crones
20/212
xr in Rulrs
r
(y toaos los filtros)maneja
patrones mucho más intricdos
denomindos Expresiones Regulres . Ls expresiones regulres se especificn dndo un significdo especil
ciertos crcteres .
Algunos metcrcteres: " Ancla el patrón al inicio de la línea
Ancla el patrón al final de la línea. [a-] Rango (cualquier minúscula)
Ojo!!: [-] Complemento del Rango (cualquier caracter menos un dígito)
Se acopla con cualquier caracter (Similar al para el Shell) Algunos ejemplos:
Is grep'd Lista los nombres de directorios Is grep ' Lista los archivos que otros pueden leer y
escribir.
-
8/16/2019 Presentacion Crones
21/212
-
8/16/2019 Presentacion Crones
22/212
/etc/pas wd
-
8/16/2019 Presentacion Crones
23/212
Expresones Regulares (cont) Operdor cerrdur '*
Se aplica al caracter o metacaracter anterior (incluyendo un rango), y en conjuntoconcuerdan con cualquier número de acomplamientos sucesivos del caracter ometacaracter.
Ejemplos:�x* Concuerda con una secuencia de x lo más larga posible.�[a-A-Z]* Concuerda con una cadena alfabética de cualquier longitud�.* Concuerda con cualquier cosa hasta una nueva línea�.*x Concuerda con cualquier cosa hasta la última x del renglón
Adveencis:�* Se aplica exclusivamente a un caracter. fg* reconoce a una f seguida de varias
g, y no una secuencia como fgfgfgfg.�* Reconoce cero, una o varias concordancias del caracter. Si queremos que
reconoca por lo menos un caracter tendremos que duplicarlo. Por ejemplo parareconocer una cadena de letras la expresión correcta será[ a-A-Z] [a-A-Z]*
�Ninguna expresión regular de grep reconoce el caracter nueva línea.
-
8/16/2019 Presentacion Crones
24/212
ot Por defult, clsific su entrd por renglones en orden ASCII. Alguns
de sus opciones:
�-f Vuelve equivalentes mayúsculas y minúsculas.
�-d Orden de diccionario. Ignora todos los caracteres
excepto letras, dígitos y blancos.
�-n Comparación numérica�-r Revierte el sentido de la comparación
�-o Especifica un nombre de archivo para la salida
�-u Suprime las líneas repetidas
Ejemplos:
�Is sortf
�Iss sortn
�Iss sortnr
Clasifica los archivos por orden alfabético
Clasifica los archivos más pequeños primero
Clasifica los archivos más grandes primero
-
8/16/2019 Presentacion Crones
25/212
ort (Campo )
S u t qu j u t í. L t + qu t ; +O
í. í j:�Is -1 sort +3nr Clasifica por conteo de bytes(primero el más grande)
� who sort +4n Clasifica por tiempo desde inicio de sesión
(primero el más antiguo)
-
8/16/2019 Presentacion Crones
26/212
ftro El comando tr translitera los caracteres de su entrada.
Uno de los usos más comunes es la conversión de mayúsculas y
minúsculas.
r azAZ
r AZ az Uniq
Convere mnúcula en mayúcula
Convere mayúcula en mnúcula
lmna renglone duplcado
dd
Baane dno a lo vo haa ahora. uele empleare para manear dao
en bruo y n ormao. oee recuro para ranormar de ACII a BCDIC
y para manear dao bnaro.
-
8/16/2019 Presentacion Crones
27/212
ed
Lee un renglón a la ve a partir de los archivos de entrada, aplica los comandos de
la lista, por orden a cada renglón y escribe su forma editada en la salida estándar. Sintaxis: sed'lista de comandos archivo .. .
Por ejemplo:
sed 's/UNIX/UNIX (TM)/g archivos ... > output
Advertencia: sed no altera los contenidos de sus archivos de entrada. Escribesobre la salida estándar por lo que archivos originales permanecen intactos.
Otro ejemplo:
who sed 's/ .*Trae solo los nombres de usuarios y la hora de inicio de sesión.
sed 's//>/ o sed '/./s//>/ $*
Pone un tabulador al inicio de cada línea. La segunda versión solo lo hace en aquellos
renglones que no sean sólo un caracter nueva línea.
-
8/16/2019 Presentacion Crones
28/212
ed (Cont)� or deeco realza la mpreón auomáca de la alda. La opcónn deacva
la alda la cuál debe er explcada medane el comando p. or eemplo
$ sed -n '/patrón/p hace lo mismo que grep
$ sed -n '/patrón/!p hace lo mismo que grep -v
� Oro eemplo
$ sed 's/$/\ Agrega un caracter nueva línea al final de cada renglon> / haciendo que la salida tenga doble espacio .
$ sed 's/[ >][ >]*/\ Reemplaza cada cadena de blancos o tabs por un nueva línea
> / por lo que divide cada palabra de la entrada en un renglón .
$ sed -n 20,30p Imprime sólo las líneas 20 a 30 .
$ sed '1,10d Borras las líneas 1 a 10 (=a tail +11)
$ sed '1,/$/d Borra hasta la primera línea en blanco inclusive
$ sed '$d Borra la última línea
-
8/16/2019 Presentacion Crones
29/212
awk
� Awk e parecdo al ed pero con una nax má mlar al lenguae C.
nax awk'programa archvo...
La nax del programa e
parón accón
parón accón
� Awk lee la enrada en lo nombre de archvo un renglón a la vez. Cada renglón
e compara con cada parón en orden, para cada parón que concuerde con el
renglón e eecúa la accón correpondene.
� Al gual que ed, awk no alera lo archvo de enrada.
� Lo parone pueden er expreone regulare exacamene como en egrep,
aunque ambén pueden er condcone má complea que recuerdan má al
lenguae C.
-
8/16/2019 Presentacion Crones
30/212
awk (cont.) Ejemplos:
awk 'expreon regular prn archvo Hace lo que egrep
El patrón y la acción son opcionales.
e ome la accón, la accón por deaul e mprmr la línea.
e ome el parón, la pare de accón e hace para oda la línea de la
enrada.
Al igual que en sed los comandos de awk pueden estar en un
archivos separado mediante la siguiente sintaxis:
awk cmdle archvo .. .
-
8/16/2019 Presentacion Crones
31/212
awk - Camp Awk divide cada renglón de entrada automáticamente en campos (cadenas de
caracteres que no sean blancos, separados por blancos o tabuladores.) Por ejemplo la salida de who tiene campos:
$who
carlostty2 Sep 1411 :53
maria tty3 Sep 1411 :27
Awk llama a los campos $1, $2, .. ., $NF. NF es una variable cuyo valor es igual alnúmero de campos. En este caso NF = en ambos renglones. Notese la diferenciaentre NFnúmero de campos- y $NF el último campo del renglón-.
En awk, a diferencia del Shell, sólo los campos empiean con $, las variables no
tienen'adornos .
Por ejemplo: $ du -a awk '{ print $2 } Excluye los tamaños deja sólo los nombres de
archivos.
-
8/16/2019 Presentacion Crones
32/212
awk Camo (cont. ) Awk normalmente supone que el espacio en blanco (cualquier
número de blancos y tabuladores) separa los campos, pero el
separador puede cambiarse a cualquier caracter. Una manera de
hacerlo es recurrir a la opción -F (mayúscula) de la línea de
comandos. Por ejemplo: awk F ' prn ecpawd Imprme ólo lo nombre de
uuaro del ecpawd
-
8/16/2019 Presentacion Crones
33/212
awk - mpre ,
on� La varable R e el número del "regro o línea acual.
awk ' prn R
Imprme el número de línea egudo de la línea complea. l campo e la
línea enera, n cambo.
� n una accón prn, lo elemeno eparado por coma e mprmen
eparado por el eparador de alda or deaul el blanco.
� La propocón prn perme un conrol compleo obre la alda. mlar al C
awk ' prn "4d n, R,
4d epecca un enero decmal R en un campo de 4 dígo de ancho,
epecca una cadena de caracere y
n un caracer nueva línea. rn no mprme n blanco, n nueva línea por
deaul.
-
8/16/2019 Presentacion Crones
34/212
�Ww-F$2 a Susca los usuarios sin contraseña .
Otras formas de obtener el mismo resultado: $2 $/ El segundo campo concuerda con la cadena vacía . $2 /./ El segundo campo no concuerda con cualquier caracter. length($2) = = O La longitud del segundo campo es cero .
El símbolo indica concordancia con una expresión regular y ! significa "no
corresponde. La expresión regular debe estar encerrada entre diagonales. Awk se vale de la misma convención que el Shell para los comentarios. El símbolo indica el inicio de un comentario . La función substr(s,m,n) produce la subcadena se s que comiena en la posición m
y mide n caracteres de largo.
El
Awkproporciona dos Patrones especiales EIN y END. Las acciones de EIN
se realian antes del primer renglón, y las acciones de END se efectúan luego de
ser procesado el último renglón.
-
8/16/2019 Presentacion Crones
35/212
'w�';% fJ � p O Deplega hay un número par de campo awk 'lengh > 7 prn "Renglón, R, "muy largo, ubr , , dae
Thu Aug 97 DT
dae awk ' prn ubr4, ,
7 awk 'BGI F = "
> == " ' ecpawd
awk 'D prn R .. .
uevamene Buca uuaro n conraeña
ldem wc
raco s
-
8/16/2019 Presentacion Crones
36/212
wk
Op raco sArtétca
awk también puede realiar cálculos sobre los datos de entrada. Es muy sencillo
contar cosas, hacer sumas, sacar promedios y otras operaciones afines. Por
ejemplo, para sumar todos los números de la primera columna:{ s = s + $1}
END { print s}Si modificamos la última línea del programa por
END { print s, sNR}
Imprime la suma y el promedio . La variables se inicialian a cero por default. Awk ofrece además los mismos operadores aritméticos abreviados que el lenguaje
C. Por ejemplo: s += $1 es lo mismo que s = s + $1 Ejemplo: Versión de wc hecha en awk.
{ n += length ($) + 1 número de caracteresnw += NF}
END { print NR, nw, n }
k V i bl
-
8/16/2019 Presentacion Crones
37/212
awk - Variables
� La varable ambén pueden guardar cadena de caracere.
� La varable de cadena e ncalzan con la cadena vacía.� Varable predenda en awk
FILENAME Nombre del archivo de entrada actual
FS
NFNR
OFS
ORS
RS
Caracter separador de campo (blanco y tab por default)
Número de campos del registro de entradaNúmero del registro de entrada
Cadena separadora de campo de salida (blanco por default)
Cadena separadora de registro de salida (Nueva línea por default)
Caracter separador de registro de entrada (Nueva línea por default)
k O d
-
8/16/2019 Presentacion Crones
38/212
awk - Operadores
Operadores de awk (por orden creciente de precedencia)
= += = *= /= º= Asignación O lógico
&& Y lógico! Niega el valor de la expresión
> >= <
-
8/16/2019 Presentacion Crones
39/212
awk Control de Flujo IF (Exactamente igual a la instrucción del lenguaje C). Sintaxis:
if (condición)
proposición 1elseproposición 2
FOR (Exactamente igual a la del lenguaje C). Sintaxis:for (expresión 1; condición ; expresión 2)
proposición
WHILE (equivalente al for anterior)expresión 1while (condición ) {
proposiciónexpresión 2
} La proposición next hace que se lea la siguiente línea de entrada y que se
comparen los patrones para reanudar la ejecución al inicio del programa. Laproposición exit origina una transferencia inmediata al patrón END.
O
-
8/16/2019 Presentacion Crones
40/212
Otro eempoEl siguiente programa detecta palabras duplicadas sucesivas.
awk'FILENAME != prevfile { Nuevo archivo
}
NR = 1 Restablecer número de renglónprevfile = FILENAME
NF > {
} $*$
if ($1 == ultimapalabra)printf " duplicación °/s, archivo 0/s, línea 0/d\n, $1, FILENAME, NR
for ( i=2; i
-
8/16/2019 Presentacion Crones
41/212
Otro eempo
El siguiente programa invierte el contenido de todos los renglones
awk'{ f or ( i = NF; i >= 1; i • • )
pri ntf "0/s ", $i
printf "\n"
}' $*
$
A l
-
8/16/2019 Presentacion Crones
42/212
Arreglos Awk también proporciona arreglos. Ejemplo trivial: Invierte los renglones.
$ cat backwards backwards: despliega la entrada en dirección contrariaawk' { linea[NR] = $}
$END { for ( i = NR; i > i - -) print linea[ i ] }' $*
Los arreglos no necesitan ser declarados . El tamaño del arreglo está limitado únicamente por la memoria disponible . Awk soporta arreglos asociativos. Por lo general concebimos subíndices de
arreglos como enteros, pero en awk cualquier valor puede servir de subíndice . Por ejemplo, para sumar por nombre 2 columnas del tipo:
Carlos 1Martin 2Carlos 5
... . ..Sandra 8
{ sum [ $1 ] += $2}END { for (name in sum) print name, sum [name] )
Ot
-
8/16/2019 Presentacion Crones
43/212
Otro eempo
� ca recuenca
#recuenca muera oda la palabra ulzada y u recuenca
awk ' or = ;
-
8/16/2019 Presentacion Crones
44/212
uco s pr d finid s dawk
cos (expr) Coseno de expr
exp (expr) Exponencia de expr: e elevado a exp getline( ) lee la siguiente linea de entrada; devuelve O si es fin de archivo,
1 de lo contrario
index (s1 ,s2) Posición de la cadena s2 en s1; devuelve 1 si no está.
int (expr)
length (s=
log ( expr)
Parte entera de expr, truncar hacia O.longitud de la cadena s
Logaritmo natural de expr
sin (expr) Seno de expr
split (s,a,c) Divide s en a[1] ... a[n] en el carácter c; devuelve n
sprintf (fmt, ...) Da formato a ... según la especificación de fmt
substr (s,m,n) Subcadena de n caracteres de s, comenzando en la posición n
t ó h l
-
8/16/2019 Presentacion Crones
45/212
teraccón co e hel
Supongamos que el usuario quiere escribir un programa o
que imprime el campo nesimo de cada renglón de la entrada.
Por ejemplo: $ who campo
Debería desplegar sólo el nombre de los usuarios que iniciaron
sesión. Para poder resolver esto pasando un parámetro del shell
al awk:
awk ' prn
Otra forma de hacerlo (aunque es preferible la anterior):
awk " prn
-
8/16/2019 Presentacion Crones
46/212
Pregunta
Ejeccos
-
8/16/2019 Presentacion Crones
47/212
Ejeccos
. Crear un archvo dcconaro.x, con oda la palabra una por línea omada
de archvo de dao en caellano de u Home Drecory. l archvo
dcconaro.x debe quedar ordenado, no conener duplcado y oda la
lera deberán ear en mnúcula.
a xraer oda la palabra que empecen y ermnen con vocal.
b Morar el archvo elmnando oda la vocale, eén acenuada o no.
c Un dpongo eá ormado por do vocale, una uere y una débl, o do
déble. La vocale uere on a, e, o; la vocale déble on , u. La
acenuacón de u o deruye el dpongo.
morar oda la palabra con dpongo ormado por do vocale déble,
morar odo lo dpongo con a;
bucar una expreón regular mínma que deplegue odo lo dpongo.d Morar oda la palabra de lera o má que ean palíndromo.
Ejeccos
-
8/16/2019 Presentacion Crones
48/212
Ejeccos
. l archvo acceo.lg regra el acceo de lo uuaro a un ema UIX.
e archvo cuena con un renglón por cada uno de lo acceo y poee la
guene erucura de campo eparado por "
·Uuaro
Fecha de Ingreo Formao ddmmyyyy Hora de Ingreo Formao hhmm4 hora Dreccón IDearrollar comando que
a Mueren el nombre de cada uuaro y la candad oal de acceo
regrado, en orden alabéco.
b xraer del archvo la línea correpondene a un uuaro parcular que
e recbrá como parámero.c Agregar do parámero opconale que perman exraer ólo lo regro
correpondene a cero me o cero año.
d xraer del archvo acceo.lg la línea que correpondan al uuaro perez
�opez
-
8/16/2019 Presentacion Crones
49/212
www
-
8/16/2019 Presentacion Crones
50/212
-
8/16/2019 Presentacion Crones
51/212
s e ocón
Los paradigmas pueden son
considerados como patrones depensamiento para la resolución deproblemas.
-
8/16/2019 Presentacion Crones
52/212
-
8/16/2019 Presentacion Crones
53/212
s e ocón
Hay situaciones donde un paradigmaresulta más apropiado que otro.
Cuando un lenguaje refleja bien unparadigma particular, se dice quesoporta el paradigma.
-
8/16/2019 Presentacion Crones
54/212
s e ocón
En la práctica un lenguaje que soporta
correctamente un paradigma, es difícildistinguirlo del propio paradigma, porlo que se identifica con él.
-
8/16/2019 Presentacion Crones
55/212
lasificación de paradigmas de.
programacon
Paradigma imperativo
Heurístico Concurrente
Funcional
Lógico
Basado en objetos
-
8/16/2019 Presentacion Crones
56/212
Paradigma im
_
ra
iv
o
Son aquellos que facilitan los cálculos
por medio de cambios de estado,entendiendo como estado la condiciónde una memoria de almacenamiento.
-
8/16/2019 Presentacion Crones
57/212
Paradigma im
_
ra
iv
o
Los lenguajes estructurados enbloques, se refieren a los ámbitos
anidados, es decir los bloques puedenestar anidados dentro de otrosbloques y contener sus propiasvariables.
-
8/16/2019 Presentacion Crones
58/212
Paradigma im
_
ra
iv
o
Los programas escritos en unlenguaje funcional están constituidos
únicamente por definiciones defunciones.
Las funciones no como subprogramasclásicos de un lenguaje imperativo,sino como funciones puramentematemáticas.
-
8/16/2019 Presentacion Crones
59/212
Paradigma im
_
ra
iv
o
En las que se verifican ciertaspropiedades como la "transparencia
referencial" (el significado de unaexpresión depende únicamente delsignificado de sus subexpresiones, ypor tanto, la carencia total de "efectos
laterales".
-
8/16/2019 Presentacion Crones
60/212
Paradigma im
_
ra
iv
o
El objetivo es conseguir lenguajesexpresivos y "matemáticamente
elegantes", en los que no seanecesario bajar al nivel de la máquinapara describir el proceso llevado acabo por el programa, y evitando el
concepto de "estado" del cómputo.
-
8/16/2019 Presentacion Crones
61/212
Paradigma im
_
ra
iv
o
La secuencia de computaciones llevadas acabo por el programa se regiría única exclusivamente por la "reescritura" de
definiciones más amplias a otras cada vezmás concretas definidas, usando lo que sedenominan "definiciones dirigidas'.
A este tipo de paradigma de programaciónse le suele llamar algorítmico.
-
8/16/2019 Presentacion Crones
62/212
Paradigma im
_
ra
iv
o
El paradigma imperativo debe sunombre al papel dominante que
desempeñan las sentencias imperativas.
Su esencia es el cálculo iterativo, paso apaso, de valores de nivel inferior y suasignación a posiciones de memoria.
-
8/16/2019 Presentacion Crones
63/212
Paradigma im
_
ra
iv
o
f
Concepto de celda de memoria("variable") para almacenar valores.. El componente principal de la arquitectura es
la memoria, compuesto por un gran número
de celdas donde se almacenan los datos
-
8/16/2019 Presentacion Crones
64/212
Paradigma im
_
ra
iv
o
Operaciones de asignación.
. Estrechamente ligado a la arquitectura de lamemoria, se encuentra la idea de que cadavalor calculado debe ser "almacenado", esdecir asignado a una celda
-
8/16/2019 Presentacion Crones
65/212
Paradigma im
_
ra
iv
o
Repetición.
. Un programa imperativo, normalmenterealiza su tarea ejecutando repetidamenteuna secuencia de pasos elementales, yaque en este modelo computacional la única
forma de ejecutar algo complejo esrepitiendo una secuencia de instrucciones
-
8/16/2019 Presentacion Crones
66/212
Paradigma im
_
ra
iv
o
Algunos de los lenguajes imperativos son:
C C# Basic
Java Per
-
8/16/2019 Presentacion Crones
67/212
Se denomina hí a la
capacidad de un sistema para realizarde forma inmediata innovacionespositivas para sus fines.
-
8/16/2019 Presentacion Crones
68/212
Define un modelo de resolución de
problemas en el que se incorpora
algún componente heurístico, sobre labase de una representación másapropiada de la estructura delproblema, para su resolución con
técnicas heurísticas.
-
8/16/2019 Presentacion Crones
69/212
Se puede definir como "aquel tipo de
programación computacional que
aplica para la resolución de problemasreglas de buena lógica, ej. reglas delpulgar.
-
8/16/2019 Presentacion Crones
70/212
La Programación Heurística implica
una forma de modelar el problema en
lo que respecta a la representación desu estructura, estrategias de búsqueday métodos de resolución.
-
8/16/2019 Presentacion Crones
71/212
f
Una buena heurística debe ser simple on requerimientos razonables de memoria Velocidad de búsqueda que dispona de un buencriterio de parada que incorpore el conocimientoobtenido durante la búsqueda
-
8/16/2019 Presentacion Crones
72/212
f
. La información a tratar es fundamentalmentesimbólica, inexacta o limitada, "incremental" ybasada en el conocimiento
-
8/16/2019 Presentacion Crones
73/212
-
8/16/2019 Presentacion Crones
74/212
Este tipo de programación se aplica
con mayor intensidad en el campo dela 1nteligencia Artificial (IA).
-
8/16/2019 Presentacion Crones
75/212
ARADIGA UNIONA El paradigma funcional está basado
en el modelo matemático decomposición funcional. En estemodelo, el resultado de un cálculo esla entrada del siguiente, y así
sucesivamente hasta que unacomposición produce el valordeseado.
-
8/16/2019 Presentacion Crones
76/212
ARADIGA UNIONALa programación funcional incorpora elconcepto de función como objeto de
primera clase, lo que significa que lasfunciones se pueden tratar como datos(pueden pasar como parámetros,calculadas y devueltas como valores
normales, y mezcladas en el cálculocon otras formas de datos).
-
8/16/2019 Presentacion Crones
77/212
ARADIGA UNIONAEn este paradigma el informático
concibe la solución como unacomposición de funciones.
-
8/16/2019 Presentacion Crones
78/212
La forma en que se especifican las
funciones puee variar.
Se pueden especificar
procedimentalmente omatemáticamente mediante sudefinición, sin secuencia de control.
Un lenguaje funcional es el Lisp
-
8/16/2019 Presentacion Crones
79/212
ARADIGA OGIO· La Programación Lógica es un
Paradigma de Programación basado en
la Lógica.
· Los programas construidos un lenguajelógico están construidos únicamente por
expresiones lógicas, es decir, que sonciertas o falsas, en oposición a unexpresión interrogativa (una pregunta) oexpresiones imperativas (una orden).
-
8/16/2019 Presentacion Crones
80/212
ARADIGA OGIO Un ejemplo de lenguaje lógico es
Prolog Prolog, proveniente del inglés
,
bastante popular en el medio de
investigación en 1nteligencia Artificial.
-
8/16/2019 Presentacion Crones
81/212
ARADIGA OGIO Prolog es un lenguaje muy diferente,
tanto de los imperativos como Fortran,Pascal, C etc., como de losfuncionales como Lisp.
-
8/16/2019 Presentacion Crones
82/212
ARADIGA OGIO En Prolog, las cosas son distintas: el ordende ejecución de las instrucciones no tienenada que ver con el orden en que fueronescritas
Tampoco hay instrucciones de controlpropiamente dichas
Para trabajar con este lenguaje, unprogramador debe acostumbrarse a pensar
de una manera muy diferente a la que seutiliza en los lenguajes clásicos
ARADIGA AADO N
-
8/16/2019 Presentacion Crones
83/212
ARADIGA AADO N
OJO La programación orientada a objetos
(OOP, por las siglas inglesas deObject- Oriented Programming) es unaforma de programar que proliferó apartir de los años ochenta.
ARADIGA AADO N
-
8/16/2019 Presentacion Crones
84/212
ARADIGA AADO N
OJO Es un paradigma de programación
que define los programas en términos
de "clases de objetos", objetos queson entidades que combinan ( ), ( , ) ( objeto que lodiferencia del resto).
ARADIGA AADO N
-
8/16/2019 Presentacion Crones
85/212
ARADIGA AADO N
OJO La programación orientada a objetos
expresa un programa como un
conjunto de estos objetos, quecolaboran entre ellos para realizartareas. Esto permite hacer losprogramas y módulos más fáciles de
escribir, mantener y reutilizar.
ARADIGA AADO N
-
8/16/2019 Presentacion Crones
86/212
ARADIGA AADO N
OJO De esta forma, un objeto contiene
toda la información, (los denominados
atributos) que permite definirlo eidentificarlo frente a otros objetospertenecientes a otras clases (eincluso entre objetos de una misma
clase, al poder tener valores biendiferenciados en sus atributos).
ARADIGA AADO N
-
8/16/2019 Presentacion Crones
87/212
ARADIGA AADO N
OJO Dispone de mecanismos de
interacción (los llamados métodos)que favorecen la comunicación entreobjetos (de una misma clase o dedistintas), y en consecuencia, el
cambio de estado en los propiosobjetos.
ARADIGA AADO N
-
8/16/2019 Presentacion Crones
88/212
ARADIGA AADO N
OJO Esta característica lleva a tratarlos
como unidades indivisibles, en las queno se separan (ni deben separarse)información (datos) y procesamiento(métodos).
ARADIGA AADO N
-
8/16/2019 Presentacion Crones
89/212
ARADIGA AADO N
OJO Se requieren de unos métodos para
poder tratarlos (lo que hace que
ambos conceptos están íntimamenteentrelazados), el programador debepensar indistintamente en ambostérminos, ya que no debe nunca
separar o dar mayor importancia a losatributos en favor de los métodos, ni
•
vceversa.
ARADIGA AADO N
-
8/16/2019 Presentacion Crones
90/212
ARADIGA AADO N
OJO
Entre los lenguajes orientados a objetodestacan los siguientes:
Ada, C++, C#, JAVA
-
8/16/2019 Presentacion Crones
91/212
ARA ¿Cuáles son las principales
diferencias entre la programación
imperativa y la orientada a objetos?
Subir tarea a EDUCAFI
-
8/16/2019 Presentacion Crones
92/212
ó
Páginas estáticas vs dinámicas
-
8/16/2019 Presentacion Crones
93/212
Páginas estáticas vs. dinámicas
Las áinas á se ven gara los
Las áinas á se gante los de cada
-
8/16/2019 Presentacion Crones
94/212
¿Qué PHP? PHP Hyertext Processor
Lenuae de roramación Interretado
Eecutable del lado del servidor Heredero de ++ Embebido en HTML
De roósito eneral Orientado a roramación Web
Software Libre
-
8/16/2019 Presentacion Crones
95/212
Variables en PHP No tienen tio de datos definido
No se declaran
• Emiezan en $- Ejemplo: $nombre, $edad
-$nombre = "Mauro
-$edad= 6
-
8/16/2019 Presentacion Crones
96/212
Ejemplo de PHP con HTML
-
8/16/2019 Presentacion Crones
97/212
Sx • PHP es sensible a las mayúsculas• ¿Cómo se incrusta en la página web?
?PHP ?recomendado, siempre disponible
? ón ?equivale a implica un ;
• Comentarios: como en C, /* . . . */ (varias líneas ) y // (una línea)/* n ín */n h // n n ín
-
8/16/2019 Presentacion Crones
98/212
Sx • Para imprimir: echo y print
echo: muestra una o más cadenasecho cadena [, cadena2 ];
echo Hoa mundo;e c h o H o a , mu nd o ;
print: muestra una cadenaprint cadena;
p r i n t H o a m u n d o ;
pri nt H o a . mundo;
-
8/16/2019 Presentacion Crones
99/212
Sx • Ejemplo:
Programa en PHP
< ? P H P
p r in t ( < P >H o a mund o< / P > ) ;
? >
-
8/16/2019 Presentacion Crones
100/212
Sx • Uso de \n para generar código HTML legible• a) Sin \n
Código PHP
Código HTML
Salida
p ri nt ( < P> P ár r af o 1 < / P > ) ;
p ri nt ( < P> P ár r af o 2 < / P > ) ;
< P > P á r r a f o 1 < / P > < P > P á r r a f o 2 < / P >
P á r r a f o 1
P á r r a f o 2
-
8/16/2019 Presentacion Crones
101/212
Sx • Uso de \n para generar código HTML legible• b) Con \n
Código PHP
Código HTML
Salida
p ri nt ( < P> P ár r af o 1 < / P > \ n ) ;
p ri nt ( < P> P ár r af o 2 < / P > \ n ) ;
< P > P á r r a f o 1 < / P >
< P > P á r r a f o 2 < / P >
P á r r a f o 1
P á r r a f o 2
-
8/16/2019 Presentacion Crones
102/212
Sx • Ejercicio 1 : programa q ue m uestra u n mensaje
- llu�tra cómo incrustar código PHP en un documento HTMLy vceversa
-
8/16/2019 Presentacion Crones
103/212
Sx • Inclusión de ficheros externos:
- i ncl ude()- requ ire()
• Ambos incluyen y evalúan el fichero especificado
• Diferencia: en caso de error include() produce un warning yrequire() un error fatal• Se usará require() si al producirse un error debe interrumpirse la
carga de la página• Ejemplo:
-
8/16/2019 Presentacion Crones
104/212
Sx
Título
// Código HTML + PHP
-
8/16/2019 Presentacion Crones
105/212
• PHP soporta 8 tipos de datos primitivos
- Tipos escalares: boolean, integer, double, string- Tipos compuestos: array, object- Tipos especiales: resource, NULL
• El tipo de una variable no se suele especificar. Se decide entiempo de ejecución en función del contexto y puede variar
• Funciones de interés:- La función gettype() devuelve el tipo de una variable- Las funciones is_ comprueban si una variable es de un tipo
dado:is_array(), is_bool(), is_float(), is_integer(), is_null(),is_numeric(), is_object(), is_resource(), is_scalar(),is_string()
- La función var_dump() muestra el tipo y el valor de una variable.Es especialmente interesante con los arrays
-
8/16/2019 Presentacion Crones
106/212
• Tipo integer (números enteros)
- 27 -5 • Tipo double (números reales)
- 234 -5.33•
Tipo boolean (lógico)- Valores: u (insensibles a las mayúsculas)- El y la cadena vacía tienen valor
-
8/16/2019 Presentacion Crones
107/212
• Tipo string:
Las cadenas se encierran entre comillas simples o dobles: 'simples: ad mite los caracteres de escape \ (com il la si mple) y \\
(barra). Las variables NO se expande n "dobles: admite más caracter�s de escape, como \n, \r, \t, \\, \$,
\. Los nombres de va riab les S I se expanden Ejemplos:$ a = 9;p r i n t
11p r i n t
11
' a v a e
m u e s t r a
a v a e
m u e s t r a
$ a \n ;
$\$ a \ n ;
9 y a v a n z ap r in t < I MG S RC = ' o go . gi f > ;
una
11 m u e s t r a G SC'p r i n t < I M G S RC = \ o go . gi f \ > ;
11 m u e s t r a G SC"Acceso a un carácter de la cadena:
La forma es $inicial = $nombre{};
ínea
-
8/16/2019 Presentacion Crones
108/212
• Las variables siempre van precedidas de un • El nombre es sensible a las mayúsculas• Comienzan por letra o subrayado, seguido de letras, números o
subrayado•
Variables predefinidas:$GLOBALS, $_SERVER, $_GET, $_POST, $_COOKIES, $_FILES,$_ENV, $_REQUEST, $_SESSION
• Ámbito: globales al fichero (excepto funciones) o locales a unafunción
• Ejemplo:
$ v a o r 5;p r i n t E va o r e s : . $ va o r . \ n ;p r i nt E va o r e s : $ v a o r \ n ; / / o j o : c omi a s dob e s
Re s u t a d o :
E v a o r e s : 5
-
8/16/2019 Presentacion Crones
109/212
• Variables variables
- Se pueden crear nombres de variables dinámicamente- La variable variable toma su nombre del valor de otra variable
previamente declarada- Ejemplo:
$ a = " h o a " ;$ $ a = "mundo " ;
p r in t " $ a $ h o a \ n " ;
p ri nt " $ a $ {$ a}" ;
Re s u t a d o :
hoa mundo
hoa mundo
-
8/16/2019 Presentacion Crones
110/212
• Ejemplo de variables variables: página internacionalizada (1)
< ? P H P
? >
$ m e n s a j e e s = " H o a " ;
$ m e n s a j e e n = " H e o " ;
$ i di oma = "";$mens aj e = "men sa j e " . $ idi oma;
p r i n t $ $ m e n s a j e ;
Varibs varib Microoft 1 nte r ne � §Bh dó Y E » íul »
H
L I
-
8/16/2019 Presentacion Crones
111/212
• Ejemplo de variables variables: página internacionalizada (2)
< ? P H P
? >
$ m e n s a j e e s = " H o a " ;
$ m e n s a j e e n = " H e o " ;
$ i di oma = "";$mens aj e = "men sa j e " . $ idi oma;
p r i n t $ $ m e n s a j e ;
Varibs varib Microoft 1 nte r ne � §Bh dó Y E » íul »
H
L I
C
-
8/16/2019 Presentacion Crones
112/212
C• Definición de constantes:
d e f i n e ( C N S TANTE , h o a ) ;
print CNSTANTE;
• No llevan delante• Sólo se pueden definir constantes de los tipos escalares
(boolean, integer, double, string)
-
8/16/2019 Presentacion Crones
113/212
x y • Operadores aritméticos:
+ I 0 + + --' ' ' ' ' '• Operador de asignación:
operadores combinados: .= , += , etc$a = 3; $a += 5; a vale 8$b = "hola ; $b . = "mundo; b vale "hola mundo Equivale a $b = $b . "mundo;
• Operadores de comparación:== = <
-
8/16/2019 Presentacion Crones
114/212
x y • Precedencia de operadores (de mayor a menor):
+ + - -* / g
+ ,-
< < = > > =
& &
' =
-
8/16/2019 Presentacion Crones
115/212
• Estructuras selectivas:
- ifelse- switch
• Estructuras repetitivas:- while- fr- foreach
-
8/16/2019 Presentacion Crones
116/212
• Estructura selectiva if-else
i f ( c o n d i c i ó n )
s e n t e n c i a
i f ( c o n d i c i ó n )
s e n t e n c i a 1
e s e
s e n t e n c i a 2
i f ( c on di c i ó n l )
s e n t e n c i a 1
e s e i f ( c ond i ci ón 2 )
s e n t e n c i a 2
e s e i f ( c ond i ci ón n )
s e n t e n c i a n
e s e
s e n t e n c i a n + l
• Mismo comportamiento que en C• Las sentencias compuestas se encierran entre llaves• elseif puede ir todo junto
-
8/16/2019 Presentacion Crones
117/212
• Ejemplo de estructura selectiva if-else:
< ? P H P
? >
i f ( $ s e x o ' M )$ s a udo - " B i e nve n ida , " ;
e s e$ s a udo - " B i e nve n ido , " ;
$ s a u d o $saudo . $nombre;p r in t ( $ s a ud o ) ;
Brchivo dción er Eaits err mn s Vículs
B, J
Í Lst Intrae lcal
-
8/16/2019 Presentacion Crones
118/212
• Estructura selectiva switch
s w i t c h ( e x p r e s i ó n )
{
}
c a se va o r 1 :
s e n t e n c i a 1
break;c a se va o r 2 :
s e n t e n c i a 2
break;
c a s e v a o r n :
s e n t e n c i a n
break;defaut
s e n t e n c i a n + l
• Mismo comportamiento que en C, sólo que la expresión delcase puede ser integer, float o string
-
8/16/2019 Presentacion Crones
119/212
• Ejemplo de estructura selectiva switch:
s wi t c h ( $ e x t e n s i on )
{c as e ( " PDF " ) :
$ t i p o = " D oc ume n t o Ad ob e PD F " ;break;
c a se ( " TXT " ) :
$ t i p o = " Do cume n t o d e t e x t o " ;
break;
c as e ( " HTML " ) :
ca se ( "HTM" ) :
$ t i p o = " Do c ume n t o HTML " ;
D ct H
break; . .
.
Intraet loca
d e f a u t :
$ tipo = "Archivo " . $ exte ns ion;
}p r in t ( $ t i p o ) ;
-
8/16/2019 Presentacion Crones
120/212
• Estructura repetitiva while
w h i e ( c o n d i c i ó n )
s e n t e n c i a
• Mismo comportamiento que en Cf a s a c i e r t a
s e n t e n c i a
-
8/16/2019 Presentacion Crones
121/212
• Ejemplo de estructura repetitiva while:
< ? P H P
p ri nt ( " \ n " ) ;
$ i = l ;
w hi e ( $ i < = 5 ){
}
p ri nt ( " < L I >E eme nt o $ i < / L I > \ n " ) ;
$ i + + ;
p ri nt ( " < / UL> \ n " ) ;
? >rchivo dción 'er aits err mn s Vículs
• • 2• 3• 4• 5
Lstl l
Intrae lcal
I
-
8/16/2019 Presentacion Crones
122/212
• Estructura repetitiva for
f o r ( i n i c i a i z a c i ó n ; c o n d i c i ó n ; i n c r e m e n t o )
s e n t e n c i a
• Mismo comportamiento que en C
i n i c i a i z a c i ó n
f a s a c i e r t a
s e n t e n c i a
incremento
-
8/16/2019 Presentacion Crones
123/212
• Ejemplo de estructura repetitiva fr:
< ? P H P
p ri nt ( " \ n " ) ;
f o r ( $ i = l ; $ i < = 5; $ i + + )
p ri nt ( " < L I >E eme nt o $ i < / L I > \ n " ) ;p ri nt ( " < / UL> \ n " ) ;
? >
rchivo fdción 'er aits err mn s
• • 2• 3• 4• 5
Lst
l
Vículs
A
Intrae lcal
-
8/16/2019 Presentacion Crones
124/212
• Ejercici o 2 : p rograma que calcu la u na tabla de mu ltipl icar
F
-
8/16/2019 Presentacion Crones
125/212
F• Ejemplo:
f un c t i o n s uma ( $ x , $ y )
{
}
$ s = $ x + $ y;
r e t u r n $ s ;
$ a = l ;
$ b = 2 ;
$c=suma ( $ a , $ b ) ;
p r i n t $ ;
F
-
8/16/2019 Presentacion Crones
126/212
F• Por defecto los parámetros se pasan por valor• Paso por referencia:
f un c t i o n i n c r eme n t a ( & $ a )
{$ a = $ a + 1 ;
}
$ a = l ;
i n c reme n t a ( $ a ) ;
p r i nt $ a; / / Mu e s t r a un 2
F
-
8/16/2019 Presentacion Crones
127/212
F• Argumentos por defecto
fun ct i on mu e s t r anomb r e ( $ t i t u o = " S r . " )
{p r i nt " E s t ima do $ t i t u o : \ n " ;
}
mu e s t r an omb r e ( ) ;mue s t r anomb re ( " P r o f . " ) ;
• Salida:E s t i ma do S r . :
E s t i ma do P ro f . :
F
-
8/16/2019 Presentacion Crones
128/212
F• Los argumentos con valores por defecto deben ser siempre los
últimos:f un c t i o n mu e s t r a n omb r e ( $ n omb r e , $ t i t u o = " S r . " )
{p r i nt " E s t ima do $ t i t u o $ n omb r e : \ n " ;
}mu e s t r a n omb r e ( F e r ná nd e z ) ;
mu e s t r an omb r e ( F e r ná nd e z , " P r o f . " ) ;
• Salida:E s t i ma do S r . F e r ná nd e z :
E s t i ma do P r o f . F e r ná nd e z :
-
8/16/2019 Presentacion Crones
129/212
• Sintaxis:
a r r a y ( [ c ave = > ] va or , . . . )
• La clave es una cadena o un entero no negativo. El valor puedeser de cualquier tipo válido en PHP, incluyendo otro array
• Ejemplos:$ c o or = a rr a y ( ' r oj o = > l ü l , ' ve r de = >5 1 , ' a z u = >2 5 5) ;$ me di da s = a rr ay ( 1 0 , 2 5 , 1 5 ) ;
• Acceso:$ c o o r [ ' r o j o ] / / No ovi da r a s c omi a s
$ me di da s [ O J
• El primer elemento es el
-
8/16/2019 Presentacion Crones
130/212
• La estructura de control foreach permite iterar sobre arrays• Sintaxis:
f o r e a c h ( e xp r e s i ó n a r r a y a s $ v a o r )s e n t e n c i a
f o r e a c h ( e xp r e s i ó n a r r a y a s $ c a ve = > $ v a o r )s e n t e n c i a
• Ejemplos:f o r e a ch ( $ c o o r a s $ v a o r )
p r i n t V a o r : $ v a o r < BR> \ n ;
f o r e a c h ( $ c o o r a s $ c a ve = > $ v a o r )
p r i n t C a ve : $ c a ve ; V a o r : $ v a o r< B R> \ n ;
• Salida:V a o r : 1 0 1
V a o r : 5 1
Va o r : 2 5 5
C ave : r o o; V a o r : 1 0 1
C a v e : v e r d e ; Va o r : 51
C a v e : a z u ; Va o r : 2 5 5
B
-
8/16/2019 Presentacion Crones
131/212
B • Existen muchas bibliotecas de funciones en PHP• Algunos ejemplos:
- Funciones de manipulación de cadenas- Funciones de fecha y hora
- Funciones de arrays- Funciones de ficheros- Funciones matemáticas- Funciones de bases de datos- Funciones de red
•Algunas bibliotecas requieren la instalación de componentesadicionales
• Todas las funciones de biblioteca están comentadas en ladocumentación de PHP
B
-
8/16/2019 Presentacion Crones
132/212
B • Funciones de manipulación de cadenas
- explode() Divide un a cadena en subcaden as array explode (string separator, string string [, int l imit])
- rtrim(), ltrim(), trim()
Eliminan caracteres a la derecha, a la izquierda o porambos lados de u na cade na string rtrim ( strin g str [, strin g cha rl ist])
- strstr() Busca la primera ocu rren cia de una subcaden a
- strtolower() I strtoupper() Convierte u na cadena a mi núscula mayúscula
- strcmp() I strcasecmp() Com para dos cadenas con/si n distin ción de mayúsculas- strlen()
Calcu la la long itud de una cadena
B
-
8/16/2019 Presentacion Crones
133/212
B • Funciones de fecha y hora
date() Formatea u na fecha segú n u n formato dado Ejemplo:
$ fecha = date ("j /n/Y H : i");
print ("$fecha");
Resultado :
2 6 /9/2 0 0 5 1 7 : 3 6
strtotime() Convi erte un a fecha en u n mm de UNX Ejemplo:
$fecha = date ("j /n/Y" , strtotie ( 5 april 2 0 0 1"));print ("$fecha");
Resultado :
5 / 4 / 2 0 0 1
B
-
8/16/2019 Presentacion Crones
134/212
B • Funciones de arrays
- array_count_values() Calcula la frecuencia de cada u no de los elementos de u n
array- array_search()
Busca un el emento en u n array- count()
Cu enta los eleme ntos de u n a rray- sort(), rsort()
Ordena y reindexa un array (r=decreciente)- ksort(), krsort()
Ordena por claves u n array ( r=decreciente)
B
-
8/16/2019 Presentacion Crones
135/212
B • Ejercicio 3 programa que muestra la fecha actual
- Ilustra cómo usar comentarios, tablas y funciones (propias yde biblioteca).
- También cómo usar el manual de PHP
PRÁCTICA 7SU BI R BITÁCORA CON ARCH IVOS PH P
-
8/16/2019 Presentacion Crones
136/212
PRACTICA#?PHP
-
8/16/2019 Presentacion Crones
137/212
Paso de variab les por U RLEn un sitio Web, las páginas y los scripts utilizados son muy
numerosos. Muy a menudo, vamos a necesitar que nuestrosdistintos scripts estén conectados unos con otros, y,
sobretodo, que se sirvan y se pasen variables comunes.
Mi enlace
• Estas variables no tienen el símbolo $ delante
• Una vez realizado el paso, nuestras variables pertenecenal entorno de la página destino.php
• Activada/desactivada la opción de configuraciónregister_globals del archivo p h p . i n i
-
8/16/2019 Presentacion Crones
138/212
phporiegen url php
phporigenurl .php
htp:/locasdetinget.?alu=hl&ext=Et es vrable exto sername abecera}
-
8/16/2019 Presentacion Crones
139/212
destino php
Paso de variab les por U RL
dstgt pp - Mz Firefox L
8v !i ' [d H Ay�da
http:/localhost/destinget p?lJ�
Wiw Media Hotmail gratut Pesalizar vínculos WwVale $saldo: hoa
Vale $text: Esto es na vale exo
Vale $semae abc ea
desti no. ph p�QDY>
�
m-
d�����������
�
echo "Variable \$saludo : $saludo < br>\n" ;echo "Variable \$texto: $texto
\n" ;echo "Variable \$username: $username
\n";:> �
�
register_g lobals On en ph p. in i
-
8/16/2019 Presentacion Crones
140/212
Paso de variab les con $_G ETdesti noget php
desti noget. ph p
">echo "Variable \$texto: $texto
\n";echo "Variable \$username: $username
\n";?> -
8/16/2019 Presentacion Crones
141/212
Paso de variab les con $_G ETdesti noget php
desti noget. ph p
register_globals O en php.ini
g M
-
8/16/2019 Presentacion Crones
142/212
Procesar variables de formu la rios en PH P• Presentar una primera página con el formulario clásico a rellenar• Las variables del formularios son recogidas en una segunda página
que las procesa
< FORM action=" lo_q ue_sea. ph p" method=" POST/GET">
/script PHP que procesa lainformación del formulario POST usuario envía datosGET usuario recoge datosregister_g lobals Off en ph p. i n i
-
8/16/2019 Presentacion Crones
143/212
Procesar variables de formu la rios en PH Pphpformu1 ph
ph pformu 1 .p hp
Apellidos
&chv dta e ! Macades Heaentas Ayua
O http: lcahst fomularios hfo
v
C=
Widw d Hil gi Pliz l Wdw
[ v]
Ted
-
8/16/2019 Presentacion Crones
144/212
Procesar variables de formu la rios en PH Pphpformu1 ph
phpformu1 php.
Apellidos
FORM
� phpfu1 .ph ll
FfxG�
&chv fdta e ! Macades Heaentas Ayua
O http: lcahst fomularios hfo
v
]
Widw d Hil gi Pliz l Wdw
r
[ v]
Ted
-
8/16/2019 Presentacion Crones
145/212
Procesar variables de formu la rios en PH Pphpformu1 ph
phpformu1 php.
Nombre
< b r>Apellidos
FORM
� phpfu1 .ph - ll
FfxG�
&chv fdta e ! Macades Heaentas Ayua
O http: lcahst fomularios hfo
v
]
Widw d Hil gi Pliz l Wdw
r
[ v]
Ted
-
8/16/2019 Presentacion Crones
146/212
Procesar variables de formu la rios en PH Pphpformu1 ph
ph pformu 1 .p hp
-
8/16/2019 Presentacion Crones
147/212
Procesar variables de formu la rios en PH Pphpformu1 ph
ph pformu 1 .p hp
Nombre
Apellidos
phpdestino.ph
phpdestino.php
-
8/16/2019 Presentacion Crones
148/212
Procesar variables de formu la rios en PH Pphpformu1 ph
ph pformu 1 .p hp
phpdestino.php
-
8/16/2019 Presentacion Crones
149/212
Procesar variables de formu la rios en PH Pphpformu1 ph
phpdesti no ph
ph pformu 1 .p hp phpdestino.php
<
F
O
R
M
l
�
M
_
E
_
T
H
O
D
=
_
_
P
_
O
_
S
_
T
ACTION="phpdestino.php"> $nombre = $_POST['nombre'];
Nombre
$apell idos = $_POST['apel l idos'] ;
echo "Variable \$apell idos: $apell idos
\n"Apell idos
?> -
8/16/2019 Presentacion Crones
150/212
Procesar variables de formu la rios en PH Pphpformu1 ph
ph pformu 1 .p hp
Nombre
Apellidos
phpdestino.ph
phpdestino.php
-
8/16/2019 Presentacion Crones
151/212
Procesar variables de formu la rios en PH Pphpformu1 ph
ph pformu 1 .p hp
Nombre
Apellidos
phpdestino.ph
phpdestino.php
-
8/16/2019 Presentacion Crones
152/212
Procesar variables de formu la rios en PH Pphpformu1 ph
ph pformu 1 .p hp � 1
Nombre
< b r>Apellidos
Archivo Editar Ver Ir [arcares Heramienas Aa
· e · &
http : ! lochost/formuarisphpfor r Winw Meia Hai graui O Penaizar ínu O WiwNb!Antoio
ABecerra
T
v
Terminao
L
l
. .
-
8/16/2019 Presentacion Crones
153/212
Procesar variables de formu la rios en PH Pphpdestino.ph
phpdestino.php
� h. h - Mz fx rhiv ditar 1r r aradrs Hrramas Ayda
<
·
§ ( htp: /lcalhs/frmulars/phpds @ Ir l Widws Mia Htmail gratuit Psalizar íncls WiwsVabl $mb kt
Vabl $ap Bcra ró
TiadI
-
8/16/2019 Presentacion Crones
154/212
Restricción de acceso p or edadedad.ph
Restrin gi r por edad
Escribe tu edad :
edad2.php
Restringi r por edad
-
8/16/2019 Presentacion Crones
155/212
Restricción de acceso p or edad� Rstrigr por edd Mozil Fiefx
rhiv diar 'er !r aradres Herraieas yda
htt://lcalhtrari/edad.
@ r �------ Widw Media Htmai gratit Pernalizar vícEscb E ]
Teiad
Rstri gr por edd Mozil l Frefx rhiv ditar er r arcadre Herramea Ayda
[ htp/lalh/frular/edad2 @ Ir ._�------ Widw Media Htail gratuit Pealizar ínl [ WidwTu ea: 10
No pu n r
Teiad
-
8/16/2019 Presentacion Crones
156/212
Restricción de acceso p r edad� Rstrigr por edd Mozil Fi efx rhivo diar er r arcadore Herraiea da
htt//loalhotorario/edad.
@ r
Widow Media Hotmai ratito Peronaliar vEscrbe edad � [ E ]
Teiado
� Rstri gr por edd Mozil Fiefx Lrhivo diar 'er !r aradore Herraiea da
Q § � htt://localhotorario/edad2. r _____� Widow Media Hotmai ratito Peronalizar víclo WindowTu edad: 18
Bienvedo
Teiado
-
8/16/2019 Presentacion Crones
157/212
h form u norma l h
Tu nombre
Tu si stema favorito
Lin ux
UnixMaci ntoshWindows
¿Te g usta el futbol ?
¿ Cua l es tu sexo?
Formu lar io habitual
H om bre
Mujer
Aficiones
-
8/16/2019 Presentacion Crones
158/212
Formu lar io habitual-
M
U
F
ex
L(
hivo iar e !r cadres eramea ,da
9
. § o © D tp /oh/fophf v 1 @ Wi Mi Hmi a D rr u D WndoTu nombre
ntoi
becerra1
u sistma vrol
f¿:::: :::: ]_v 1¿ gsa l ol ?
�
Cul sx
om re
Mj cns
Nadar, Cine Juga al Teis
Evir dtos
Rslc
iadoI
·
=
-
8/16/2019 Presentacion Crones
159/212
misdatos h
-
8/16/2019 Presentacion Crones
160/212
Formu lar io habitualg Moz
a
F ref
x
\rchivo E:ditar 'er l es Heramiena Ay�da
Q � � & o @ 1 htp: /locaotFrmulas_da @ I Wiw M gu Piz í WwHa t q stásEr hmbr
in SS isma fvorto Lin gsa l b
s s s:
Nad, n Jgr l
VOVER FOAO
Trir . :
-
8/16/2019 Presentacion Crones
161/212
h form ucomex
-
8/16/2019 Presentacion Crones
162/212
Formulario más complejo
Q
• @ tpchtmip @ r � 8riv ¡i rd mn =�
======
:
==
Wido Md mi i ro vínu WidoNombr: Aton BrrEm: rr@u l.
Tinad
Q
•
e
§
E
O
t sfrmrshf v
@ Ir
------�
Wid M Hmi ri ir WAy
( [pesoal] = Ara( om = too Bca[eai] = abeera@ual . es
[beer] = a(
O => wahog[ 1 = sgarer
[o
=enviad
[Ev => nví 'Pr favr nenál de nev
Tinad
-
8/16/2019 Presentacion Crones
163/212
.hi E 1 M i y.
y @ h:/llhjii/fi' v I-----O Windows Mia O Hotmail gratuio roaiza íclo Windows
Frmular e crpcó e uuar
Nombre completo
Dción
Corro lco
Coasña
Co oas ña
Fha d nito
Sxo
Por fvor, ig los
tm d nré
Seeo ts
8
1
O Hmbr
D FiciD AinD Susp
V
O Muj
D TrD mdia
-
-
_
_
r
s .i.�• ti.
___JD=__a__e .i__�- •
v
l
Ti
.i i M .
y • @ hp:lliié v @ I -----O i i il i [ li ví
Pága e crmacó e regtr e uuar
Nombre completo noi Brr
Ursidd d r
Dieión t. Lg yComucieo o co arr@al
Conasef ti
Feha de15/Agot1970
neto
Sexo Hombr
Po avo, ge lotrro
em e neréscn
di
Acone Msia-oseleeoada t
Cnfi rmar dato s 1
Tinad
PRACTICA #7 PHP
-
8/16/2019 Presentacion Crones
164/212
Realiza los ejercicios siguientes:
Ejercicio 1 :Realizar todos los ejercicios de la presentación.
Ejercicio 2 Real izar el ejercicio 2 de la diapositiva anterior.
Entregar la b itácora de los ejercicios real izados con im presión de pantal l a . Resultados y conclusiones.
-
8/16/2019 Presentacion Crones
165/212
PERL
L engua je Prá ct ico de E xtracción
y de Informes
Introducción
-
8/16/2019 Presentacion Crones
166/212
• PERL que significa "Practical Extraction andReport Language”
• Es un lenguaje de programación creado porLarry Wall, surge de otras herramientasUnix.
Introducción (Cont.)
-
8/16/2019 Presentacion Crones
167/212
( )
• Principalmente sirve para labores deprocesamiento de texto.
• También sirve para la programación desoftware de sistemas
• Y últimamente ha encontrado su aplicaciónen la escritura de CGI o scripts ejecutadosdesde páginas de la WWW.
-
8/16/2019 Presentacion Crones
168/212
• PERL es un lenguaje interpretado, aunque
internamente funciona como un compilador. Poreso se habla de scripts , y no de programas.
• Existen actividades en las cuales PERL, no es lasolución más adecuada, por ejemplo: sistemas detiempo real, aplicaciones de memoria compartida deprocesos o aplicaciones extremadamente largas.
Conociendo su sintaxis
-
8/16/2019 Presentacion Crones
169/212
• El típico ejemplo de hola mundo!!!1: #!/usr/bin/perl
2: print ("Cual es tu nombre?");
3: $nombre=;
4: chop($nombre); # esto es un comentario
5: print "Hola, $nombre!\n";
• OBS.: en PERL no se necesita declarar la variablese crea y se usa, podríamos haber escrito un
número igual lo mostraría.
-
8/16/2019 Presentacion Crones
170/212
• Los datos pueden ser números y string, al igualque en C.
• Para señalar los strings hay dos formas de hacerlo:
comillas simples y dobles, se usan igual que en
Shell.
-
8/16/2019 Presentacion Crones
171/212
String s :
• a) Concatenación(.):Ej:"Hola"."mundo" # "Holamundo”
"juan"." "."pedro" # "juan pedro”
• b) Operador de repetición de strings(x) :
Ej:"juan"x3 # "juanjuanjuan"
Tipos de variables
-
8/16/2019 Presentacion Crones
172/212
p
1- Escalares:
Las variables de escalares empiezan por $• $a = 5; $b ="xxx";
Las instrucciones terminan en punto y coma.
Un escalar puede tener números, strings u otrascosas más complicadas como referencias y
descriptores.• Ej:$a=123; $nombre=“hola2”;
1
-
Escalares
-
8/16/2019 Presentacion Crones
173/212
• Interpolación de variables escalares en strings
Son idénticas que en shell.
• El valor undef (indefinido)Si usamos una variable antes de darle un
valor se asignara como cero si es número o " "(vacío) si es como string.
2
-
Arreglos
-
8/16/2019 Presentacion Crones
174/212
g
• Las variables tipo arreglos empiezan por @• @a = (95, 7, 'fff' );
• print $a[2]; # imprime el tercer elemento: fff
• print @a; # imprime: 9 57 fff separados porespacios.
• Los valores de los elementos pueden ser dedistinto tipo.
• El largo de un arreglo ( ej : @a ) quedaguardado en $#a.
-
8/16/2019 Presentacion Crones
175/212
Si uno accesa un elemento del arreglo más allá delfin del arreglo el valor undef es retornado.
Asignar un valor a un elemento más allá del findel arreglo, lo que hace es agrandar el arregloponiendo undef a los valores intermedios.
Ejemplo de asignación en arreglos
-
8/16/2019 Presentacion Crones
176/212
• Ej:@a=(1, "yo",3);
• @c=@a; # copia el arreglo @a en @c
• $d=$a[$#a]; # $d=3
• $b=$a[0]; # asigna 1 a $b
• $a[1]=5; # ahora @a es (1,5,3)• $a[2]++;
# suma uno al tercer valor de @a siendo ahora
(1,5,4)
• $b=$a[7];
# $b es 0 o "" ,dependiendo del contexto
• $a[6]="chao";
3
-
Hashes o arreglos asociativos• 'hash' que permite almacenar conjuntos de pares
-
8/16/2019 Presentacion Crones
177/212
• ' hash', que permite almacenar conjuntos de pares
(clave, valor)• Las variables de tipo hash empiezan por %
• Para crear un elemento de un hash se requiere
una lista de 2 valores• El primer elemento es la clave y el segundo es el
valor%a = ( 'x', 5, 'y', 3);
# llena 2 elementos del hash
print $a{'x'}; # imprime: 5
print $a{'y'}; # imprime: 3
-
8/16/2019 Presentacion Crones
178/212
• Una forma más clara de ver los pare sería:%a = {' x' => 5, ' y' =>3};
• Si es un string simple se puede omitir las
comillas simples.
Estructuras de Control
-
8/16/2019 Presentacion Crones
179/212
• Al igual que en la mayoría de los lenguajes deprogramación, en PERL existen estructurascomo if , for , while .
• La sintaxis del if , for y while es la misma queen C.
Estructuras de control•
-
8/16/2019 Presentacion Crones
180/212
• Until
La forma del unti l es :
until ( condicion ) {
sentencia;
}
A diferencia del while el until se ejecuta al menos una vez, y se siguemientras la condición sea falso.
• Foreach
El foreach recibe una lista de valores y asigna cada uno de los valores de lalista a una variable de lectura . La estructura del foreach es :
foreach $a ( @alguna_lista ) {
sentencia;
}
• “Todas las estructuras de control necesitaban de llaves, aunque solo
fuera una instrucción”
Manejo de Archivos
-
8/16/2019 Presentacion Crones
181/212
• Entrada estándar:
Como vimos en el primer ejemplo, para leer unalínea desde la entrada estándar se debe asignar una
variable escalar a
• Lectura de parámetros pasados a un programa
Dentro de un programa en PERL los argumentos
que se le pasan quedan guardados en el arreglo@ARGV .
Manejo de Archivos
-
8/16/2019 Presentacion Crones
182/212
• Procesamiento de archivos
• Como en todo lenguaje en PERL se puede
trabajar con archivos.• Abrir:
open(FILE,"file1.txt");
while ( $a= ){
...sentencia..;
}
close(FILE);
• Escritura:$file='hola.c';
open (A ">$file");
-
8/16/2019 Presentacion Crones
183/212
open (A, >$file );
# Abrimos para solo escritura el archivohola.c
print A "hola\n";
close(A);
• Append :@l=('a',"\n",'b',"\n");
open(G,">>/tmp/hola.txt");
# Abrimos para escritura pero, sin borrar el
#contenido solo añadiendo al archivo
print G @l;
close (G);
Una forma más elegante seria usando la “funcion” die :open (A, "file.dat") || die "No se puede abrir\n";
•
-
8/16/2019 Presentacion Crones
184/212
• Inclus ion de a rch ivos
Al igual que en C, uno puede incluir otro archivo
con código PERL.Con require incluimos un archivo, el cual no
necesariamente tiene que tener un 'main', esdecir pueden ser solo subrutinas.
Ej.: #!/usr/bin/perl
require "otroarchiv.pl";
Expresiones regulares
-
8/16/2019 Presentacion Crones
185/212
• Es una forma general de describir un patrónde caracteres que queremos buscar en unstring. En PERL se usa la misma notación
para expresiones regulares de sed y grep :
Exp. Reg.
-
8/16/2019 Presentacion Crones
186/212
• Se usan para indicar que algunas letras serepiten
.(un punto) : Cualquiera excepto el carácter de línea nueva.
+ : Uno o más del carácter anterior(que lo precede).
? : Ninguno o uno del carácter anterior.
* : Ninguno o más del carácter anterior.
^ : Busca la coincidencia sólo al comienzo de la línea.
$ : Busca la coincidencia sólo al final de la línea.
Exp. Reg.
-
8/16/2019 Presentacion Crones
187/212
Para dar una expresión regular se pasan en '/'. Y
para aplicarla a una variable se usa el operador'=~'.
Si anteponemos \ (back slash) a cualquier
comodín nos referimos al carácter mismo.Ejemplos : $a="hola mundo";
$e="chao";
$b= ($a =~ /^ho/); # $b vale true = 1
(continuación)
$c= ( "chao" =~ /ah/ ) ; # $c=0
$d= ( "$e" =~ /ah/ ); # $d=0
-
8/16/2019 Presentacion Crones
188/212
$d ( $e /ah/ ); # $d 0
if ( $a=~ /o$/ ){ print "Correcto\n"; }
# imprime Correcto
El operador '=~' tiene una opción que lo que
hace es como el sed , reemplazar un trozo detexto por otro, esa opción es la 's' :
El formato es $x =~ s/expant/expnueva/ ;
Ej: $cual="este es un test";
$cual =~ s/test/prueba/;
#$cual="este es un prueba"
• substitución s///
• $_ Almacena la línea completa que ha sido leído.
f l
-
8/16/2019 Presentacion Crones
189/212
Ya fue visto anteriormente su explicación.
Cuando el escalar es $_ se omite $_ y =~...
$_ = "abcdef";
/bc/; # es verdadero
s/cd//;
print; # imprime: abef
cuantificadores
{3,5} : mínimo 3 y máximo 5 del carácteranterior
{3,} : mínimo 3 del carácter anterior
{,5} : máximo 5 del carácter anterior
•
Clases de caracteres a la medida
-
8/16/2019 Presentacion Crones
190/212
[ abcef ] : uno de esas 5 l et r as
[ a- f ] : l o mi smo que el ant er i or
[ 0- 9] : es l o mi smo que \ d
[ \ t \ n] : es l o mi smo que \ s
[ a- zA- Z_] : es l o mi smo que \ w
@a = ( 1. . 10) ;f oreach ( @a )
{
/ [̂ 1- 3] /
andpr i nt "$_ : " ;
}
L as E xpR eg . ti enen tam bién opc iones
-
8/16/2019 Presentacion Crones
191/212
• /g : indica que haga varios "match’s"$_ = "f1=abc test=on";
s/=/ / ; # $_ queda con "f1 abc test=on"
$_ = "f1=abc test=on";
s/=/ /g ; # $_ queda con "f1 abc test on"
$_ = "1995 Renault azul";
@a = /^(\w+)/g; # @a queda con 3 elementos
•
/i : ignore mayúsculas y minúsculas
-
8/16/2019 Presentacion Crones
192/212
g y y
$_ = "Francisco francisco";s/francisco/pacho/ig;
# $_ queda con "pacho pacho"
• s///e : ejecuta la segunda expresión y su valor lo utiliza para remplazar el patrón.
$_ = "largo= 15";
s/(\d+)/$1 * 4/e;
print; # Imprime: largo= 60
•
El operador “
tr
” se usa para traducir
-
8/16/2019 Presentacion Crones
193/212
caracteres.• Tiene un parecido con la substitución en
ExpReg $a = "f1=abc test=on";
tr/=/ / ;
# $a queda "f1 abc test on“
#split para dividir
%x = split / /, $a;
# $x{f1} queda con "abc"# $x{test} queda con "on";
Funciones en Exp. Reg.
-
8/16/2019 Presentacion Crones
194/212
Split() y Join()
• Split () lo que hace es dado un separador, separa unstring en un arreglo :
Ej: $linea="mvargas::117:10:Juan";
@a=split(/:/,$line);
# @a=("mvargas","","117","10","Juan")
• Join () hace lo inverso de Split(), dado un arreglo lo
junta en un string, separado por un delimitadorespecificado.
Subrut inas
-
8/16/2019 Presentacion Crones
195/212
• Al igual que la mayoría de los lenguajes deProgramación, PERL soporta subrutinas,también conocidas como procedimientos o
funciones.
• Con ejemplos, veremos como se construyen.
Ejemplo 1
-
8/16/2019 Presentacion Crones
196/212
sub suma {
local($x,$y)=@_; # En @_ se reciben los
parámetros (es por valor)
return($x+$y);
}#uso de &
$f=8;
$c=&suma(4,$f); # Otra opción
sería: $c=&suma(4,$f,'hola'); no se ve
# afectado
# $c=12
Ejemplo 2
-
8/16/2019 Presentacion Crones
197/212
sub duplica() {
$x*=2;
}
$x=8;
&duplicar(); # $x=16, ya que no lodeclaramos como
# local en la subrutina => duplica a x
Como vemos el paso de parámetros es porreferencia, pero al igual que en C, los parámetros sepueden modificar, vía punteros:
Ejemplo 3
$st='uno:1 dos:2 tres:3';
-
8/16/2019 Presentacion Crones
198/212
$st='uno:1,dos:2,tres:3';
&crea($st,*a); # cuando la función termina:$a{'uno'}=1, $a{'dos'}=2, $a{'tres'}=3
sub crea {
local($pal,*g)=@_;
local($x,$a,$b);local(@aux);
@aux=split(/,/,$pal);
for($x=0;$x
-
8/16/2019 Presentacion Crones
199/212
• CGI (Interfaz de entrada común) es como lapuerta de acceso que hay entre una página Web y el servidor de Internet donde la página
reside.• Cuando un explorador desea algo más que
otra página Web o un gráfico desde el
servidor, la solicitud va al CGI para poder serprocesada.
PE R L y los form u la rios
-
8/16/2019 Presentacion Crones
200/212
• La idea básica detrás de un formulario essencilla: pedir información al visitante,obtener la información, después usar la
información según sea. La parte delicada detratar con los formularios se maneja entre
bastidores por el código de Perl.
• El programa de procesamiento puede ser unURL situado en cualquier parte de Internet.
Los datos procedentes de un formulariofluyen en una corriente que utiliza un formato
-
8/16/2019 Presentacion Crones
201/212
fluyen en una corriente que utiliza un formatoespecial llamado codificac ión UR L .
Cada campo tiene un atributo NAME (nombre,
de forma que puede saberse de dónde proceden losdatos) y un atributo VALUE (valor, contenido delcampo). La cadena enviada por el explorador
empareja cada NAME del formulario con su VALUE y los conecta con un signo igual:
NAME=VALUE.
La pareja NAME/VALUE es la construcción
-
8/16/2019 Presentacion Crones
202/212
La pareja NAME/VALUE es la construcción
básica de datos de los formularios y de losprogramas de procesamiento de formularios.
M étodos de envío: GET y P OST :
El método GET , el explorador empaqueta los
datos del formulario y los agrega al final deuna solicitud de aspecto normal para un URL.
El método POST
codificará los datos de la misma
forma, pero los envía directamente al programa
CGIa través de
STDIN
. El método
POST
usa la variable
-
8/16/2019 Presentacion Crones
203/212
a través de STDIN. El método POST usa la variable
de entorno CONTENT_LENGHT (longitud delcontenido) para decirle al servidor cuántos bytesdebe leer desde STDIN.
La corriente de datos puede ser tan larga comose necesite, cosa que no ocurre con el método GETque dependiendo del servidor se permitirán cadenas
más o menos cortas. Está limitación hace que POSTsea el método más utilizado.
Va riables de en torno CGI)
-
8/16/2019 Presentacion Crones
204/212
• Las funciones y los procesos de un servidorpasan datos entre sí a través de variables deentorno.
• Las variables CGI de mayor importancia paracomprender el proceso de comunicaciónexplorador/servidor se describen en la tabla
siguiente:
Variables de entorno CGI
-
8/16/2019 Presentacion Crones
205/212
QUERY_STRINGDatos de entrada q ue se ag reg an a UR L
para un m étodo GET .
REQUEST_METHODExpresa e l m étodo usad o: GET o POST.
CONTENT_LENGHTN úm ero de bytes de la corriente de da tos
a leer para una solic i tud con e l mé todo
POST.
Más sobre formularios HTML
-
8/16/2019 Presentacion Crones
206/212
• ....Define el comienzo yfinal de un formulario.
• ACTION="URL". Es el nombre del archivo delscript o del programa que manejará los datosdesde un formulario.
• METHOD="GET" o "POST". Así se indica cómose mueven los datos desde el formulario hastael script que los maneja.
Operaciones sobre arreglos
-
8/16/2019 Presentacion Crones
207/212
• P u sh y P op
Una común utilización de los arreglos es como stacks, donde los nuevos valores son agregados y borrados por el lado derecho del arreglo. Push ()es utilizado para agregar elementos y Pop() para sacar.
• Shift y Unsh ift ) Al igual que Pop y Push estos sacan y meten elementos en un arreglo, pero
lo hacen por el lado izquierdo.
• Splice
Splice permite extraer un subarreglo y modificar a la vez el arreglo original
Operaciones sobre arreglos (Cont.)
-
8/16/2019 Presentacion Crones
208/212
• Chop
T rabaja igual que en variables escalares, le saca el último carácter a cadaelemento del arreglo. Se usa para eliminar el retorno de carro de laentrada estándar.
M ás sobre H ash
-
8/16/2019 Presentacion Crones
209/212
• Una forma de agregar puede ser la siguiente:$a{fac}=3456;
• La función delete sirve para borrar un
elemento delete $a{ope};
• La función keys crea un arreglo con las
claves de un hash
%a = ( x => 5, y => 3, z => 'abc' );@b = keys %a
-
8/16/2019 Presentacion Crones
210/212
• La función values devuelve un arreglo conlos valores del hash
• La función exists prueba si existe la clave enel hash, el resultado seria “1” si ésta estuviera.
Variables especiales
-
8/16/2019 Presentacion Crones
211/212
• $_ Almacena la línea completa que ha sidoleído.
$` Almacena la parte situada a la izquierda de
un modelo.$' Almacena la parte situada a la derecha de unmodelo.
$& Almacena la parte propia del modeloencontrado.
Páginas Web’s recomendadas
-
8/16/2019 Presentacion Crones
212/212
• http://www.perl.com (Página Oficial)
• http://usuarios.lycos.es/asualam/perl/
• http://www.perl.org