Diapositiva 1 - ::: DIRECCION DE TECNOLOGIAS DE LA

Download Report

Transcript Diapositiva 1 - ::: DIRECCION DE TECNOLOGIAS DE LA

Curso Básico de PHP y MySQL
Instituto de Desarrollo de tecnologías de la información
Audiencia
Cualquiera que necesite DESARROLLAR administrar,
coordinar, o supervisar proyectos de desarrollo de
software utilizando un Lenguaje de PROGRAMACION
orientado a web:
• INGENIEROS DE SOFTWARE
• PROGRAMADORES
Instituto de Desarrollo de tecnologías de la información
Objetivos del Curso
Obtener los conocimientos y las destrezas básicas para:
Desarrollar programas en PHP, utilizando estructuras de
control (decisión y repetitivas), así como construcción de
sentencias SQL y forma general de petición a la Base de
Datos MYSQL.
Instituto de Desarrollo de tecnologías de la información
Agenda del Curso
•
•
•
•
•
•
•
•
•
•
•
Introducción
Acceder a contenidos dinámicos
Trabajo con variables y constantes
Uso de Operadores
Funciones de variables y condicionales
Uso de Loops
Almacenar y recuperar datos de archivos
Funciones para trabajar con archivos
Arrays numéricos y asociativos
Arrays multidimensionales
Clasificación de Arrays
Instituto de Desarrollo de tecnologías de la información
Agenda del Curso
•
•
•
•
•
•
•
•
Uso de funciones para modificar Arrays
funciones para modificar strings.
Formatear, cortar y unir strings.
Buscar y reemplazar substrings
Introducción a las Expresiones Regulares
Reutilización de código: uso de require e include.
Declaración y llamada a funciones
Parámetros y alcance de las funciones
Instituto de Desarrollo de tecnologías de la información
Agenda del Curso
•
•
•
•
•
•
Diseñar una base de datos para la web
Crear una base de datos para la web
Tablas y campos en las bases de datos
Trabajar con Bases de Datos
Consultar, Modificar y Eliminar datos de la Base de Datos
Acceder a la base de datos MySQL desde la Web con
PHP
• Añadir información a la base de datos desde la web con
PHP
Instituto de Desarrollo de tecnologías de la información
INTRODUCCION
Instituto de Desarrollo de tecnologías de la información
¿ Que es PHP ?
Es un preprocesador de hypertexto porque reemplaza
los fragmentos de codigo PHP por la salida generada
por estos dentro del mismo HTML que estamos
generando. Otros programas que se utilizan para
servir paginas web con contenido dinamico, generan
el HTML de cero, en cambio PHP va completando el
HTML, de esta manera podemos diseñar una pagina
web en un editor visual sin problemas y despues
agregar PHP para el contenido dinamico.
Instituto de Desarrollo de tecnologías de la información
Acceder a contenidos dinámicos
Empezamos el estudio de PHP, el código de programación
de lado del servidor . La necesidad de trabajar desde un
servidor; Uso de Appserver; Creación de un formulario de
pedido; Embeber el formulario; Embeber PHP en HTML;
Etiquetas PHP; Declaraciones PHP; espacios en blanco y
comentarios; Estilos de etiquetas PHP; Añadir contenido
dinámico; Llamar a funciones; la Función date( ).
Instituto de Desarrollo de tecnologías de la información
Entorno de trabajo
Compuesta por apache , php y mysql.
•Appserv open project www.appservnetwork.com
•EasyPHP http://www.easyphp.org/
•Uniform Server http://www.uniformserver.com/
•Wamp Server
http://www.wampserver.com/en/
•XAMPP http://www.apachefriends.org/en/xampp.html
Instituto de Desarrollo de tecnologías de la información
Veamos un ejemplo:
Codigo:
<html>
<body>
<?php
echo "Esto es lo que se va enviar en lugar del codigo PHP";
?>
</body>
</html>
Instituto de Desarrollo de tecnologías de la información
Que sucede cuando el navegador pide
una pagina PHP
Instituto de Desarrollo de tecnologías de la información
Comentarios
Para escribir comentarios en nuestro codigo fuente lo hacemos de la
siguiente manera:
// Comentario en una linea
/* Comentario que puede ser de varias lineas */
Estilo de etiquetas
1. <?php echo("si quieres servir documentos XHTML o XML, haz como
aqu&iacute;\n"); ?>
2. <? echo ("esta es la m&aacute;s simple, una instrucci&oacute;n de
procesado SGML \n"); ?>
<?= expression ?> Esto es una abreviatura de "<? echo expression ?>"
3. <script language="php">
echo ("muchos editores (como FrontPage) no aceptan instrucciones
de procesado");
</script>
4. <% echo ("Opcionalmente, puedes usar las etiquetas ASP"); %>
Instituto de Desarrollo de tecnologías de la información
Trabajo con variables y constantes
Instituto de Desarrollo de tecnologías de la información
VARIABLE
podría definirse como una posición de memoria creada para introducir
o asignar cualquier valor o dato. Durante la ejecución del script el valor
de la variable puede "variar"(valga la redundancia) tanto de tipo como
de valor.
EN PHP, las variables SON definidas anteponiendo el símbolo dólar ($)
al nombre de la variable que estamos definiendo.
$cadena="5"; //esto es una cadena
$entero=3; //esto es un entero
Integer Números enteros positivos y negativos
Double Números decimales o de coma flotante
String Cadenas de texto
Boolean
Valores True o False
Array Tipo especial de colección de valores
Object Tipo especial de dato complejo
Instituto de Desarrollo de tecnologías de la información
Convertir tipos
PHP es un lenguaje que realiza la conversión de tipos en función de
los operandos y del operador. De esta forma si intentamos sumar la
cadena '10' y el número 20 la acción que realizaría sería convertir la
primera variable a numérica y de esa forma podría sumar 10+20=30.
Aparte de que PHP en algunos casos realiza la conversión existen dos
funciones especiales del propio lenguaje las cuales nos permiten
saber el tipo de variable que estamos usando y también pueden
convertir el tipo de variable:
gettype() Recibe el tipo de variable que es
settype($variable,'tipo variable') Transforma el tipo de variable del
modo actual a el modo que le introduzcamos.
Instituto de Desarrollo de tecnologías de la información
Tipo
Los posibles valores de tipo son:
"boolean" (o, desde PHP 4.2.0, "bool")
"integer" (o, desde PHP 4.2.0, "int")
"float" (únicamente posible desde PHP 4.2.0, para versiones
anteriores use la variante obsoleta "double")
"string"
"array"
"object"
"null" (desde PHP 4.2.0)
Instituto de Desarrollo de tecnologías de la información
Ejemplo de settype()
<?php
$foo = "5bar"; // string
$bar = true; // boolean
settype($foo, "integer"); // $foo es ahora 5 (integer)
settype($bar, "string"); // $bar es ahora "1" (string)
?>
Instituto de Desarrollo de tecnologías de la información
Constante
Son valores que se van a mantener constantes a lo
largo de la ejecución del script y que posiblemente
queramos usar a lo largo del script un gran número de
veces. Para ello usamos la siguiente sintaxis:
define("nombre de la constante", valor);
define(“pi", 3.1416);
Instituto de Desarrollo de tecnologías de la información
Uso de Operadores
Instituto de Desarrollo de tecnologías de la información
Operadores
Al desarrollar cualquier programa empleamos normalmente
operadores que nos sirven para realizar diversas
operaciones que le otorgan un cierto grado de complejidad a
nuestros programas, ya que, de otro modo el programa
realizaría siempre lo mismo y por tanto no seria un programa
útil.
Instituto de Desarrollo de tecnologías de la información
Operadores Existentes en PHP
• Operadores de Aritmética
• Operadores de Asignación
• Operadores Bit a Bit
• Operadores de Comparación
• Operadores de Control de Errores
• Operadores de ejecución
• Operadores de Incremento/Decremento
• Operadores de Lógica
• Operadores de Cadena
• Operadores de Matrices
• Operadores de Tipo
Instituto de Desarrollo de tecnologías de la información
Operadores aritméticos
+ Suma dos valores
- Resta dos valores (o pasa a negativo un valor)
* Multiplica dos valores
/ Divide dos valores
% Resto de dividir dos valores
++ Incremento en una unidad
-- Decremento en una unidad
Instituto de Desarrollo de tecnologías de la información
Operadores de asignación
= Asigna a la parte derecha el valor izquierdo
+= Realiza la suma de la derecha con la izquierda y la asigna a la
derecha
-= Realiza la resta de la derecha con la izquierda y la asigna a la
derecha
*= Realiza la multiplicación de la derecha con la izquierda y la
asigna a la derecha
/= Realiza la división de la derecha con la izquierda y la asigna a la
derecha
%= Se obtiene el resto y se asigna
.= Concatena el valor de la izquierda con la derecha y lo asigna a la
derecha
Instituto de Desarrollo de tecnologías de la información
Operadores lógicos
!
Operador NO o negacion.Si era true pasa a false y
viceversa
and Operador Y, si ambos son verdaderos vale
verdadero
or
Operador O, vale verdadero si alguno de los dos es
verdadero
xor
Verdadero si alguno de los dos es true pero nunca
ambos
&&
True si ambos lo son
||
True si alguno lo es
Instituto de Desarrollo de tecnologías de la información
Operadores condicionales
==
!=
>
<
>=
<=
Comprueba si dos números son iguales
Comprueba si dos números son distintos
Mayor que, devuelve true en caso afirmativo
Menor que, devuelve true en caso afirmativo
Mayor o igual
Menor o igual
Instituto de Desarrollo de tecnologías de la información
Funciones de variables y
condicionales
Instituto de Desarrollo de tecnologías de la información
Precedencia de Operadores
La precedencia de un operador indica qué tan "cerca" se agrupan
dos expresiones.
Por ejemplo, en la expresión 1 + 5 * 3, la respuesta es 16 y no 18,
ya que el operador de multiplicación ("*") tiene una mayor
precedencia que el operador de adición ("+"). Los paréntesis
pueden ser usados para marcar la precedencia, si resulta
necesario.
Por ejemplo: (1 + 5) * 3 evalúa a 18. Si la precedencia de los
operadores es la misma, se utiliza una asociación de izquierda a
derecha.
Instituto de Desarrollo de tecnologías de la información
La precedencia de operadores en PHP es la base de partida para
usar los operadores, debemos entender como se evalúan las
operaciones. Existe una lista un poco extensa de la precedencia
sobre todos los operadores, sin embargo de momento solo voy a
mencionar los más usados.
• *, /, %
• +, •^
• &&
• ||
Los operadores que se encuentran en la misma linea tienen el
mismo grado de precedencia, en este caso si nos encontramos 2
o mas operadores con la misma jerarquía, debemos evaluarlos
de izquierda a derecha.
Instituto de Desarrollo de tecnologías de la información
Ejemplo.php
<?php
$A=5;
$B=10;
$R=$A*$B/2;
echo "El resultado es: ".$R;
?>
En este ejemplo comenzamos a evaluar de izquierda a derecha, primero multiplicamos
$A*$B (5*10) por lo que nos daría 50 y este resultado lo dividimos entre 2, que resultaría 25,
ahora veamos otro ejemplo.
Ejemplo2.php
<?php
$A=5;
$B=10;
$R=$A+5*$B/2;
echo "El resultado es: ".$R;
?>
En este ejemplo primero se evalúa 5*$B (5*10) que da 50 y este resultado se divide entre 2,
de lo cual resultan 25 y ya por ultimo este resultado se le suma a $A (5) lo que da 30, como
podemos ver la suma la evaluamos después de terminar con la multiplicación y división.
Instituto de Desarrollo de tecnologías de la información
Uso de Loops
Instituto de Desarrollo de tecnologías de la información
WHILE
Sin duda el bucle más utilizado y el más sencillo. Lo usamos para ejecutar las
instrucciones contenidas en su interior siempre y cuando la condición definida sea
verdadera. La estructura sintáctica es la siguiente.
while (condición)
{
instruccion1;
instruccion2;
...
}
Un ejemplo sencillo es este bucle que aumenta el tamaño de la fuente en una unidad
a cada nueva vuelta por el bucle:
<?
$size=1;
While ($size<=6)
{
echo"<font size=$size>Tamaño $size</font><br>n";
$size++;
}
?>
Instituto de Desarrollo de tecnologías de la información
Bucle do/while
Este tipo de bucle no difiere en exceso del anterior. La sintaxis es la
siguiente:
do
{
instruccion1;
instruccion2;
...
}
while (condición)
La diferencia con respecto a los bucles while es que este tipo de
bucle evalúa la condición al final con lo que, incluso siendo falsa
desde el principio, éste se ejecuta al menos una vez.
Instituto de Desarrollo de tecnologías de la información
Bucle FOR
PHP está provisto de otros tipos de bucle que también resultan muy
prácticos en determinadas situaciones. El más popular de ellos es el
bucle for que, como para los casos anteriores, se encarga de ejecutar
las instrucciones entre llaves. La diferencia con los anteriores radica
en cómo se plantea la condición de finalización del bucle. Para aclarar
su funcionamiento vamos a expresar el ejemplo de bucle while visto
en el capítulo anterior en forma de bucle for:
<?php
For ($size=1;$size<=6;$size++)
{
echo"<font size=$size>Tamaño $size</font><br>n";
}
?>
Instituto de Desarrollo de tecnologías de la información
Bucle foreach
Este bucle, implementado en las versiones de PHP4, nos ayuda a recorrer los valores
de un array lo cual puede resultar muy útil por ejemplo para efectuar una lectura rápida
del mismo. Recordamos que un array es una variable que guarda un conjunto de
elementos (valores) catalogados por claves.
La estructura general es la siguiente:
Foreach ($array as $clave=>$valor)
{
instruccion1;
instruccion2;
…;
}
Un ejemplo práctico es la lectura de un array lo cual podría hacerse del siguiente
modo:
<?php
$moneda=array("España"=> "Peseta","Francia" => "Franco","USA" => "Dolar");
Foreach ($moneda as $clave=>$valor)
{
echo "Pais: $clave Moneda: $valor<br>";
}
?>
Instituto de Desarrollo de tecnologías de la información
Break y continue
Estas dos instrucciones se introducen dentro de la estructura y nos
sirven respectivamente para escapar del bucle o saltar a la iteración
siguiente. Pueden resultarnos muy prácticas en algunas
situaciones.
Durante una iteración de un bucle podemos saltar directamente a
la siguiente iteración, sin seguir con la actual, con la instrucción
continue.
También podemos detener completamente las repeticiones de
cualquier bucle con break, lo que parará la ejecución de la iteración
actual y de las siguientes que pudiera haber.
Instituto de Desarrollo de tecnologías de la información
Almacenar y recuperar datos de
archivos
Instituto de Desarrollo de tecnologías de la información
Temas clave que veremos
• Salvar datos para usos posteriores
• Abrir un archivo
• Crear y escribir en un archivo
• Cerrar un archivo
• Leer de un archivo
• Bloquear archivos
• Borrar archivos
• Otras funciones de archivos
• Comparar con uso de Base de Datos
Instituto de Desarrollo de tecnologías de la información
HAY 3 PASOS PARA ESCRIBIR DATOS A UN ARCHIVO
1. Abre el archivo. Si el fichero no existe habra que crearlo
2. Escribe los datos en el archivo
3. Cierra el archivo
HAY 3 PASOS PARA LEER DATOS A UN ARCHIVO
1. Abrir el archivo
2. Leer datos en del archivo
3. Cierra el archivo
Instituto de Desarrollo de tecnologías de la información
Tres elecciones que debemos hacer al abrir un archivo
1. Puede que queramos abrir un archivo solo para leerlo, solo para
escribir en el, o para ambas cosas, lectura y escritura
2. Si escribimos a un archivo, puede que queramos sobreescribir
cualquier contenido existente o añadir los nuevos datos al final
de los ya existentes
3. Si estas intentando escribir a un archivo en un sistema que
diferencia entre archivos de texto y binarios, puede que lo
quieras especificar
Instituto de Desarrollo de tecnologías de la información
Funciones para trabajar con archivos
Instituto de Desarrollo de tecnologías de la información
• Leer de un archivo;
• Abrir un archivo con fopen( );
• Saber cuando parar con feof( );
• Leer línea a línea con fgets( ), fgetss( ), y fgetcsv( );
• Leer archivos completos con readfile( ), fpassthru( ), y file( );
• Leer un carácter con fgetc( );
• Leer un tamaño arbitrario con fread( );
• Otras funciones: file_exists( ), filesize( ), unlink( )
Instituto de Desarrollo de tecnologías de la información
RESUMEN DE LOS MODOS DE ARCHIVOS PARA FOPEN
modo
'r'
'r+'
'w'
'w+'
'a'
'a+'
'x'
'x+'
Descripción
Apertura para sólo lectura; ubica el apuntador de archivo al comienzo del mismo.
Apertura para lectura y escritura; ubica el apuntador de archivo al comienzo del
mismo.
Apertura para sólo escritura; ubica el apuntador de archivo al comienzo de éste y lo
trunca a una longitud de cero. Si el archivo no existe, intenta crearlo.
Apertura para lectura y escritura; ubica el apuntador de archivo al comienzo de éste
y lo trunca a una longitud cero. Si el archivo no existe, intenta crearlo.
Apertura para sólo escritura; ubica el apuntador de archivo al final del mismo. Si el
archivo no existe, intenta crearlo.
Apertura para lectura y escritura; ubica el apuntador de archivo al final del mismo. Si
el archivo no existe, intenta crearlo.
Creación y apertura para sólo escritura; ubica el apuntador de archivo al comienzo
de éste. Si el archivo ya existe, la llamada a fopen() fallará devolviendo FALSE y
generando un error de nivel E_WARNING. Si el archivo no existe, intenta crearlo. Esto
es equivalente a especificar las banderas O_EXCL|O_CREAT en la llamada de
sistema open(2) interna.
Creación y apertura para lectura y escritura; ubica el apuntador de archivo al
comienzo de éste. Si el archivo ya existe, la llamada a fopen() fallará devolviendo
FALSE y generando un error de nivel E_WARNING. Si el archivo no existe, intenta
crearlo. Esto es equivalente a especificar las banderas O_EXCL|O_CREAT en la
llamada de sistema open(2) interna.
Instituto de Desarrollo de tecnologías de la información
Arrays numéricos y asociativos
Instituto de Desarrollo de tecnologías de la información
MATRICES (ARRAY)
En la realización de un script en PHP en múltiples ocasiones existen
variables que tienen información similar y se procesan de forma
semejante. Para ello PHP (y otros lenguajes) poseen un elemento
denominado array. Un array es un conjunto de variables agrupadas
bajo un único nombre. Cada variable dentro de la matriz se denomina
elemento. Dentro de la misma matriz pueden existir variables de
diferentes tipos y no es necesario que sean todas del mismo tipo.
Hay que diferenciar entre los dos tipos de matrices existentes:
- Indexada: Aquella cuyo acceso a los elementos se realiza por la
posición que ocupan dentro de la estructura (se inician siempre desde
la posición 0). Ejemplo: $amigos[0]
- Asociativa: Es aquella en la que los elementos están formados por
pares clave-valor y el acceso se realiza proporcionando una
determinada clave. Ejemplo: $amigos['edad']
Instituto de Desarrollo de tecnologías de la información
Arrays asociativos
Como ya sabemos, un array sencillo esta formado por conjuntos de parejas indice =>
valor, o como suele expresarse en inglés, key, value. Hasta ahora hemos manejado un
ejemplo con indices o keys numericos (tamben comocidos como arrays escalares),
pero tambien podemos usar strings como indices, es decir, cadenas de texto. Este tipo
de array es el array asociativo:
<?php
$mis_ciudades = array(
"madrid"=>"madrid",
"cataluña"=>"barcelona",
"aragon"=>"zaragoza");
?>
Las ventajas son evidentes: imagina por ejemplo un array agenda construido a base de
parejas email =>tu email, telefono => tu telefono etc. O por ejemplo para construir
menus de páginas web. Sin ir mas lejos los menus que puedes ver en este manual
estan construidos a base de llamadas a distintos arrays:
<?php
$temas_disp = array("index.php"=>"Introducción al ftp",
"comandos.php"=>"Comandos básicos",
"chmod.php"=>"CHMOD, asignando permisos",
"comandosftp.php"=>"Comandos
?>
Instituto de Desarrolloftp“
de );tecnologías
de
la información
MATRICES (ARRAY)
Para crear matrices en PHP existen dos formas:
- De forma implícita, que consistiría en indicarle el elemento(ya sea
proporcionando
su
posición
o
su
clave).Ejemplo:
$nombres[0]='Javier';
En caso de no indicarle una posición el array tomara el valor
siguiente al ultimo valor introducido.Ejemplo: $nombres[]='Lucas' //
tomaría como valor 1 ya que lo ultimo introducido era 0.
- Mediante array() en el cual le pasamos los elementos como
parámetros. En caso de matriz indexada toman la posición que
ocupan en la creación de la matriz, mientras que los de la matriz
asociativa se les asigna su valor mediante "=>".Ejemplo:
$amigo=array('Nombre'=>'Jose','Direccion'=>'Neopatria 21');
Cabe destacar que PHP no solo se limita a la existencia de matrices
por sí solo sino que existen matrices de matrices, o lo que es lo
mismo, matrices multidimensionales. Ejemplo: $amigos[2]['Pedro']
Instituto de Desarrollo de tecnologías de la información
Recorrido de una matriz
Disponemos de diversas herramientas para poder acceder a los elementos de una
matriz. En cada momento se mantiene una referencia del elemento de la matriz al
que se tiene acceso, por tanto, para recorrer una matriz bastará con modificar
dicha referencia. En caso de una matriz indexada el recorrido se realizara
mediante un bucle y para ello debemos saber el número de elementos totales que
posee la matriz. Para ello nos basamos de la función count(variable) donde
variable representa la variable de la que se quiere obtener el número de
elementos. Si variable es una matriz devuelve el número de elementos que tiene,
devuelve 1 si solo tiene un elemento (aunque no sea matriz) y 0 si no tiene ningún
valor.
Otra función que nos permite saber el número de elementos es sizeof(matriz) .
Para acceder a los elementos de una matriz asociativa debemos usar la función
ecah() que recupera el par formado por clave y valor y además avanza una
posición de puntero. Su sintaxis es each(matriz) y los valores que devuelve la
matriz asociativa son los siguientes:
Clave Significado
0
Nombre de la clave
1
Valor asociativo de la clave
Key
Nombre de la clave
value
Valor asociado a la clave
Instituto de Desarrollo de tecnologías de la información
La
función
que
realiza
el
constructor
list(variable1,variable2...variableN) es asignar los valores del elemento
actual de una matriz a las variables indicadas como parámetro.
Navegación sobre matrices
Cuando se trata de matrices indexadas la navegación es sencilla ya
que tan solo basta acceder al elemento que queremos mostrar, pero al
tratarse de alguna matriz asociativa no se puede aplicar el mismo
tratamiento. Para ello existen un conjunto de funciones prefabricadas
que nos permiten realizar multitud de acciones:
Sintaxis
reset(matriz);
end(matriz);
next(matriz);
prev(matriz);
current(matriz);
Acción
El puntero interno vuelve a la primera posición
El puntero interno va a la ultima posición
El puntero va al elemento siguiente
Accede al elemento anterior
Devuelve el contenido del elemento actual
Instituto de Desarrollo de tecnologías de la información
Inserción de elementos
Para la inserción de elementos dentro de un array existen una serie de
funciones que nos permiten añadir elementos. Entre ellas
destacamos:
array_push(matriz,variable1,variableN);
Añade elementos al final de la función y su longitud se incrementara
tantos elementos como se hayan añadido
array_unshift(matriz,variable1,variableN);
Añade elementos al principio de la función desplazando a los otros
tantas posiciones como elementos haya.
array_pad(matriz,nuevo_tamaño,valor_relleno);
Aumenta el tamaño de la matriz empleando un valor proporcionado
como relleno.
Instituto de Desarrollo de tecnologías de la información
Eliminación de elementos
array_shift(matriz);
Elimina el primer elemento de la matriz
array_pop(matriz);
Elimina el último elemento de la matriz
array_splice(entrada,pos_ini,[tamaño],[sustitutos]);
Se usa para reemplazar o borrar el contenido de una porción de matriz,
para ello debemos especificar la posición desde la cual queremos iniciar
el borrado o sustitución, el tamaño o número de elementos que se verán
afectados y los sustitutos (en caso que deseemos sustituirlo por algún
elemento).
array_keys(matriz,[valor buscado]);
Se emplea cuando deseamos eliminar un elemento cuya posición
desconocemos.
array_values(matriz);
Devuelve una matriz indexada con todos los valores almacenados en la
Instituto
de parámetro.
Desarrollo de tecnologías de la información
matriz pasada
como
Arrays multidimensionales
Instituto de Desarrollo de tecnologías de la información
Arrays Multidimensionales
Un array multidimensional es simplemente un array en el que al
menos uno de sus valores es, a su vez, un array:
<?php
$agenda = array("domicilio" => "calle tal cual",
"telefono" => $telefonos,
"trabajo" => "empresa tal cual");
$telefonos = array("trabajo" => "7296489",
"casa" => "5689524",
"movil" => "9558987");
?>
Instituto de Desarrollo de tecnologías de la información
Clasificación de Arrays
Instituto de Desarrollo de tecnologías de la información
Ordenación de matrices
Criterio
Función
Orden ascendente(matriz indexada)
sort(matriz)
Orden descendente(matriz indexada)
Orden ascendente por valor(matriz asociativa)
rsort(matriz)
asort(matriz)
Orden descendente por valor(matriz asociativa)
arsort(matriz)
Orden ascendente por clave(matriz asociativa)
Orden descendente por clave(matriz asociativa)
ksort(matriz)
krsort(matriz)
Instituto de Desarrollo de tecnologías de la información
Uso de funciones para modificar
Arrays
Instituto de Desarrollo de tecnologías de la información
Manipulación masiva de matrices
array_walk(matriz,nombre_de_la_funcion,lista_parametros);
Se emplea para realizar el mismo proceso definido en la
función en todos los elementos incluidos.
Obtención de submatrices
array_slice(matriz,posicion,tamaño);
Permite extraer una secuencia de elementos de una matriz.
Los parámetros a pasarle son la matriz en la cual queremos
extraer dichos elementos, la posición desde la que se inicia la
extracción y el tamaño de la extracción (posiciones que
abarcamos a partir de la inicial).
Instituto de Desarrollo de tecnologías de la información
Otras funciones
compact() Devuelve una matriz asociativa a partir de un numero
indeterminado de parámetros
extract() Crea variables desde matriz asociativa
array_unique() Devuelve matriz sin datos repetidos ya que algunos
se eliminan
array_reverse() Devuelve matriz con mismos elementos pero en
orden inverso
shuffle() Modifica el orden de elementos de forma aleatoria
array_count_values() Devuelve una matriz asociativa que contiene
frecuencias de repetición de los valores de la matriz
in_array() Permite comprobar si un valor esta en la matriz
array_merge() Combina elementos de dos matrices en 1.
Instituto de Desarrollo de tecnologías de la información
Funciones para modificar strings
Instituto de Desarrollo de tecnologías de la información
•formateo de strings; la función nl2br( ) para formatear con etiquetas html;
•uso de formateado con print( );
• tipo de códigos de especificaciones de conversión.
•Completar con Manual
Instituto de Desarrollo de tecnologías de la información
Formatear, cortar y unir strings
Instituto de Desarrollo de tecnologías de la información
•Funciones para cambiar el case del string; strtoupper( );
strtolower( ); ucfirst( ); ucwords( );
•Formatera strings para almacenamiento con AddSlashes( )
y StripSlashes( );
•Unir y cortar strings con funciones string ;
• usar explode( ), implode( ) y join( );
•Usar substr( ).
Instituto de Desarrollo de tecnologías de la información
Buscar y reemplazar substrings
Instituto de Desarrollo de tecnologías de la información
•Comparar strings; Ordenar strings con strcmp( );
•Comprobar tamaño de un string con strlen( );
• Comparar y reemplazar Substrings con funciones string;
•Encontrar Strings en Strings: strstr( ), strchr( ), strrchr( ),
stristr( );
•Encontrar la posición de un substring: strpos( ), strrpos( );
•Reemplazar Substrings: str_replace( ), substr_replace( ).
Instituto de Desarrollo de tecnologías de la información
Introducción a las Expresiones
Regulares
Instituto de Desarrollo de tecnologías de la información
Las expresiones regulares permiten definir patrones de coincidencia y
aplicarlas a cadenas de texto para saber si la cadena (o parte de ella) cumple el
patrón e incluso realizar transformaciones de la cadena.
En PHP existen dos sistemas de expresiones regulares:
Expresiones regulares POSIX extendido:
Introducidas en PHP 2.0b7 en 1996, y consideras obsoletas a partir de PHP
5.3.0 (junio de 2009).
Siguen la recomendación POSIX 1003.2. POSIX (Portable Operating System
Interface) es un conjunto de normas redactadas por el IEEE (The Institute of
Electrical and Electronics Engineers) que definen la API de Unix.
Las funciones correspondientes empiezan por "ereg".
Expresiones regulares compatibles con Perl (en inglés, PCRE):
Introducidas en PHP 4.2.0 en 2002.
Siguen la sintaxis y semánticas del lenguaje de programación Perl 5. PHP 4.2.0
y posteriores incluyen la biblioteca de código libre escrita en C PCRE (Perl
Compatible Regular Expressions).
Las funciones correpondientes empiezan por "preg".
Dado que las funciones ereg (POSIX extendido) se consideran obsoletas a
partir de PHP 5.3.0 (publicado en junio de 2009), se recomienda utilizar
Instituto de Desarrollo de tecnologías de la información
únicamente las funciones preg (PCRE).
Expresiones regulares compatibles con Perl
Funciones de expresiones regulares compatibles con Perl
La función de expresiones regulares compatibles con Perl preg_match($patron, $cadena
[, $matriz_coincidencias [, $modificadores [, $desplazamiento]]]) compara una cadena
con un patrón y devuelve 1 si el patrón ha coincidido o 0 si no. La primera coincidencia
encontrada se puede guardar en el argumento opcional $matriz_coincidencias y, si se
añade el modificador PREG_OFFSET_CAPTURE, se guarda también en el argumento
opcional $matriz_coincidencias la posición de la coincidencia encontrada. El argumento
opcional $desplazamiento es un número que permite indicar en qué carácter se inicia la
búsqueda.
Los patrones deben empezar y acabar con el carácter / (barra).
<?php
$cadena1 = "1234567";
$cadena2 = "abcdefg";
$patron = "/^[[:digit:]]+$/";
if (preg_match($patron, $cadena1)) {
print "<p>La cadena $cadena1 son sólo números.</p>\n";
} else {
print "<p>La cadena $cadena1 no son sólo números.</p>\n";
}
if (preg_match($patron, $cadena2)) {
print "<p>La cadena $cadena2 son sólo números.</p>\n";
} else {
print "<p>La cadena $cadena2 no son sólo números.</p>\n";
}
?>
Instituto de Desarrollo de tecnologías de la información
Reutilización de código: uso de require
e include
Instituto de Desarrollo de tecnologías de la información
INCLUSION DE CODIGO DESDE UN FICHERO
En ocasiones es necesario cargar el mismo archivo en diferentes scripts y de
esa forma no repetir el mismo código en diversos scripts. Parece entonces
razonable que debe existir algún método o forma de cargar algún archivo
externo y de esa forma generar páginas web mas dinámicas.
A este efecto PHP dispone de dos instrucciones para poder cargar archivos:
require("archivo");
Cuando se incluye un archivo con require el interprete abandona el modo PHP
y entra en modo HTML, una vez abierto el fichero lo incluye hasta su ultima
línea y posteriormente abandona el modo HTML para volver a posicionarse en
el modo PHP. Su principal diferencia con include() es que no permite la carga
condicional.
include("archivo");
Cuando se incluye un archivo con require el interprete abandona el modo PHP
y entra en modo HTML, una vez abierto el fichero lo incluye hasta su ultima
línea y posteriormente abandona el modo HTML para volver a posicionarse en
el modo PHP. Permite la carga condicional, es decir, que podemos cargar un
de si
Desarrollo
tecnologías
de la información
archivo oInstituto
otro según
se cumplede
o no
una condición.
Declaración y llamada a funciones
Instituto de Desarrollo de tecnologías de la información
Funciones en PHP
Una de las herramientas mas importantes en cualquier lenguaje de
programación son las funciones. Una función consiste en un
conjunto de rutinas y acciones que a lo largo del script van a ser
ejecutadas multitud de veces agrupados en una FUNCION y desde
cualquier punto del script puede ser llamada y ejecutada. A su vez,
esta función puede recibir parámetros externos de los cuales
dependa el resultado de una función.
Las funciones deben ser colocadas siempre antes de realizar la
llamada a la función (como es lógico). La sintaxis de una función es
la siguiente:
function nombre(parámetros) {
instrucciones de la función
}
para llamar a la función
nombre(parámetros)
sería
de
la
siguiente
Instituto de Desarrollo de tecnologías de la información
forma:
Funciones en PHP
Un ejemplo para entender el uso de funciones es el siguiente:
Crearemos una función que realice la suma de dos números y
muestre el resultado
function sumar($sumando1,$sumando2){
$ suma=$sumando1+$sumando2
echo $sumando1."+".$sumando2."=".$suma;
}
sumar(5,6)
Instituto de Desarrollo de tecnologías de la información
Parámetros y alcance de las funciones
Instituto de Desarrollo de tecnologías de la información
Un hecho relevante que cabe destacar es que las variables
que declaremos dentro de la función solo existirán o tendrán
dicho valor dentro de la función.
Existen casos en los cuales no sabemos el número de
parámetros que le pasaremos a la función y en estos casos
debemos usar las funciones creadas al efecto como son:
func_num_args() Numero de parámetros que se le han
pasado a la función
func_get_args() Devuelve un elemento de los que forman la
lista de argumentos
Instituto de Desarrollo de tecnologías de la información
Paso de parámetros
Los parámetros son los datos que reciben las funciones y que
utilizan para realizar las operaciones de la función. Una
función puede recibir cualquier número de parámetros, incluso
ninguno. A la hora de definir la función, en la cabecera, se
definen los parámetros que va a recibir.
function f1 ($parametro1, $parámetro2)
Así definimos una función llamada f1 que recibe dos
parámetros. Como se puede observar, no se tiene que definir
el tipo de datos de cada parámetro.
Los parámetros tienen validez durante la ejecución de la
función, es decir, tienen un ámbito local a la función donde se
están recibiendo. Cuando la función se termina, los
parámetros dejan de existir.
Instituto de Desarrollo de tecnologías de la información
Los parámetros se pasan por valor
El paso de parámetros en PHP se realiza por valor. "Por valor" es una manera
típica de pasar parámetros en funciones, quiere decir que el cambio de un dato
de un parámetro no actualiza el dato de la variable que se pasó a la función.
Por ejemplo, cuando invocamos una función pasando una variable como
parámetro, a pesar de que cambiemos el valor del parámetro dentro de la
función, la variable original no se ve afectada por ese cambio. Puede que se
vea mejor con un ejemplo:
function porvalor ($parametro1) {
$parametro1="hola";
echo "<br>" . $parametro1; //imprime "hola"
}
$mivariable = "esto no cambia";
porvalor ($mivariable);
echo "<br>" . $mivariable; //imprime "esto no cambia"
Esta página tendrá como resultado:
hola
Instituto de Desarrollo de tecnologías de la información
esto no cambia
Paso de parámetros por referencia
En contraposición al paso de parámetros por valor, está el paso de
parámetros por referencia. En este último caso, el cambio del valor de
un parámetro dentro de una función sí afecta al valor de la variable
original.
Podemos pasar los parámetros por referencia si, en la declaración de
la función, colocamos un "&" antes del parámetro.
<?php
function porreferencia(&$cadena)
{
$cadena = 'Si cambia';
}
$str = 'Esto es una cadena';
porreferencia ($str);
echo $str; // Imprime 'Si cambia'
?>
Este script mostrará por pantalla 'Si cambia'.
Instituto de Desarrollo de tecnologías de la información
Parámetros por defecto
Podemos definir valores por defecto para los parámetros. Los valores por
defecto sirven para que los parámetros contengan un dato predefinido, con el
que se inicializarán si no se le pasa ningún valor en la llamada de la función.
Los valores por defecto se definen asignando un dato al parámetro al
declararlo en la función.
function pordefecto ($parametro1="pepe";$parametro2=3)
Para la definición de función anterior, $parametro1 tiene como valor por
defecto "pepe", mientras que $parametro2 tiene 3 como valor por defecto.
Si llamamos a la función sin indicar valores a los parámetros, estos tomarán
los valores asignados por defecto:
pordefecto () // $parametro1 vale "pepe" y $parametro2 vale 3
Si llamamos a la función indicando un valor, este será tenido en cuenta para
el primer parámetro.
pordefecto ("hola") // $parametro1 vale "hola" y $parametro2 vale 3
Atención, estamos obligados a declarar todos los parámetros con valores por
defecto alInstituto
final.
de Desarrollo de tecnologías de la información
Las funciones pueden retornar valores. Para ello se utiliza la palabra "return" indicando
a continuación el dato o variable que tienen que retornar. La función puede tener
múltiples return, aunque sólo devolverá datos por uno de ellos cada vez porque, cuando
se llama a return, se termina la ejecución de la función devolviendo el dato indicado.
Ejemplo de función IVA
Se trata de hacer una función que calcula el IVA y que recibe dos parámetros. Uno el
valor sobre el que se calcula y el otro el porcentaje a aplicar. Si no se indica el
porcentaje de IVA se entiende que es el 16%.
<?
function iva($base,$porcentaje=16) {
return $base * $porcentaje /100;
}
echo iva(1000) . "<br>";
echo iva(1000,7) . "<br>";
?>
Si se han entendido bien los conceptos, este ejemplo no puede resultar difícil. La
función recibe un parámetro llamado $porcentaje con 16 como valor por defecto.
Devuelve el porcentaje dado aplicado a la base también indicada por parámetro.
Así pues, en la primera ejecución de la función, como no se indica el porcentaje, se
mostrará el 16% de 1000. En la segunda, se muestra el 7% de mil y en la tercera, el 0% de
Instituto de Desarrollo de tecnologías de la información
10.
Retornar múltiples valores
Una función devuelve un único valor. Si queremos hacer que se puedan
devolver varios valores distintos tenemos que recurrir a un truco que consiste
en devolver un array.
function small_numbers()
{
return array (0, 1, 2);
}
list ($zero, $one, $two) = small_numbers();
list() se usa para asignar una lista de variables en una sola operación.
Después de esa operación, $zero valdrá 0, $one valdrá 1 y $two valdrá 2.
Instituto de Desarrollo de tecnologías de la información
Diseñar una base de datos para la web
Instituto de Desarrollo de tecnologías de la información
Éste es el modelo utilizado en la actualidad para modelar problemas reales y
administrar datos dinámicamente. Tras ser postulados sus fundamentos en
1970 por Edgar Frank Codd, de los laboratorios IBM en San José (California),
no tardó en consolidarse como un nuevo paradigma en los modelos de base de
datos. Su idea fundamental es el uso de "relaciones". Estas relaciones podrían
considerarse en forma lógica como conjuntos de datos llamados "tuplas". Pese
a que ésta es la teoría de las bases de datos relacionales creadas por Codd, la
mayoría de las veces se conceptualiza de una manera más fácil de imaginar.
Esto es pensando en cada relación como si fuese una tabla que está
compuesta por registros (las filas de una tabla), que representarían las tuplas,
y campos (las columnas de una tabla).
En este modelo, el lugar y la forma en que se almacenen los datos no tienen
relevancia (a diferencia de otros modelos como el jerárquico y el de red). Esto
tiene la considerable ventaja de que es más fácil de entender y de utilizar para
un usuario esporádico de la base de datos. La información puede ser
recuperada o almacenada mediante "consultas" que ofrecen una amplia
flexibilidad y poder para administrar la información.
El lenguaje más habitual para construir las consultas a bases de datos
relacionales es SQL, Structured Query Language o Lenguaje Estructurado de
Consultas, un estándar implementado por los principales motores o sistemas
de gestión
de bases
datos relacionales.
Instituto
dedeDesarrollo
de tecnologías de la información
Las bases de datos relacionales pasan por un proceso al que se le conoce
como normalización de una base de datos, el cual es entendido como el
proceso necesario para que una base de datos sea utilizada de manera óptima.
Entre las ventajas de este modelo están:
• Garantiza herramientas para evitar la duplicidad de registros, a través de
campos claves o llaves.
• Garantiza la integridad referencial: Así al eliminar un registro elimina todos
los registros relacionados dependientes.
• Favorece la normalización por ser más comprensible y aplicable.
Instituto de Desarrollo de tecnologías de la información
Crear una base de datos para la web
Instituto de Desarrollo de tecnologías de la información
SQL, Structure Query Language (Lenguaje de Consulta Estructurado) es un
lenguaje de programacion para trabajar con base de datos relacionales como
MySQL, Oracle, etc.
MySQL es un interpretador de SQL, es un servidor de base de datos.
MySQL permite crear base de datos y tablas, insertar datos, modificarlos,
eliminarlos, ordenarlos, hacer consultas y realizar muchas operaciones, etc.,
resumiendo: administrar bases de datos.
Ingresando instrucciones en la linea de comandos o embebidas en un
lenguaje como PHP nos comunicamos con el servidor. Cada sentencia debe
acabar con punto y coma (;).
La sensibilidad a mayúsculas y minúsculas, es decir, si hace diferencia entre
ellas, depende del sistema operativo, Windows no es sensible, pero Linux si.
create database administracion;
Se recomienda usar siempre minúsculas.
Instituto de Desarrollo de tecnologías de la información
Tablas y campos en las bases de datos
Instituto de Desarrollo de tecnologías de la información
Creación y modificación de Tablas en SQL
Para crear una tabla usaremos la siguiente sintaxis:
CREATE TABLE Nombre_tabla
(Campo1 Tipo_dato Not Null,
Campo2 Tipo_dato,
PRIMARY KEY (Campo3));
Esto nos crearía una tabla con 3 campos de los cuales Campo3 es un valor
único, es decir, que no puede ser sobreescrito.
Para eliminar una tabla usaremos:
DROP TABLE Nombre_tabla;
Para modificar la estructura de la tabla usaremos la siguiente sintaxis:
ALTER TABLE Nombre_tabla
[ADD Nombre_atributo Definición] //Añadiría un nuevo campo
[CHANGE
AntiguoNombreAtributo
NuevoNombreAtributo
Definición]
//Cambiaría un campo
[DROP NombreAtributo]; //Borraría un campo
Instituto de Desarrollo de tecnologías de la información
Trabajar con Bases de Datos
Instituto de Desarrollo de tecnologías de la información
•Introducción al lenguaje SQL;
•Insertar datos en la Base de Datos;
•Recuperar datos de la Base de Datos;
•Recuperar datos con criterios específicos;
Instituto de Desarrollo de tecnologías de la información
Consultar, Modificar y Eliminar datos de la
Base de Datos
Instituto de Desarrollo de tecnologías de la información
•Recuperar datos de múltiples tablas;
•Unión de dos tablas simples; unir más de dos tablas;
•Recuperar filas que no cumplan alguna condición;
•Uso de otros nombres para las tablas: aliases;
•Sumario de los distintos joins;
•Recuperar datos en un orden particular;
•Agrupar y agregar datos;
•Elegir que filas recuperar;
•Actualizar registros de la base de datos;
•Alterar tablas después de su creación;
•Borrar registros de la base de datos;
•Eliminar tablas; eliminar bases de datos completas.
Instituto de Desarrollo de tecnologías de la información
Acceder a la base de datos MySQL
desde la Web con PHP
Instituto de Desarrollo de tecnologías de la información
• Usamos las dos herramientas de modo conjunto. Como
trabaja la arquitectura de una base de datos para la web;
• Pasos básicos en consultas a bases de datos desde la web;
• Comprobar y filtrar datos de entrada;
• Configurar una conexión;
• Elegir una base de datos para usar;
• Hacer peticiones a la base de datos;
• Recuperar los resultados de la consulta.
Instituto de Desarrollo de tecnologías de la información
Añadir información a la base de datos desde
la web con PHP
Instituto de Desarrollo de tecnologías de la información
• Terminamos la primera parte del curso con la creación de
una aplicación dinámica web con PHP y MySQL: Añadir nueva
información en la base de datos;
• Otras funciones útiles en PHP;
• Crear y Eliminar bases de datos.
Instituto de Desarrollo de tecnologías de la información