Introduccion a php

688 visualizaciones

Publicado el

0 comentarios
0 recomendaciones
Estadísticas
Notas
  • Sé el primero en comentar

  • Sé el primero en recomendar esto

Sin descargas
Visualizaciones
Visualizaciones totales
688
En SlideShare
0
De insertados
0
Número de insertados
175
Acciones
Compartido
0
Descargas
13
Comentarios
0
Recomendaciones
0
Insertados 0
No insertados

No hay notas en la diapositiva.

Introduccion a php

  1. 1. Instituto de Educación Superior Tecnológico PúblicoInstituto de Educación Superior Tecnológico Público“Francisco de Paula Gonzáles Vigil”“Francisco de Paula Gonzáles Vigil”Carrera Profesional de Computación e InformáticaCarrera Profesional de Computación e Informática“Introducción a PHP"José Luis Ponce Segurajose.ponce@sitelsur.comwww.sitelsur.com
  2. 2. Introducción a PHPIntroducción a PHP• Lenguajes deLenguajes de scriptscript– PHP es un lenguaje dePHP es un lenguaje de scriptscript del lado del servidor. Otrosdel lado del servidor. Otroslenguajes similares son ASP, JSP o ColdFusionlenguajes similares son ASP, JSP o ColdFusion– Los scripts PHP están incrustados en los documentos HTML y elLos scripts PHP están incrustados en los documentos HTML y elservidor los interpreta y ejecuta antes de servir las páginas alservidor los interpreta y ejecuta antes de servir las páginas alclientecliente– El cliente no ve el código PHP sino los resultados que produceEl cliente no ve el código PHP sino los resultados que produce
  3. 3. Introducción a PHPIntroducción a PHP• ¿Cómo funciona PHP?¿Cómo funciona PHP?PáginaHTMLPáginaHTMLinternetServidor web Cliente(navegador)<P>Hola, Ana</P>
  4. 4. Introducción a PHPIntroducción a PHP• ¿Cómo funciona PHP?¿Cómo funciona PHP?PáginaPHPIntérpretePHPPáginaHTMLPáginaHTMLinternetServidor web Cliente(navegador)<?PHP$nombre = "Ana";print ("<P>Hola, $nombre</P>");?><P>Hola, Ana</P>
  5. 5. Introducción a PHPIntroducción a PHP• Breve historia de PHPBreve historia de PHP– Creado por Rasmus Lerdorf para uso personal en 1994Creado por Rasmus Lerdorf para uso personal en 1994– PHP =PHP = Personal Hypertext ProcessorPersonal Hypertext Processor– Versión actual: PHP 5Versión actual: PHP 5– Es un módulo que se añade al servidor web y fueEs un módulo que se añade al servidor web y fueconcebido inicialmente para Apacheconcebido inicialmente para Apache• ¿Por qué PHP?¿Por qué PHP?– Por sus ventajas: es potente, fácil de aprender, de librePor sus ventajas: es potente, fácil de aprender, de libredistribución, permite el acceso a bases de datos y otrasdistribución, permite el acceso a bases de datos y otrasfuncionalidades orientadas a la redfuncionalidades orientadas a la red– Dispone de abundante soporte en la WebDispone de abundante soporte en la Web
  6. 6. Introducción a PHPIntroducción a PHP• RequisitosRequisitos– Servidor web Apache (www.apache.org)Servidor web Apache (www.apache.org)– con el módulo PHP (www.php.net)con el módulo PHP (www.php.net)– y la base de datos MySQL (www.mysql.com) si se deseay la base de datos MySQL (www.mysql.com) si se deseacrear páginas dinámicascrear páginas dinámicas• Otras utilidadesOtras utilidades– Herramientas para la gestión de MySQL, comoHerramientas para la gestión de MySQL, comoPHPMyAdmin (www.phpmyadmin.net)PHPMyAdmin (www.phpmyadmin.net)– Editores de PHP, como DevPHP (www.sourceforge.net) oEditores de PHP, como DevPHP (www.sourceforge.net) oEclipse (www.eclipse.org)Eclipse (www.eclipse.org)– Manuales de PHP y MySQLManuales de PHP y MySQL
  7. 7. Lenguaje PHP básicoLenguaje PHP básico1.1. Sintaxis básicaSintaxis básica2.2. Tipos de datosTipos de datos3.3. VariablesVariables4.4. ConstantesConstantes5.5. Expresiones y operadoresExpresiones y operadores6.6. Estructuras de controlEstructuras de control7.7. FuncionesFunciones8.8. TablasTablas9.9. Bibliotecas de funcionesBibliotecas de funciones
  8. 8. Sintaxis básicaSintaxis básica• PHP es sensible a las mayúsculasPHP es sensible a las mayúsculas• ¿Cómo se incrusta en la página web?¿Cómo se incrusta en la página web?<?PHP ... ?><?PHP ... ?>recomendado, siempre disponiblerecomendado, siempre disponible<?= expresión ?><?= expresión ?>equivale a <? echo expresión ?>equivale a <? echo expresión ?>• Las instrucciones se separan con un ; como en C. LaLas instrucciones se separan con un ; como en C. Lamarca final ?> implica un ;marca final ?> implica un ;• Comentarios: como en C, /* … */ y //Comentarios: como en C, /* … */ y //
  9. 9. Sintaxis básicaSintaxis básica• Para imprimir:Para imprimir: echoecho yy printprintecho: muestra una o más cadenasecho: muestra una o más cadenasecho cadena1 [, cadena2…]; // no es una funciónecho cadena1 [, cadena2…]; // no es una funciónecho “Hola mundo”;echo “Hola mundo”;echo “Hola “, “mundo”;echo “Hola “, “mundo”;print: muestra una cadenaprint: muestra una cadenaprint cadena; // no es una funciónprint cadena; // no es una funciónprint “Hola mundo”;print “Hola mundo”;print “Hola “ . “mundo”;print “Hola “ . “mundo”;
  10. 10. Sintaxis básicaSintaxis básica• Ejemplo:Ejemplo:<HTML><HTML><HEAD><HEAD><TITLE>Mi primer programa en PHP</TITLE><TITLE>Mi primer programa en PHP</TITLE></HEAD></HEAD><BODY><BODY><?PHP<?PHPprint (“<P>Hola mundo</P>”);print (“<P>Hola mundo</P>”);?>?></BODY></BODY></HTML></HTML>
  11. 11. Sintaxis básicaSintaxis básica• Uso de n para generar código HTML legibleUso de n para generar código HTML legible• a) Sin na) Sin nprint (“<P>Párrafo 1</P>”);print (“<P>Párrafo 2</P>”);<P>Párrafo 1</P><P>Párrafo 2</P>Párrafo 1Párrafo 2Código PHPCódigo HTMLSalida
  12. 12. Sintaxis básicaSintaxis básica• Uso de n para generar código HTML legibleUso de n para generar código HTML legible• b) Con nb) Con nprint (“<P>Párrafo 1</P>n”);print (“<P>Párrafo 2</P>n”);<P>Párrafo 1</P><P>Párrafo 2</P>Párrafo 1Párrafo 2Código PHPCódigo HTMLSalida
  13. 13. Sintaxis básicaSintaxis básica• Inclusión de ficheros externos:Inclusión de ficheros externos:– includeinclude()()– requirerequire()()• Ambos incluyen y evalúan el fichero especificadoAmbos incluyen y evalúan el fichero especificado• Diferencia: en caso de error include() produce un warning yDiferencia: en caso de error include() produce un warning yrequire() un error fatalrequire() un error fatal• Se usará require() si al producirse un error debe interrumpirse laSe usará require() si al producirse un error debe interrumpirse lacarga de la páginacarga de la página• Ejemplo:Ejemplo:
  14. 14. Sintaxis básicaSintaxis básica<HTML><HEAD><TITLE>Título</TITLE><?PHP// Incluir bibliotecas de funcionesrequire ("conecta.php");require ("fecha.php");require ("cadena.php");require ("globals.php");?></HEAD><BODY><?PHPinclude ("cabecera.html");?>// Código HTML + PHP. . .<?PHPinclude ("pie.html");?></BODY></HTML>
  15. 15. Tipos de datosTipos de datos• PHP soporta 8PHP soporta 8 tipos de datos primitivostipos de datos primitivos ::– Tipos escalares: boolean, integer, double, stringTipos escalares: boolean, integer, double, string– Tipos compuestos: array, objectTipos compuestos: array, object– Tipos especiales: resource, NULLTipos especiales: resource, NULL• El tipo de una variable no se suele especificar. Se decide enEl tipo de una variable no se suele especificar. Se decide entiempo de ejecución en función del contexto y puede variartiempo de ejecución en función del contexto y puede variar• Funciones de interés:Funciones de interés:– La función gettype() devuelve el tipo de una variableLa función gettype() devuelve el tipo de una variable– Las funciones is_Las funciones is_typetype comprueban si una variable es de un tipocomprueban si una variable es de un tipodado:dado:is_array(), is_bool(), is_float(), is_integer(), is_null(),is_array(), is_bool(), is_float(), is_integer(), is_null(),is_numeric(), is_object(), is_resource(), is_scalar(),is_numeric(), is_object(), is_resource(), is_scalar(),is_string()is_string()– La función var_dump() muestra el tipo y el valor de una variable.La función var_dump() muestra el tipo y el valor de una variable.Es especialmente interesante con los arraysEs especialmente interesante con los arrays
  16. 16. Tipos de datosTipos de datos• TipoTipo integerinteger (números enteros)(números enteros)– 27, -5, 027, -5, 0• TipoTipo doubledouble (números reales)(números reales)– 1.234, -5.331.234, -5.33• TipoTipo booleanboolean (lógico)(lógico)– Valores:Valores: truetrue,, falsefalse (insensibles a las mayúsculas)(insensibles a las mayúsculas)– El 0 y la cadena vacía tienen valorEl 0 y la cadena vacía tienen valor falsefalse
  17. 17. Tipos de datosTipos de datos• Tipo string:Tipo string:– Las cadenas se encierran entre comillas simples o dobles:Las cadenas se encierran entre comillas simples o dobles:• ‘‘simples’: admite los caracteres de escape ’ (comilla simple)simples’: admite los caracteres de escape ’ (comilla simple)y (barra). Las variablesy (barra). Las variables NONO se expandense expanden• ““dobles”: admite más caracteres de escape, como n, r, t, ,dobles”: admite más caracteres de escape, como n, r, t, ,$, ”. Los nombres de variables$, ”. Los nombres de variables SÍSÍ se expandense expanden• Ejemplos:Ejemplos:$a = 9;$a = 9;print ‘a vale $an’;print ‘a vale $an’;// muestra// muestra a vale $ana vale $anprint “a vale $an”;print “a vale $an”;// muestra// muestra a vale 9a vale 9 y avanza una líneay avanza una líneaprint “<IMG SRC=‘logo.gif’>”;print “<IMG SRC=‘logo.gif’>”;// muestra// muestra <IMG SRC=‘logo.gif’><IMG SRC=‘logo.gif’>print “<IMG SRC=”logo.gif”>”;print “<IMG SRC=”logo.gif”>”;// muestra// muestra <IMG SRC=“logo.gif”><IMG SRC=“logo.gif”>– Acceso a un carácter de la cadena:Acceso a un carácter de la cadena:• La forma es $inicial = $nombre{0};La forma es $inicial = $nombre{0};
  18. 18. VariablesVariables• Las variables siempre van precedidas de un $Las variables siempre van precedidas de un $• El nombre es sensible a las mayúsculasEl nombre es sensible a las mayúsculas• Comienzan por letra o subrayado, seguido de letras, números oComienzan por letra o subrayado, seguido de letras, números osubrayadosubrayado• Variables predefinidas:Variables predefinidas:$GLOBALS, $_SERVER, $_GET, $_POST, $_COOKIES, $_FILES,$GLOBALS, $_SERVER, $_GET, $_POST, $_COOKIES, $_FILES,$_ENV, $_REQUEST, $_SESSION$_ENV, $_REQUEST, $_SESSION• Ámbito: globales al fichero (excepto funciones) o locales a unaÁmbito: globales al fichero (excepto funciones) o locales a unafunciónfunción• Ejemplo:Ejemplo:$valor = 5;$valor = 5;print “El valor es: “ . $valor . “n”;print “El valor es: “ . $valor . “n”;print “El valor es: $valorn”; // ojo: comillas doblesprint “El valor es: $valorn”; // ojo: comillas doblesResultado:Resultado:El valor es: 5El valor es: 5
  19. 19. VariablesVariables• Variables variablesVariables variables– Se pueden crear nombres de variables dinámicamenteSe pueden crear nombres de variables dinámicamente– La variable variable toma su nombre del valor de otraLa variable variable toma su nombre del valor de otravariable previamente declaradavariable previamente declarada– Ejemplo:Ejemplo:$a =$a = ""holahola"";;$$a =$$a = ""mundomundo"";;print "$a $holan";print "$a $holan";print "$a ${$a}";print "$a ${$a}";Resultado:Resultado:hola mundohola mundohola mundohola mundo
  20. 20. VariablesVariables<?PHP$mensaje_es="Hola";$mensaje_en="Hello";$idioma = "es";$mensaje = "mensaje_" . $idioma;print $$mensaje;?>• Ejemplo de variables variables: página internacionalizada (1)Ejemplo de variables variables: página internacionalizada (1)
  21. 21. VariablesVariables<?PHP$mensaje_es="Hola";$mensaje_en="Hello";$idioma = "en";$mensaje = "mensaje_" . $idioma;print $$mensaje;?>• Ejemplo de variables variables: página internacionalizada (2)Ejemplo de variables variables: página internacionalizada (2)
  22. 22. ConstantesConstantes• Definición de constantes:Definición de constantes:define (“CONSTANTE”, “hola”);define (“CONSTANTE”, “hola”);print CONSTANTE;print CONSTANTE;• No llevan $ delanteNo llevan $ delante• Sólo se pueden definir constantes de los tipos escalares (boolean,Sólo se pueden definir constantes de los tipos escalares (boolean,integer, double, string)integer, double, string)
  23. 23. Expresiones y operadoresExpresiones y operadores• Operadores aritméticos:Operadores aritméticos:+, -, *, /, %, ++, --+, -, *, /, %, ++, --• Operador de asignación:Operador de asignación:==operadores combinados: .=, +=, etcoperadores combinados: .=, +=, etc$a = 3; $a += 5;$a = 3; $a += 5;  a vale 8a vale 8$b = “hola ”; $b .= “mundo”;$b = “hola ”; $b .= “mundo”;  b vale “hola mundo”b vale “hola mundo” Equivale a $b = $b . “mundo”;Equivale a $b = $b . “mundo”;• Operadores de comparación:Operadores de comparación:==, !=, <, >, <=, >= y otros==, !=, <, >, <=, >= y otros• Operador de control de error: @. Antepuesto a una expresión, evitaOperador de control de error: @. Antepuesto a una expresión, evitacualquier mensaje de error que pueda ser generado por la expresióncualquier mensaje de error que pueda ser generado por la expresión• Operadores lógicos:Operadores lógicos:and (&&), or (||), !, xorand (&&), or (||), !, xorand/&& y or/|| tienen diferentes prioridadesand/&& y or/|| tienen diferentes prioridades• Operadores de cadena:Operadores de cadena:concatenación: . (punto)concatenación: . (punto)asignación con concatenación: .=asignación con concatenación: .=
  24. 24. Expresiones y operadoresExpresiones y operadores• Precedencia de operadores (de mayor a menor):Precedencia de operadores (de mayor a menor):++, --++, --*, /, %*, /, %+,-+,-<, <=, >, >=<, <=, >, >===, !===, !=&&&&||||andandoror
  25. 25. Estructuras de controlEstructuras de control• Estructuras selectivas:Estructuras selectivas:– if-elseif-else– switchswitch• Estructuras repetitivas:Estructuras repetitivas:– whilewhile– forfor– foreachforeach
  26. 26. Estructuras de controlEstructuras de control• Estructura selectivaEstructura selectiva if-else• Mismo comportamiento que en CMismo comportamiento que en C• Las sentencias compuestas se encierran entre llavesLas sentencias compuestas se encierran entre llaves• elseif puede ir todo juntoelseif puede ir todo juntoif (condición)sentenciaif (condición1)sentencia 1else if (condición2)sentencia 2...else if (condición n)sentencia nelsesentencia n+1if (condición)sentencia 1elsesentencia 2
  27. 27. Estructuras de controlEstructuras de control• Ejemplo de estructura selectiva if-else:Ejemplo de estructura selectiva if-else:<?PHP<?PHPif ($sexo == ‘M’)if ($sexo == ‘M’)$saludo = "Bienvenida, ";$saludo = "Bienvenida, ";elseelse$saludo = "Bienvenido, ";$saludo = "Bienvenido, ";$saludo = $saludo . $nombre;$saludo = $saludo . $nombre;print ($saludo);print ($saludo);?>?>
  28. 28. Estructuras de controlEstructuras de control• Estructura selectivaEstructura selectiva switchswitch (expresión)switch (expresión){{case valor_1:case valor_1:sentencia 1sentencia 1break;break;case valor_2:case valor_2:sentencia 2sentencia 2break;break;……case valor_n:case valor_n:sentencia nsentencia nbreak;break;defaultdefaultsentencia n+1sentencia n+1}}• Mismo comportamiento que en C, sólo que la expresión delMismo comportamiento que en C, sólo que la expresión delcase puede ser integer, float o stringcase puede ser integer, float o string
  29. 29. Estructuras de controlEstructuras de control• Ejemplo de estructura selectiva switch:Ejemplo de estructura selectiva switch:switch ($extension)switch ($extension){{case ("PDF"):case ("PDF"):$tipo = "Documento Adobe PDF";$tipo = "Documento Adobe PDF";break;break;case ("TXT"):case ("TXT"):$tipo = "Documento de texto";$tipo = "Documento de texto";break;break;case ("HTML"):case ("HTML"):case ("HTM"):case ("HTM"):$tipo = "Documento HTML";$tipo = "Documento HTML";break;break;default:default:$tipo = "Archivo " . $extension;$tipo = "Archivo " . $extension;}}print ($tipo);print ($tipo);
  30. 30. Estructuras de controlEstructuras de control• Estructura repetitivaEstructura repetitiva whilewhile (condición)while (condición)sentenciasentencia• Mismo comportamiento que en CMismo comportamiento que en C
  31. 31. Estructuras de controlEstructuras de control• Ejemplo de estructura repetitiva while:Ejemplo de estructura repetitiva while:<?PHP<?PHPprint ("<UL>n");print ("<UL>n");$i=1;$i=1;while ($i <= 5)while ($i <= 5){{print ("<LI>Elemento $i</LI>n");print ("<LI>Elemento $i</LI>n");$i++;$i++;}}print ("</UL>n");print ("</UL>n");?>?>
  32. 32. Estructuras de controlEstructuras de control• Estructura repetitivaEstructura repetitiva forfor (inicialización; condición; incremento)for (inicialización; condición; incremento)sentenciasentencia• Mismo comportamiento que en CMismo comportamiento que en C
  33. 33. Estructuras de controlEstructuras de control• Ejemplo de estructura repetitiva for:Ejemplo de estructura repetitiva for:<?PHP<?PHPprint ("<UL>n");print ("<UL>n");for ($i=1; $i<=5; $i++)for ($i=1; $i<=5; $i++)print ("<LI>Elemento $i</LI>n");print ("<LI>Elemento $i</LI>n");print ("</UL>n");print ("</UL>n");?>?>
  34. 34. FuncionesFunciones• Ejemplo:Ejemplo:function suma ($x, $y)function suma ($x, $y){{$s = $x + $y;$s = $x + $y;return $s;return $s;}}$a=1;$a=1;$b=2;$b=2;$c=suma ($a, $b);$c=suma ($a, $b);print $c;print $c;
  35. 35. FuncionesFunciones• Por defecto los parámetros se pasan por valorPor defecto los parámetros se pasan por valor• Paso por referencia:Paso por referencia:function incrementa (&$a)function incrementa (&$a){{$a = $a + 1;$a = $a + 1;}}$a=1;$a=1;incrementa ($a);incrementa ($a);print $a; // Muestra un 2print $a; // Muestra un 2
  36. 36. FuncionesFunciones• Argumentos por defectoArgumentos por defectofunction muestranombre ($titulo = "Sr.")function muestranombre ($titulo = "Sr."){{print "Estimado $titulo:n";print "Estimado $titulo:n";}}muestranombre ();muestranombre ();muestranombre ("Prof.");muestranombre ("Prof.");• Salida:Salida:Estimado Sr.:Estimado Sr.:Estimado Prof.:Estimado Prof.:
  37. 37. FuncionesFunciones• Los argumentos con valores por defecto deben serLos argumentos con valores por defecto deben sersiempre los últimos:siempre los últimos:function muestranombre ($nombre, $titulo= "Sr.")function muestranombre ($nombre, $titulo= "Sr."){{print "Estimado $titulo $nombre:n";print "Estimado $titulo $nombre:n";}}muestranombre (“Fernández”);muestranombre (“Fernández”);muestranombre (“Fernández”, "Prof.");muestranombre (“Fernández”, "Prof.");• Salida:Salida:Estimado Sr. Fernández:Estimado Sr. Fernández:Estimado Prof. Fernández:Estimado Prof. Fernández:
  38. 38. Arrays = TablaArrays = Tabla¿Qué es un¿Qué es un arrayarray??• UnUn arrayarray es sencillamente una tabla de valores.es sencillamente una tabla de valores.• Cada uno de losCada uno de los elementoselementos de esade esa tablatabla se identifica por medio de unse identifica por medio de un nombrenombre(común para todos) y un(común para todos) y un índiceíndice (que diferenciaría a cada uno de ellos).(que diferenciaría a cada uno de ellos).• La sintaxis que permite definir elementos en un array es la siguiente:La sintaxis que permite definir elementos en un array es la siguiente:$nombre[indice]$nombre[indice]ElEl índiceíndice puede serpuede ser un númeroun número (habría que escribirlo dentro del corchete(habría que escribirlo dentro del corchete sinsincomillascomillas),), unauna cadenacadena (que habría que poner en el corchete encerrada entre(que habría que poner en el corchete encerrada entrecomillas sencillascomillas sencillas ––).––).Cuando losCuando los índicesíndices de un array sonde un array son númerosnúmeros se dice que esse dice que es escalarescalar mientrasmientrasque si fueranque si fueran cadenascadenas se le llamaría arrayse le llamaría array asociativoasociativo..
  39. 39. Arrays UnidimensionalesArrays UnidimensionalesArrays EscalaresArrays Escalares• Los elementos de unLos elementos de un arrayarray escalar puedeescalar puedeescribirse con una de estas sintaxis:escribirse con una de estas sintaxis:$a[]=$a[]=valorvalor ó $a[xx]=ó $a[xx]=valorvalor• En el primero se asigna los índices deEn el primero se asigna los índices deforma automática, éste es un valorforma automática, éste es un valor enteroenteroy empieza por ely empieza por el 00 (CERO).(CERO).• En el segundo de los casos, seremosEn el segundo de los casos, seremosnosotros quienes pongamos (nosotros quienes pongamos (xxxx) el) elnúmeronúmero correspondiente alcorrespondiente al valor delvalor delíndiceíndice..Arrays AsociativoArrays Asociativo• Los elementos de unLos elementos de un arrayarray asociativoasociativopueden escribirse usando la siguientepueden escribirse usando la siguientesintaxis:sintaxis:$a[$a[indiceindice]=]=valorvalor• En éste caso estamos obligados a escribirEn éste caso estamos obligados a escribirel nombre del índice que habrá de ser unael nombre del índice que habrá de ser unacadenacadena y debe ponerse entre comillas.y debe ponerse entre comillas.• Tanto en este supuesto como en el anterior,Tanto en este supuesto como en el anterior,es posible –y bastante frecuente– utilizares posible –y bastante frecuente– utilizarcomo índice el contenido de una variable. Elcomo índice el contenido de una variable. Elmodo de hacerlo sería:modo de hacerlo sería:$a[$ind]=$a[$ind]=valorvalor• En este caso, sea cual fuere el valor de laEn este caso, sea cual fuere el valor de lavariablevariable $ind$ind, el nombre de la variable, el nombre de la variablenuncanunca se pone entre comillas.se pone entre comillas.
  40. 40. Arrays UnidimensionalesArrays Unidimensionales<< Escalares y Asociativos >><< Escalares y Asociativos >>$a[0]=“Domingo” $a[“Primero”]=“Domingo”
  41. 41. Arrays BidimensionalesArrays BidimensionalesArrays EscalaresArrays Escalares• Los elementos de unLos elementos de un arrayarray bidimensionalbidimensionalescalar pueden escribirse usando una deescalar pueden escribirse usando una deestas sintaxis:estas sintaxis:$a[][]=$a[][]=valor óvalor ó $a[xx][]=$a[xx][]=valorvalor$a[][xx]=$a[][xx]=valor óvalor ó $a[xx][yy]=$a[xx][yy]=valorvalorArrays AsociativoArrays Asociativo• Los elementos de unLos elementos de un arrayarray asociativo seasociativo sepueden escribir usando la siguiente sintaxis:pueden escribir usando la siguiente sintaxis:$a[$a["indice1""indice1"][]["indice2""indice2"]=]=valorvalor
  42. 42. La función ArrayLa función ArrayPor ejemplo:Por ejemplo:$z=array ($z=array (0 => 2,0 => 2,1 => "Pepe",1 => "Pepe",2 => 34.7,2 => 34.7,3 => "34Ambrosio",3 => "34Ambrosio",););producirá igual resultado que:producirá igual resultado que:$z[0]=2;$z[0]=2;$z[1]="Pepe";$z[1]="Pepe";$z[2]=34.7;$z[2]=34.7;$z[3]="34Ambrosio";$z[3]="34Ambrosio";$a= array ($a= array ( índice 0índice 0 =>=> valorvalor, ..... ,, ..... , índice níndice n =>=> valorvalor,);,);
  43. 43. La función ArrayLa función Array• La funciónLa función array()array() permite escribir arrayspermite escribir arraysde cualquier dimensión utilizando la técnicade cualquier dimensión utilizando la técnicadede anidadoanidado. Ejemplo de array escalar:. Ejemplo de array escalar:$z[0][0]=34;$z[0][0]=34;$z[0][1]=35;$z[0][1]=35;$z[0][2]=36;$z[0][2]=36;$z[1][0]=134;$z[1][0]=134;$z[1][1]=135;$z[1][1]=135;$z[1][2]=136;$z[1][2]=136;podríamos hacerlo así:podríamos hacerlo así:$z=array( 0 => array (0 => 34,$z=array( 0 => array (0 => 34,1 => 35,1 => 35,2 => 36,),2 => 36,),1 => array (0 => 134,1 => array (0 => 134,1 => 135,1 => 135,2 =>2 =>136,)136,)););• El anidado sucesivo permitiría generarEl anidado sucesivo permitiría generararraysarrays de cualquier dimensión. Ejemplo dede cualquier dimensión. Ejemplo dearray asociativoarray asociativo::$z["a"]["A"]=34;$z["a"]["A"]=34;$z["a"]["B"]=35;$z["a"]["B"]=35;$z["a"]["C"]=36;$z["a"]["C"]=36;$z["b"]["A"]=134;$z["b"]["A"]=134;$z["b"]["B"]=135;$z["b"]["B"]=135;$z["b"]["C"]=136;$z["b"]["C"]=136;que podría definirse también de esta forma:que podría definirse también de esta forma:$z=array("a" => array ("A" => 34,$z=array("a" => array ("A" => 34,"B" =>"B" =>35,35,"C" =>"C" =>36, ),36, ),"b" => array ("A" =>"b" => array ("A" =>134,134,"B" =>"B" =>135,135,$a= array ($a= array ( índice 0índice 0 =>=> valorvalor, ..... ,, ..... , índice níndice n =>=> valorvalor,);,);
  44. 44. Bibliotecas de funcionesBibliotecas de funciones• Existen muchas bibliotecas de funciones en PHPExisten muchas bibliotecas de funciones en PHP• Algunos ejemplos:Algunos ejemplos:– Funciones de manipulación de cadenasFunciones de manipulación de cadenas– Funciones de fecha y horaFunciones de fecha y hora– Funciones de arraysFunciones de arrays– Funciones de ficherosFunciones de ficheros– Funciones matemáticasFunciones matemáticas– Funciones de bases de datosFunciones de bases de datos– Funciones de redFunciones de red• Algunas bibliotecas requieren la instalación de componentesAlgunas bibliotecas requieren la instalación de componentesadicionalesadicionales• Todas las funciones de biblioteca están comentadas en laTodas las funciones de biblioteca están comentadas en ladocumentación de PHPdocumentación de PHP
  45. 45. Bibliotecas de funcionesBibliotecas de funciones• Funciones de manipulación de cadenasFunciones de manipulación de cadenas– explode()explode()• Divide una cadena en subcadenasDivide una cadena en subcadenas• arrayarray explodeexplode (string separator, string string [, int limit])(string separator, string string [, int limit])– rtrim(), ltrim(), trim()rtrim(), ltrim(), trim()• Eliminan caracteres a la derecha, a la izquierda o porEliminan caracteres a la derecha, a la izquierda o porambos lados de una cadenaambos lados de una cadena• stringstring rtrimrtrim ( string str [, string charlist])( string str [, string charlist])– strstr()strstr()• Busca la primera ocurrencia de una subcadenaBusca la primera ocurrencia de una subcadena– strtolower() / strtoupper()strtolower() / strtoupper()• Convierte una cadena a minúscula / mayúsculaConvierte una cadena a minúscula / mayúscula– strcmp() / strcasecmp()strcmp() / strcasecmp()• Compara dos cadenas con/sin distinción de mayúsculasCompara dos cadenas con/sin distinción de mayúsculas– strlen()strlen()• Calcula la longitud de una cadenaCalcula la longitud de una cadena
  46. 46. Bibliotecas de funcionesBibliotecas de funciones• Funciones de fecha y horaFunciones de fecha y hora– date()date()• Formatea una fecha según un formato dadoFormatea una fecha según un formato dado• Ejemplo:Ejemplo:$fecha = date ("j/n/Y H:i");$fecha = date ("j/n/Y H:i");print ("$fecha");print ("$fecha");Resultado:Resultado:26/9/2005 17:3626/9/2005 17:36– strtotime()strtotime()• Convierte una fecha en unConvierte una fecha en un timestamptimestamp de UNIXde UNIX• Ejemplo:Ejemplo:$fecha = date ("j/n/Y", strtotime(“5 april 2001"));$fecha = date ("j/n/Y", strtotime(“5 april 2001"));print ("$fecha");print ("$fecha");Resultado:Resultado:5/4/20015/4/2001
  47. 47. Bibliotecas de funcionesBibliotecas de funciones• Funciones de arraysFunciones de arrays– array_count_values()array_count_values()• Calcula la frecuencia de cada uno de los elementos de un arrayCalcula la frecuencia de cada uno de los elementos de un array– array_search()array_search()• Busca un elemento en un arrayBusca un elemento en un array– count()count()• Cuenta los elementos de un arrayCuenta los elementos de un array– sort(), rsort()sort(), rsort()• Ordena y reindexa un array (r=decreciente)Ordena y reindexa un array (r=decreciente)– ksort(), krsort()ksort(), krsort()• Ordena por claves un array (r=decreciente)Ordena por claves un array (r=decreciente)
  48. 48. FormulariosFormularios1.1. Acceso a formularios HTML desde PHPAcceso a formularios HTML desde PHP2.2. El formulario de PHPEl formulario de PHP3.3. Subida de ficheros al servidorSubida de ficheros al servidor4.4. Validación de los datos de un formularioValidación de los datos de un formulario
  49. 49. Acceso a formularios desde PHPAcceso a formularios desde PHP• Desde PHP se puede acceder fácilmente a los datosDesde PHP se puede acceder fácilmente a los datosintroducidos desde un formulario HTMLintroducidos desde un formulario HTML• Veámoslo con un ejemplo simpleVeámoslo con un ejemplo simple
  50. 50. Acceso a formularios desde PHPAcceso a formularios desde PHP• Fichero uno.phpFichero uno.php<HTML><HTML><BODY><BODY><FORM ACTION=”dos.php” METHOD=”POST”><FORM ACTION=”dos.php” METHOD=”POST”>Edad: <INPUT TYPE=”text” NAME=”edad”>Edad: <INPUT TYPE=”text” NAME=”edad”><INPUT TYPE=”submit” VALUE=”aceptar”><INPUT TYPE=”submit” VALUE=”aceptar”></FORM></FORM></BODY></BODY></HTML></HTML>• Fichero dos.phpFichero dos.php<HTML><HTML><BODY><BODY><?PHP<?PHPprint (“La edad es: $edad”);print (“La edad es: $edad”);?>?></BODY></BODY></HTML></HTML>
  51. 51. Acceso a formularios desde PHPAcceso a formularios desde PHP
  52. 52. Acceso a formularios desde PHPAcceso a formularios desde PHP• A partir de PHP 4.2.0, el valor por defecto de la directiva de PHPregister_globals es off• Esto tiene una gran importancia sobre los formularios, ya que noes posible acceder a las variables enviadas de la maneraanterior (como variables globales). En su lugar hay que utilizar lavariable predefinida de PHP $_POST, escribiendo$_POST[‘edad’] en lugar de $edad• Se puede poner register_globals = on en el fichero deconfiguración php.ini, pero no es recomendable por motivos deseguridad. Una alternativa que permite hacer mínimos cambiosen el código ya existente es la siguiente:$edad = $_POST[‘edad’];
  53. 53. Acceso a formularios desde PHPAcceso a formularios desde PHP• Fichero uno.php<HTML><BODY><FORM ACTION=”dos.php” METHOD=”POST”>Edad: <INPUT TYPE=”text” NAME=”edad”><INPUT TYPE=”submit” VALUE=”aceptar”></FORM></BODY></HTML>• Fichero dos.php<HTML><BODY><?PHP$edad = $_POST[‘edad’];print (“La edad es: $edad”);?></BODY></HTML>
  54. 54. Acceso a formularios desde PHPAcceso a formularios desde PHP• Acceso a los diferentes tipos de elementos deAcceso a los diferentes tipos de elementos deentrada de formularioentrada de formulario– Elementos de tipo INPUTElementos de tipo INPUT• TEXTTEXT• RADIORADIO• CHECKBOXCHECKBOX• BUTTONBUTTON• FILEFILE• HIDDENHIDDEN• PASSWORDPASSWORD• SUBMITSUBMIT– Elemento SELECTElemento SELECT• Simple / múltipleSimple / múltiple– Elemento TEXTAREAElemento TEXTAREA
  55. 55. Acceso a formularios desde PHPAcceso a formularios desde PHP• TEXTTEXTIntroduzca la cadena a buscar:<INPUT TYPE="text" NAME="cadena" VALUE="valor por defecto"SIZE="20"><?PHP$cadena = $_POST[‘cadena’];print ($cadena);?>
  56. 56. Acceso a formularios desde PHPAcceso a formularios desde PHP• RADIORADIOSexo:<INPUT TYPE="radio" NAME=“sexo" VALUE=“M“ CHECKED>Mujer<INPUT TYPE="radio" NAME=“sexo" VALUE=“H">Hombre<?PHP$sexo = $_POST[‘sexo’];print ($sexo);?>
  57. 57. Acceso a formularios desde PHPAcceso a formularios desde PHP• CHECKBOXCHECKBOX<INPUT TYPE="checkbox" NAME="extras[]" VALUE="garaje"CHECKED>Garaje<INPUT TYPE="checkbox" NAME="extras[]" VALUE="piscina">Piscina<INPUT TYPE="checkbox" NAME="extras[]" VALUE="jardin">Jardín<?PHP$extras = $_POST[‘extras’];$n = count ($extras);for ($i=0; $i<$n; $i++)print (“$extras[$i]<BR>n”);//foreach ($extras as $extra)//print (“$extra<BR>n”);?>
  58. 58. Acceso a formularios desde PHPAcceso a formularios desde PHP• BUTTONBUTTON<INPUT TYPE="button" NAME=“actualizar"VALUE="Actualizar datos"><?PHP$actualizar = $_POST[‘actualizar’];if ($actualizar)print ("Se han actualizado los datos");?>
  59. 59. Acceso a formularios desde PHPAcceso a formularios desde PHP• FILEFILE<FORM ACTION="procesa.php" METHOD="post“ENCTYPE="multipart/form-data"><INPUT TYPE="file" NAME="fichero"></FORM>
  60. 60. Acceso a formularios desde PHPAcceso a formularios desde PHP• HIDDENHIDDEN<?PHPprint(“<INPUT TYPE=’hidden’ NAME=’username’VALUE=’$usuario’>n”);?><?PHP$username = $_POST[‘username’];print ($username);?>
  61. 61. Acceso a formularios desde PHPAcceso a formularios desde PHP• PASSWORDPASSWORDContraseña: <INPUT TYPE="password" NAME="clave"><?PHP$clave = $_POST[‘clave’];print ($clave);?>
  62. 62. Acceso a formularios desde PHPAcceso a formularios desde PHP• SUBMITSUBMIT<INPUT TYPE="submit" NAME="enviar" VALUE="Enviar datos"><?PHP$enviar = $_POST[‘enviar’];if ($enviar)print ("Se ha pulsado el botón de enviar");?>
  63. 63. Acceso a formularios desde PHPAcceso a formularios desde PHP• SELECT simpleSELECT simpleColor:<SELECT NAME=“color"><OPTION VALUE=“rojo" SELECTED>Rojo<OPTION VALUE=“verde">Verde<OPTION VALUE=“azul">Azul</SELECT><?PHP$color = $_POST[‘color’];print ($color);?>
  64. 64. Acceso a formularios desde PHPAcceso a formularios desde PHP• SELECT múltipleSELECT múltipleIdiomas:<SELECT MULTIPLE SIZE="3" NAME="idiomas[]"><OPTION VALUE="ingles" SELECTED>Inglés<OPTION VALUE="frances">Francés<OPTION VALUE="aleman">Alemán<OPTION VALUE="holandes">Holandés</SELECT><?PHP$idiomas = $_POST[‘idiomas’];$n = count ($idiomas);for ($i=0; $i<$n; $i++)print (“$idiomas[$i]<BR>n”);//foreach ($idiomas as $idioma)//print (“$idioma<BR>n”);?>
  65. 65. Acceso a formularios desde PHPAcceso a formularios desde PHP• TEXTAREATEXTAREAComentario:<TEXTAREA COLS=“50" ROWS=“4" NAME="comentario">Este libro me parece ...</TEXTAREA><?PHP$comentario = $_POST[‘comentario’];print ($comentario);?>
  66. 66. El formulario de PHPEl formulario de PHP• La forma habitual de trabajar con formularios en PHP es utilizar unLa forma habitual de trabajar con formularios en PHP es utilizar unúnico programa que procese el formulario o lo muestre segúnúnico programa que procese el formulario o lo muestre segúnhaya sido o no enviado, respectivamentehaya sido o no enviado, respectivamente• Ventajas:Ventajas:– Disminuye el número de ficherosDisminuye el número de ficheros– Permite validar los datos del formulario en el propio formularioPermite validar los datos del formulario en el propio formulario• Procedimiento:Procedimiento:si se ha enviado el formulario:si se ha enviado el formulario:Procesar formularioProcesar formulariosi no:si no:Mostrar formularioMostrar formulariofsifsi
  67. 67. El formulario de PHPEl formulario de PHP• Esquema de funcionamiento:Esquema de funcionamiento:si se ha enviado el formulario:Procesar formulariosi no:Mostrar formulariofsia) b)– La 1ª vez que se carga la página se muestra el formulario (a)La 1ª vez que se carga la página se muestra el formulario (a)– La 2ª vezLa 2ª vez se procesa el formulario (b)se procesa el formulario (b)
  68. 68. El formulario de PHPEl formulario de PHP• Para saber si se ha enviado el formulario se acude a la variablePara saber si se ha enviado el formulario se acude a la variablecorrespondiente al botón de envío. Si este botón aparece de lacorrespondiente al botón de envío. Si este botón aparece de lasiguiente forma en el formulario HTML:siguiente forma en el formulario HTML:<INPUT TYPE="SUBMIT" NAME="enviar“ VALUE="procesar"><INPUT TYPE="SUBMIT" NAME="enviar“ VALUE="procesar">entonces la condición anterior se transforma en:entonces la condición anterior se transforma en:if (isset($enviar))if (isset($enviar))o bieno bienif ($enviar == “procesar”)if ($enviar == “procesar”)

×