web con PHP y MySQL

41
Desarrollo de sitios web con PHP y MySQL Tema 2: Lenguaje PHP básico José Mariano González Romano [email protected]

description

Desarrollo de sitios web con PHP y MySQL

Transcript of web con PHP y MySQL

  • Desarrollo de sitios web conPHP y MySQLTema 2: Lenguaje PHP bsicoJos Mariano Gonzlez [email protected]

  • Tema 2: Lenguaje PHP bsicoSintaxis bsicaTipos de datosVariablesConstantesExpresiones y operadoresEstructuras de controlFuncionesTablasBibliotecas de funciones

  • Sintaxis bsicaPHP es sensible a las maysculasCmo se incrusta en la pgina web?recomendado, siempre disponibleequivale a Las instrucciones se separan con un ; como en C. La marca final ?> implica un ;Comentarios: como en C, /* */ (varias lneas ) y // (una lnea) /* Comentario de varias lneas */ print hola; // Comentario de una lnea

  • Sintaxis bsicaPara imprimir: echo y print echo: muestra una o ms cadenasecho cadena1 [, cadena2]; echo Hola mundo;echo Hola , mundo; print: muestra una cadenaprint cadena; print Hola mundo;print Hola . mundo;

  • Sintaxis bsicaEjemplo:

    Mi primer programa en PHP

  • Sintaxis bsicaUso de \n para generar cdigo HTML legiblea) Sin \nprint (Prrafo 1);print (Prrafo 2);

    Prrafo 1Prrafo 2

    Prrafo 1

    Prrafo 2Cdigo PHPCdigo HTMLSalida

  • Sintaxis bsicaUso de \n para generar cdigo HTML legibleb) Con \nprint (Prrafo 1\n);print (Prrafo 2\n);

    Prrafo 1Prrafo 2

    Prrafo 1

    Prrafo 2Cdigo PHPCdigo HTMLSalida

  • Sintaxis bsicaEjercicio 1: programa que muestra un mensajeIlustra cmo incrustar cdigo PHP en un documento HTML y cmo imprimir desde PHP

  • Sintaxis bsicaInclusin de ficheros externos:include()require()Ambos incluyen y evalan el fichero especificadoDiferencia: en caso de error include() produce un warning y require() un error fatalSe usar require() si al producirse un error debe interrumpirse la carga de la pginaEjemplo:

  • Sintaxis bsica

    Ttulo

    // Cdigo HTML + PHP. . .

  • Tipos de datosPHP soporta 8 tipos de datos primitivos:Tipos escalares: boolean, integer, double, stringTipos compuestos: array, objectTipos especiales: resource, NULL El tipo de una variable no se suele especificar. Se decide en tiempo de ejecucin en funcin del contexto y puede variarFunciones de inters:La funcin gettype() devuelve el tipo de una variableLas funciones is_type 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 funcin var_dump() muestra el tipo y el valor de una variable. Es especialmente interesante con los arrays

  • Tipos de datosTipo integer (nmeros enteros)27, -5, 0Tipo double (nmeros reales)1.234, -5.33Tipo boolean (lgico)Valores: true, false (insensibles a las maysculas)El 0 y la cadena vaca tienen valor false

  • Tipos de datosTipo string:Las cadenas se encierran entre comillas simples o dobles:simples: admite los caracteres de escape \ (comilla simple) y \\ (barra). Las variables NO se expandendobles: admite ms caracteres de escape, como \n, \r, \t, \\, \$, \. Los nombres de variables S se expandenEjemplos:$a = 9;print a vale $a\n;// muestra a vale $a\nprint a vale $a\n; // muestra a vale 9 y avanza una lneaprint ; // muestra print ; // muestra Acceso a un carcter de la cadena:La forma es $inicial = $nombre{0};

  • VariablesLas variables siempre van precedidas de un $El nombre es sensible a las maysculasComienzan por letra o subrayado, seguido de letras, nmeros o subrayadoVariables predefinidas:$GLOBALS, $_SERVER, $_GET, $_POST, $_COOKIES, $_FILES,$_ENV, $_REQUEST, $_SESSIONmbito: globales al fichero (excepto funciones) o locales a una funcinEjemplo:$valor = 5;print El valor es: . $valor . \n;print El valor es: $valor\n; // ojo: comillas dobles

    Resultado:El valor es: 5

  • VariablesVariables variablesSe pueden crear nombres de variables dinmicamenteLa variable variable toma su nombre del valor de otra variable previamente declaradaEjemplo:$a = "hola";$$a = "mundo";

    print "$a $hola\n";print "$a ${$a}";

    Resultado:hola mundohola mundo

  • Variables

    Ejemplo de variables variables: pgina internacionalizada (1)

  • Variables

    Ejemplo de variables variables: pgina internacionalizada (2)

  • ConstantesDefinicin de constantes:define (CONSTANTE, hola);print CONSTANTE;No llevan $ delanteSlo se pueden definir constantes de los tipos escalares (boolean, integer, double, string)

  • Expresiones y operadoresOperadores aritmticos: +, -, *, /, %, ++, --Operador de asignacin: = 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 comparacin: ==, !=, , = y otrosOperador de control de error: @. Antepuesto a una expresin, evita cualquier mensaje de error que pueda ser generado por la expresinOperadores lgicos: and (&&), or (||), !, xor and/&& y or/|| tienen diferentes prioridadesOperadores de cadena: concatenacin: . (punto) asignacin con concatenacin: .=

  • Expresiones y operadoresPrecedencia de operadores (de mayor a menor):

    ++, --*, /, %+,-===, !=&&||andor

  • Estructuras de controlEstructuras selectivas:if-elseswitchEstructuras repetitivas:whileforforeach

  • Estructuras de controlEstructura selectiva if-else

    Mismo comportamiento que en C Las sentencias compuestas se encierran entre llaveselseif puede ir todo juntoif (condicin) sentenciaif (condicin1) sentencia 1else if (condicin2) sentencia 2...else if (condicin n) sentencia nelse sentencia n+1if (condicin) sentencia 1else sentencia 2

  • Estructuras de controlEjemplo de estructura selectiva if-else:

  • Estructuras de controlEstructura selectiva switchswitch (expresin){case valor_1:sentencia 1break;case valor_2:sentencia 2break;case valor_n:sentencia n break;defaultsentencia n+1}Mismo comportamiento que en C, slo que la expresin del case puede ser integer, float o string

  • Estructuras de controlEjemplo de estructura selectiva switch:

    switch ($extension){ case ("PDF"): $tipo = "Documento Adobe PDF"; break; case ("TXT"): $tipo = "Documento de texto"; break; case ("HTML"): case ("HTM"): $tipo = "Documento HTML"; break;default: $tipo = "Archivo " . $extension;}print ($tipo);

  • Estructuras de controlEstructura repetitiva while while (condicin)sentencia

    Mismo comportamiento que en Ccondicinsentenciaciertafalsa

  • Estructuras de controlEjemplo de estructura repetitiva while:

  • Estructuras de controlEstructura repetitiva for

    for (inicializacin; condicin; incremento)sentencia

    Mismo comportamiento que en Ccondicinsentenciaciertafalsaincrementoinicializacin

  • Estructuras de controlEjemplo de estructura repetitiva for:

  • Estructuras de controlEjercicio 2: programa que calcula una tabla de multiplicarIlustra cmo manejar variables y cmo usar bucles

  • FuncionesEjemplo:function suma ($x, $y){ $s = $x + $y; return $s;}

    $a=1;$b=2;$c=suma ($a, $b);print $c;

  • FuncionesPor defecto los parmetros se pasan por valorPaso por referencia:function incrementa (&$a){ $a = $a + 1;}

    $a=1;incrementa ($a);print $a; // Muestra un 2

  • FuncionesArgumentos por defectofunction muestranombre ($titulo = "Sr."){ print "Estimado $titulo:\n";}muestranombre ();muestranombre ("Prof.");Salida:Estimado Sr.:Estimado Prof.:

  • FuncionesLos argumentos con valores por defecto deben ser siempre los ltimos:function muestranombre ($nombre, $titulo= "Sr."){ print "Estimado $titulo $nombre:\n";}muestranombre (Fernndez);muestranombre (Fernndez, "Prof.");Salida:Estimado Sr. Fernndez:Estimado Prof. Fernndez:

  • TablasSintaxis:array ([clave =>] valor, ...)La clave es una cadena o un entero no negativo. El valor puede ser de cualquier tipo vlido en PHP, incluyendo otro arrayEjemplos:$color = array (rojo=>101, verde=>51, azul=>255);$medidas = array (10, 25, 15);Acceso:$color[rojo] // No olvidar las comillas$medidas[0]El primer elemento es el 0

  • TablasLa estructura de control foreach permite iterar sobre arraysSintaxis:foreach (expresin_array as $valor) sentenciaforeach (expresin_array as $clave => $valor) sentenciaEjemplos:foreach ($color as $valor)print Valor: $valor\n;foreach ($color as $clave => $valor)print Clave: $clave; Valor: $valor\n;Salida:Valor: 101Valor: 51Valor: 255Clave: rojo; Valor: 101Clave: verde; Valor: 51Clave: azul; Valor: 255

  • Bibliotecas de funcionesExisten muchas bibliotecas de funciones en PHPAlgunos ejemplos:Funciones de manipulacin de cadenasFunciones de fecha y horaFunciones de arraysFunciones de ficherosFunciones matemticasFunciones de bases de datosFunciones de redAlgunas bibliotecas requieren la instalacin de componentes adicionalesTodas las funciones de biblioteca estn comentadas en la documentacin de PHP

  • Bibliotecas de funcionesFunciones de manipulacin de cadenasexplode()Divide una cadena en subcadenasarray explode (string separator, string string [, int limit]) rtrim(), ltrim(), trim()Eliminan caracteres a la derecha, a la izquierda o por ambos lados de una cadenastring rtrim ( string str [, string charlist]) strstr()Busca la primera ocurrencia de una subcadenastrtolower() / strtoupper()Convierte una cadena a minscula / maysculastrcmp() / strcasecmp()Compara dos cadenas con/sin distincin de maysculasstrlen()Calcula la longitud de una cadena

  • Bibliotecas de funcionesFunciones de fecha y horadate()Formatea una fecha segn un formato dadoEjemplo:$fecha = date ("j/n/Y H:i");print ("$fecha");Resultado:26/9/2005 17:36 strtotime()Convierte una fecha en un timestamp de UNIXEjemplo:$fecha = date ("j/n/Y", strtotime(5 april 2001"));print ("$fecha");Resultado:5/4/2001

  • Bibliotecas de funcionesFunciones de arraysarray_count_values()Calcula la frecuencia de cada uno de los elementos de un arrayarray_search()Busca un elemento en un arraycount()Cuenta los elementos de un arraysort(), rsort()Ordena y reindexa un array (r=decreciente)ksort(), krsort()Ordena por claves un array (r=decreciente)

  • Bibliotecas de funcionesEjercicio 3: programa que muestra la fecha actualIlustra cmo usar comentarios, tablas y funciones (propias y de biblioteca). Tambin cmo usar el manual de PHP