La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Instituto de Desarrollo de tecnologías de la información Curso Básico de PHP y MySQL.

Presentaciones similares


Presentación del tema: "Instituto de Desarrollo de tecnologías de la información Curso Básico de PHP y MySQL."— Transcripción de la presentación:

1 Instituto de Desarrollo de tecnologías de la información Curso Básico de PHP y MySQL

2 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

3 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.

4 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

5 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

6 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

7 Instituto de Desarrollo de tecnologías de la información INTRODUCCION

8 ¿ 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.

9 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( ).

10 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 www.appservnetwork.com EasyPHP http://www.easyphp.org/http://www.easyphp.org/ Uniform Server http://www.uniformserver.com/ http://www.uniformserver.com/ Wamp Server http://www.wampserver.com/en/http://www.wampserver.com/en/ XAMPP http://www.apachefriends.org/en/xampp.htmlhttp://www.apachefriends.org/en/xampp.html

11 Instituto de Desarrollo de tecnologías de la información Veamos un ejemplo: Codigo: <?php echo "Esto es lo que se va enviar en lugar del codigo PHP"; ?>

12 Instituto de Desarrollo de tecnologías de la información Que sucede cuando el navegador pide una pagina PHP

13 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. 2. Esto es una abreviatura de " " 3. echo ("muchos editores (como FrontPage) no aceptan instrucciones de procesado"); 4.

14 Instituto de Desarrollo de tecnologías de la información Trabajo con variables y constantes

15 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

16 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.

17 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)

18 Instituto de Desarrollo de tecnologías de la información Ejemplo de settype()

19 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);

20 Instituto de Desarrollo de tecnologías de la información Uso de Operadores

21 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.

22 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

23 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

24 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

25 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

26 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

27 Instituto de Desarrollo de tecnologías de la información Funciones de variables y condicionales

28 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.

29 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.

30 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.

31 Instituto de Desarrollo de tecnologías de la información Uso de Loops

32 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" Tamaño $size n"; $size++; } ?>

33 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.

34 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" Tamaño $size n"; } ?>

35 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 "; } ?>

36 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.

37 Instituto de Desarrollo de tecnologías de la información Almacenar y recuperar datos de archivos

38 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

39 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 1.Abrir el archivo 2.Leer datos en del archivo 3.Cierra el archivo HAY 3 PASOS PARA LEER DATOS A UN ARCHIVO

40 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

41 Instituto de Desarrollo de tecnologías de la información Funciones para trabajar con archivos

42 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( )

43 Instituto de Desarrollo de tecnologías de la información RESUMEN DE LOS MODOS DE ARCHIVOS PARA FOPEN modoDescripción 'r' Apertura para sólo lectura; ubica el apuntador de archivo al comienzo del mismo. 'r+' Apertura para lectura y escritura; ubica el apuntador de archivo al comienzo del mismo. 'w' 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. 'w+' 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. 'a' Apertura para sólo escritura; ubica el apuntador de archivo al final del mismo. Si el archivo no existe, intenta crearlo. 'a+' Apertura para lectura y escritura; ubica el apuntador de archivo al final del mismo. Si el archivo no existe, intenta crearlo. 'x' 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. 'x+' 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.

44 Instituto de Desarrollo de tecnologías de la información Arrays numéricos y asociativos

45 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']

46 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 ftp“ ); ?>

47 Instituto de Desarrollo 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']

48 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: ClaveSignificado 0 Nombre de la clave 1 Valor asociativo de la clave Key Nombre de la clave value Valor asociado a la clave

49 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: SintaxisAcción reset(matriz);El puntero interno vuelve a la primera posición end(matriz);El puntero interno va a la ultima posición next(matriz);El puntero va al elemento siguiente prev(matriz);Accede al elemento anterior current(matriz);Devuelve el contenido del elemento actual

50 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.

51 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 matriz pasada como parámetro.

52 Instituto de Desarrollo de tecnologías de la información Arrays multidimensionales

53 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"); ?>

54 Instituto de Desarrollo de tecnologías de la información Clasificación de Arrays

55 Instituto de Desarrollo de tecnologías de la información Ordenación de matrices CriterioFunción Orden ascendente(matriz indexada)sort(matriz) Orden descendente(matriz indexada)rsort(matriz) Orden ascendente por valor(matriz asociativa)asort(matriz) Orden descendente por valor(matriz asociativa)arsort(matriz) Orden ascendente por clave(matriz asociativa)ksort(matriz) Orden descendente por clave(matriz asociativa)krsort(matriz)

56 Instituto de Desarrollo de tecnologías de la información Uso de funciones para modificar Arrays

57 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).

58 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.

59 Instituto de Desarrollo de tecnologías de la información Funciones para modificar strings

60 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

61 Instituto de Desarrollo de tecnologías de la información Formatear, cortar y unir strings

62 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( ).

63 Instituto de Desarrollo de tecnologías de la información Buscar y reemplazar substrings

64 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( ).

65 Instituto de Desarrollo de tecnologías de la información Introducción a las Expresiones Regulares

66 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 únicamente las funciones preg (PCRE).

67 Instituto de Desarrollo de tecnologías de la información 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 " La cadena $cadena1 son sólo números. \n"; } else { print " La cadena $cadena1 no son sólo números. \n"; } if (preg_match($patron, $cadena2)) { print " La cadena $cadena2 son sólo números. \n"; } else { print " La cadena $cadena2 no son sólo números. \n"; } ?>

68 Instituto de Desarrollo de tecnologías de la información Reutilización de código: uso de require e include

69 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 archivo o otro según si se cumple o no una condición.

70 Instituto de Desarrollo de tecnologías de la información Declaración y llamada a funciones

71 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 sería de la siguiente forma: nombre(parámetros)

72 Instituto de Desarrollo de tecnologías de la información 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)

73 Instituto de Desarrollo de tecnologías de la información Parámetros y alcance de las funciones

74 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

75 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.

76 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 " ". $parametro1; //imprime "hola" } $mivariable = "esto no cambia"; porvalor ($mivariable); echo " ". $mivariable; //imprime "esto no cambia" Esta página tendrá como resultado: hola esto no cambia

77 Instituto de Desarrollo de tecnologías de la información 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'.

78 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 al final.

79 Instituto 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) { function iva($base,$porcentaje=16) { return $base * $porcentaje /100; return $base * $porcentaje /100; } echo iva(1000). " "; echo iva(1000). " "; echo iva(1000,7). " "; echo iva(1000,7). " ";?> 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 10.

80 Instituto de Desarrollo de tecnologías de la información 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.

81 Instituto de Desarrollo de tecnologías de la información Diseñar una base de datos para la web

82 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 de datos relacionales.

83 Instituto de Desarrollo 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.

84 Instituto de Desarrollo de tecnologías de la información Crear una base de datos para la web

85 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.

86 Instituto de Desarrollo de tecnologías de la información Tablas y campos en las bases de datos

87 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

88 Instituto de Desarrollo de tecnologías de la información Trabajar con Bases de Datos

89 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;

90 Instituto de Desarrollo de tecnologías de la información Consultar, Modificar y Eliminar datos de la Base de Datos

91 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.

92 Instituto de Desarrollo de tecnologías de la información Acceder a la base de datos MySQL desde la Web con PHP

93 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.

94 Instituto de Desarrollo de tecnologías de la información Añadir información a la base de datos desde la web con PHP

95 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.


Descargar ppt "Instituto de Desarrollo de tecnologías de la información Curso Básico de PHP y MySQL."

Presentaciones similares


Anuncios Google