Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Introducción, instalación y uso de PHP

Introducción, instalación y uso de PHP

Anoia PHP Conference

Santiago Lizardo

November 01, 2007
Tweet

More Decks by Santiago Lizardo

Other Decks in Programming

Transcript

  1. Anoia PHP Conference Anoia PHP Conference Igualada, noviembre 2007 Igualada,

    noviembre 2007 Introducción, instalación y uso. Introducción, instalación y uso.
  2. Agenda Agenda ►Un poco de historia Un poco de historia

    ►Características generales Características generales ►Configurar una plataforma PHP Configurar una plataforma PHP ►Configurar un entorno de desarrollo Configurar un entorno de desarrollo ►Anatomía del lenguaje y sintaxis Anatomía del lenguaje y sintaxis ►Extensiones y librerías Extensiones y librerías ►Ejemplo práctico: Portal de ocio Ejemplo práctico: Portal de ocio
  3. ►PHP PHP  Creado por Rasmus Lerford Creado por Rasmus

    Lerford en 1995 en 1995  Inicialmente un conjunto de Inicialmente un conjunto de scripts en Perl scripts en Perl  La versión en C permitía La versión en C permitía acceder a BBDD acceder a BBDD  Código fuente publico Código fuente publico Un poco de historia Un poco de historia
  4. ►PHP PHP  Funcionalidad básica Funcionalidad básica  Variables estilo

    Perl Variables estilo Perl  Embebido en HTML Embebido en HTML  Interpretación de las variables de un formulario Interpretación de las variables de un formulario  Cambio de nombre PHP/FI Cambio de nombre PHP/FI ►P Personal ersonal H Home ome P Page age ►F Forms orms I Interpreter nterpreter Un poco de historia Un poco de historia
  5. ►PHP/FI 2.0 PHP/FI 2.0  Lanzada en noviembre 1997 Lanzada

    en noviembre 1997  Ya tenia una comunidad de miles de usuarios Ya tenia una comunidad de miles de usuarios alrededor del mundo. alrededor del mundo.  50K dominios en todo el mundo (1% Internet) 50K dominios en todo el mundo (1% Internet)  Mucha gente colaborando en el código Mucha gente colaborando en el código  Casi todas sus versiones fueron BETA Casi todas sus versiones fueron BETA Un poco de historia Un poco de historia
  6. ►PHP 3.0 PHP 3.0  Creada en 1997 y publica

    en junio del 1998 Creada en 1997 y publica en junio del 1998  La primera versión que se asemeja a la actual La primera versión que se asemeja a la actual  Creada por Andi Gutmans y Zeev Suraski Creada por Andi Gutmans y Zeev Suraski  Andi, Zeev y Rasmus anunciaron PHP 3 como el Andi, Zeev y Rasmus anunciaron PHP 3 como el sucesor oficial de PHP/FI 2.0 sucesor oficial de PHP/FI 2.0  Creación de ZEND Creación de ZEND  ZEND = ZEND = Ze Zeev + A ev + And ndi i Un poco de historia Un poco de historia
  7. ►PHP 3.0 PHP 3.0  Del corazón a las extensiones

    Del corazón a las extensiones  Normalización de los nombres de funciones y Normalización de los nombres de funciones y constantes. constantes.  Cambio en las siglas del acrónimo PHP Cambio en las siglas del acrónimo PHP  En su pico, fue instalado en el 10% de los En su pico, fue instalado en el 10% de los servidores de Internet. servidores de Internet. Un poco de historia Un poco de historia
  8. ►PHP 4.0 PHP 4.0  1998 se comenzó a desarrollar

    una reescritura 1998 se comenzó a desarrollar una reescritura de PHP, y se hizo publico en mayo del 2000. de PHP, y se hizo publico en mayo del 2000.  Creación del Zend Engine a mediados de 1999 Creación del Zend Engine a mediados de 1999  Características destacables Características destacables ►Soporte para mas servidores Web Soporte para mas servidores Web ►Sesiones (frente a cookies) Sesiones (frente a cookies) ►Buffer de salida Buffer de salida ►Opciones de seguridad Opciones de seguridad  20% del uso en Internet 20% del uso en Internet Un poco de historia Un poco de historia
  9. ►PHP 5.0 PHP 5.0  Lanzado en julio del 2004

    Lanzado en julio del 2004  Incluye el Zend Engine 2.0 Incluye el Zend Engine 2.0  Características principales Características principales ►Nuevo modelo de objetos Nuevo modelo de objetos ►Excepciones Excepciones ►Mas facilidades para trabajar con XML Mas facilidades para trabajar con XML Un poco de historia Un poco de historia
  10. Grandes hitos entres versiones Grandes hitos entres versiones ►PHP 4

    vs PHP 5 PHP 4 vs PHP 5  Type hinting: Forzar el tipo y metodo de un Type hinting: Forzar el tipo y metodo de un parametro. parametro.  Todos los objetos son pasados por referencia. Todos los objetos son pasados por referencia.  Constantes dentro de una clase. Constantes dentro de una clase.  Clases: Abstractas, interfaces, constantes a nivel Clases: Abstractas, interfaces, constantes a nivel de clase, visibilidad de clase, visibilidad  Nuevas extensiónes Nuevas extensiónes ►SimpleXML SimpleXML ►PDO PDO
  11. Grandes hitos entres versiones Grandes hitos entres versiones ►PHP 4

    vs PHP 5 PHP 4 vs PHP 5  Excepciones: Para el control de errores Excepciones: Para el control de errores  Nuevo nivel de error_reporting: E_STRICT Nuevo nivel de error_reporting: E_STRICT ►Detecta código obsoleto Detecta código obsoleto
  12. Grandes hitos entres versiones Grandes hitos entres versiones ►PHP 5

    vs PHP 6 PHP 5 vs PHP 6  Unicode Unicode ►PHP 6 = PHP 5 + UNICODE PHP 6 = PHP 5 + UNICODE ►PHP 5 = PHP 6 – UNICODE PHP 5 = PHP 6 – UNICODE ►UNICODE = PHP 6 – PHP 5 UNICODE = PHP 6 – PHP 5  Namespaces Namespaces  Se quitaran definitivamente Se quitaran definitivamente ►register_globals register_globals
  13. Características de PHP Características de PHP ►Lenguaje de scripting Lenguaje

    de scripting ►Ejecutado en el servidor Ejecutado en el servidor ►Open Source Open Source ►Especialmente diseñado para el desarrollo de Especialmente diseñado para el desarrollo de aplicaciones Web aplicaciones Web  Apto para la línea de comandos Apto para la línea de comandos  Aplicaciones graficas con PHP-GTK Aplicaciones graficas con PHP-GTK ►Combina la programación procedural y la Combina la programación procedural y la programación orientada a objetos. programación orientada a objetos.
  14. ¿Qué puedo hacer con PHP? ¿Qué puedo hacer con PHP?

    ► Aplicaciones Aplicaciones  Web Web  Línea de comando (tareas programadas, cron) Línea de comando (tareas programadas, cron)  Aplicaciones de escritorio: PHP-GTK Aplicaciones de escritorio: PHP-GTK ► En la mayoría de sistemas operativos En la mayoría de sistemas operativos ► En la mayoría de servidores Web En la mayoría de servidores Web ► Generar dinámicamente Generar dinámicamente  HTML HTML  Imágenes Imágenes  PDF PDF  ZIP ZIP
  15. ¿Qué mas puedo hacer con PHP? ¿Qué mas puedo hacer

    con PHP? ►Abstracción de BBDD (PDO y ODBC) Abstracción de BBDD (PDO y ODBC) ►Comunicarse con otros protocolos Comunicarse con otros protocolos ►Procesar textos en distintos formatos Procesar textos en distintos formatos ►Otras funciones (compresión) Otras funciones (compresión)
  16. ¿Qué no puedo hacer con PHP? ¿Qué no puedo hacer

    con PHP? ►Acceder al hardware directamente (memoria Acceder al hardware directamente (memoria RAM, tarjeta gráfica, etc.) RAM, tarjeta gráfica, etc.) ►Programación de aplicaciones 3D Programación de aplicaciones 3D ►Etc… Etc…
  17. ¿Qué no puedo hacer con PHP? ¿Qué no puedo hacer

    con PHP? ►Convertir videos Convertir videos ►Editar audio Editar audio ►Algunas soluciones alternativas: Algunas soluciones alternativas:  Hacer un puente entre PHP y otra tecnología Hacer un puente entre PHP y otra tecnología (ej: Java) (ej: Java)  Escribir una extensión Escribir una extensión  Invocar comandos del sistema operativo Invocar comandos del sistema operativo
  18. Que tipo de código se encuentra Que tipo de código

    se encuentra ►Espaguetti Espaguetti  Poca separación de presentación y lógica Poca separación de presentación y lógica ►Código forzadamente OOP Código forzadamente OOP  Sobre uso de clases y objetos Sobre uso de clases y objetos ►Objetivo: Balancear ambos paradigmas Objetivo: Balancear ambos paradigmas ►Usar patrones de diseño Usar patrones de diseño  MVC MVC
  19. ¿Quién usa PHP? ¿Quién usa PHP? ►Emprendimientos de todos los

    tamaños Emprendimientos de todos los tamaños ►Grandes portales Grandes portales  FaceBook FaceBook  Digg Digg  Wikipedia Wikipedia ►Proyectos Open Source Proyectos Open Source  WordPress WordPress  Drupal Drupal ►Etc. Etc.
  20. PHP respectos a otros lenguajes PHP respectos a otros lenguajes

    ►PHP respecto a Java PHP respecto a Java  Requiere menos recursos del servidor Requiere menos recursos del servidor  La curva de aprendizaje es muy exponencial La curva de aprendizaje es muy exponencial  Sintaxis mas flexible Sintaxis mas flexible  Mas joven Mas joven  Tiempos de desarrollo menores Tiempos de desarrollo menores
  21. Componentes del servidor Componentes del servidor ►Respuesta: LAMP Respuesta: LAMP

    ►L Linux inux ►A Apache pache ►M MySQL ySQL ►P PHP HP
  22. Instalación de apache Instalación de apache ►Compilando su código fuente

    Compilando su código fuente ►Con instaladores automáticos Con instaladores automáticos ►“ “Copiando y pegando” Copiando y pegando”
  23. Configuración del Apache Configuración del Apache ► A traves del

    fichero httpd.conf A traves del fichero httpd.conf  LoadModule php5_module <PATH>/php5apache.dll  AddModule mod_php5.c  DirectoryIndex index.html index.php  DocumentRoot <PATH>  AddType application/x-httpd-php .php .php3 .php4 .phtml  AddType application/x-httpd-php-source .phps  PHPIniDir <PATH>
  24. Instalación de PHP Instalación de PHP ►“ “Copiando y pegando”

    Copiando y pegando” ►Instaladores automáticos Instaladores automáticos
  25. Configuración de PHP Configuración de PHP ► A traves del

    fichero php.ini A traves del fichero php.ini  register_globals=On|Off register_globals=On|Off  extension_dir=<PATH> extension_dir=<PATH>  extension=<FILE.DLL> extension=<FILE.DLL>  include_path=<PATH>;<PATH> ► Modelos a seguir Modelos a seguir  php-dist.ini php-dist.ini  php-recommend.ini php-recommend.ini
  26. Configuración de PHP Configuración de PHP ►short_open_tag = Off ►error_reporting

    = E_ALL & ~E_NOTICE ►display_errors = On ►upload_tmp_dir = "c:\apache\php\uplodadtmp" ►extension=php_mysql.dll ►session.save_path = "c:\apache\php\session"
  27. Herramientas de trabajo Herramientas de trabajo ►Completos IDE Completos IDE

     PHP Development Environment PHP Development Environment  Zend Studio Zend Studio  Zend “Neon” Zend “Neon” ►“ “Simples” editores Simples” editores  VIM VIM  PHPEditor PHPEditor
  28. Estructura de un script PHP Estructura de un script PHP

    ►Combinación de código PHP, HTML, etc… Combinación de código PHP, HTML, etc… ►Opcionalmente, compuesto de uno o mas Opcionalmente, compuesto de uno o mas ficheros ficheros  include (include_once) include (include_once)  require (require_once) require (require_once)
  29. PHP básico PHP básico ►Sintaxis Sintaxis ►Operadores Operadores ►Variables Variables

    ►Constantes Constantes ►Estructuras de control Estructuras de control ►Constructores del lenguaje y funciones Constructores del lenguaje y funciones
  30. Tags de PHP Tags de PHP ►Como PHP fue diseñado

    para ser Como PHP fue diseñado para ser incorporado en el HTML, el interprete incorporado en el HTML, el interprete necesita distinguir entre código PHP y necesita distinguir entre código PHP y etiquetas HTML. etiquetas HTML. ►Los tags mas comunes son: Los tags mas comunes son:  Apertura: <?php Apertura: <?php  Cierre: ?> Cierre: ?>
  31. Tags PHP Tags PHP ►Mientras que el estilo completo es

    el Mientras que el estilo completo es el recomendado, también hay otras opciones recomendado, también hay otras opciones  <script language=“php”></script> <script language=“php”></script>  <% %> <% %>  <? ?> <? ?>
  32. Tags PHP Tags PHP ►Los tags cortos son bastante populares,

    Los tags cortos son bastante populares, pero pueden ser deshabilitados (para evitar pero pueden ser deshabilitados (para evitar problemas con XML) problemas con XML)  <? echo ‘hola’; ?> <? echo ‘hola’; ?>  <?= ‘hola’; ?> <?= ‘hola’; ?> ►Ambos juegos de tags pueden ser Ambos juegos de tags pueden ser deshabilitados usando la directiva deshabilitados usando la directiva short_open_tag en el php.ini short_open_tag en el php.ini
  33. Tags PHP Tags PHP ►Conclusión: Usa los tags largos para

    Conclusión: Usa los tags largos para asegurar que tu aplicación será fácilmente asegurar que tu aplicación será fácilmente portable a múltiples servidores u opciones portable a múltiples servidores u opciones de configuración. de configuración.
  34. Comentarios Comentarios ►Los buenos programadores comentan su Los buenos programadores

    comentan su código, PHP permite varias formas de código, PHP permite varias formas de hacerlo: hacerlo:  // esta es una línea // esta es una línea  # Esta también # Esta también  /* /* múltiples líneas múltiples líneas */ */
  35. Variables Variables ►Las variables proveen un contenedor de Las variables

    proveen un contenedor de datos. datos. ►Reglas para nombrar una variable Reglas para nombrar una variable  Pueden solo contener letras, números o _ Pueden solo contener letras, números o _  Deben comenzar con una letra o _ Deben comenzar con una letra o _
  36. Variables Variables ►Aunque las variables de PHP son de tipo

    Aunque las variables de PHP son de tipo aparentemente indefinido son almacenadas aparentemente indefinido son almacenadas y manejadas en uno de los tipos internos de y manejadas en uno de los tipos internos de PHP PHP  Escalares: boolean, string, integer, float Escalares: boolean, string, integer, float  Compuestos: array, object Compuestos: array, object  Tipos especiales: resource, null Tipos especiales: resource, null
  37. Tipos escalares Tipos escalares ►Strings: Un string es una cadena

    de Strings: Un string es una cadena de caracteres. caracteres. ►Cada carácter ocupa un byte de memoria. Cada carácter ocupa un byte de memoria. Por esto PHP no tiene soporte para juegos Por esto PHP no tiene soporte para juegos de caracteres de múltiples bytes. de caracteres de múltiples bytes. ►Esto cambia con PHP 6. Esto cambia con PHP 6. ►No hay limites en la longitud. No hay limites en la longitud.
  38. Strings Strings ►Las cadenas de texto pueden ser encerradas Las

    cadenas de texto pueden ser encerradas de tres maneras. de tres maneras.  ‘’ – ‘’ – Comillas simples, estas cadenas son Comillas simples, estas cadenas son mostradas tal cual son mostradas tal cual son  “” – “” – Comillas dobles, variables y secuencias de Comillas dobles, variables y secuencias de escape son reemplazadas por su valor escape son reemplazadas por su valor
  39. Strings Strings ►Sintaxis HEREDOC Sintaxis HEREDOC ►Similar a las comillas

    dobles, pero permite Similar a las comillas dobles, pero permite múltiples líneas, y no necesita proteger las múltiples líneas, y no necesita proteger las comillas. comillas. echo <<<TEST echo <<<TEST Hola mundo. Hola mundo. Esto es “HEREDOC”. Esto es “HEREDOC”. TEST; TEST;
  40. Enteros Enteros ►Números sin decimales. Números sin decimales. ►Pueden ser

    especificados en distintas bases Pueden ser especificados en distintas bases  Octal Octal  Hexadecimal Hexadecimal
  41. Flotantes Flotantes ►Pueden usarse para representar valores Pueden usarse para

    representar valores muy grandes o pequeños. muy grandes o pequeños.  A = 1.123 A = 1.123  B = 1.2e3 (1200) B = 1.2e3 (1200)  C = 7e-10 (0.00000007) C = 7e-10 (0.00000007)
  42. Boolean Boolean ►Contienen Contienen  true = verdadero != 0

    true = verdadero != 0  false = falso = 0 false = falso = 0 ►TRUE y FALSE son case-insensitive TRUE y FALSE son case-insensitive
  43. Arrays (conjuntos) Arrays (conjuntos) ►Pueden contener cualquier tipo de variable,

    Pueden contener cualquier tipo de variable, incluso otros arrays incluso otros arrays ►Tipos de índice Tipos de índice  Numéricos Numéricos  Asociativos Asociativos ►Se pueden usar como pilas o colas Se pueden usar como pilas o colas ►Decenas de funciones para operar Decenas de funciones para operar
  44. Arrays (conjuntos) Arrays (conjuntos) ►Fáciles de iterar Fáciles de iterar

    ►Frecuentemente utilizados en BBDD Frecuentemente utilizados en BBDD ►Numericos Numericos  Tienen un índice numero, auto asignado, o Tienen un índice numero, auto asignado, o asignado por el usuario asignado por el usuario ►Asociativos Asociativos  Tienen un índice de tipo string; similar a un Tienen un índice de tipo string; similar a un hashmap hashmap
  45. Arrays Arrays ► Variables del tipo Array, disponibles Variables del

    tipo Array, disponibles automáticamente en scripts PHP automáticamente en scripts PHP  $GLOBALS $GLOBALS  $_FILES $_FILES  $_SERVER $_SERVER  $_ENV $_ENV  $_REQUEST $_REQUEST  $_GET $_GET  $_POST $_POST  $_COOKIE $_COOKIE  $_SESSION $_SESSION
  46. Arrays Arrays ►Operaciones típicas con arrays Operaciones típicas con arrays

     Construcción Construcción  Agregar valores Agregar valores  Iterar Iterar  Ordenar Ordenar
  47. Funciones Funciones ►No tiene valor de retorno en su declaración

    No tiene valor de retorno en su declaración  Facilitan el mantenimiento Facilitan el mantenimiento  Evitan la duplicación de código Evitan la duplicación de código ►Aceptan numero variable de parámetros Aceptan numero variable de parámetros ►Pueden ser definidas dentro de otra función Pueden ser definidas dentro de otra función
  48. Funciones varias Funciones varias ►Funciones de fecha y hora Funciones

    de fecha y hora  Date Date ►Para trabajar con strings Para trabajar con strings  Strlen Strlen  Substr Substr ►Envio de emails Envio de emails  mail mail
  49. Funciones varias Funciones varias ► Funciones de lectura/escritura ficheros Funciones

    de lectura/escritura ficheros  File_put_contents File_put_contents  File_get_contents File_get_contents ► Tambien se puede abrir como recurso Tambien se puede abrir como recurso  Fopen Fopen  fwrite fwrite  Fclose Fclose ► Listado de directorios/ficheros Listado de directorios/ficheros  Opendir Opendir  readdir readdir  closedir closedir
  50. Clases y objetos Clases y objetos ►Permiten combinar datos y

    funciones en un Permiten combinar datos y funciones en un sola unidad lógica sola unidad lógica ►A partir de la versión 5 de PHP aparecen: A partir de la versión 5 de PHP aparecen:  Clases abstractas Clases abstractas  Interfaces Interfaces  Type hinting Type hinting
  51. OOP OOP ►Incluyen visibilidad de propiedades y Incluyen visibilidad de

    propiedades y métodos métodos ►Public: La propiedad o método puede ser accedida Public: La propiedad o método puede ser accedida desde cualquier sitio. desde cualquier sitio. ►Private: La propiedad o método solo puede ser Private: La propiedad o método solo puede ser accedida por su clase accedida por su clase ►Protected: La propiedad o método solo puede ser Protected: La propiedad o método solo puede ser accedida por la clase o sus derivadas accedida por la clase o sus derivadas ►Final: la propiedad o método no puede ser Final: la propiedad o método no puede ser sobrescrita sobrescrita
  52. Clases y objetos Clases y objetos ►Funciones especiales Funciones especiales

     __construct __construct  __destruct __destruct  __toString __toString  __sleep __sleep  __wakeup __wakeup  __call __call  __get __get  __set __set
  53. Excepciones Excepciones ►Método unificado para el tratamiento de Método unificado

    para el tratamiento de errores errores ►Estructura Estructura  Throw Throw  try try  catch catch
  54. Resource Resource ►Un recurso es una variable especial que Un

    recurso es una variable especial que representa un identificador de mas bajo representa un identificador de mas bajo nivel (como un fichero, una conexión a nivel (como un fichero, una conexión a bbdd, etc) bbdd, etc) ►La función que crea una variable de tipo La función que crea una variable de tipo resource, generalmente ofrece otra función resource, generalmente ofrece otra función que libera los recursos consumidos por esa que libera los recursos consumidos por esa variable. variable.
  55. null null ►Es una variable que no tiene tipo ni

    valor Es una variable que no tiene tipo ni valor ►No es lo mismo que el entero 0 o que la No es lo mismo que el entero 0 o que la cadena vací cadena vací
  56. Constantes Constantes ►Constantes permiten crear un identificador Constantes permiten crear

    un identificador especial que no puede ser cambiado una especial que no puede ser cambiado una vez creado vez creado ►Función define() Función define()
  57. Otros operadores Otros operadores ►@ @  Elimina los mensajes

    de error de la expresión Elimina los mensajes de error de la expresión ►`` (backticks) `` (backticks)  Ejecutan el contenido como un comando de Ejecutan el contenido como un comando de shell shell ►Instanceof Instanceof  Devuelve true si la variable es de tipo class y es Devuelve true si la variable es de tipo class y es una subclase o subinterface una subclase o subinterface
  58. Operadores Operadores ►Backtick (``) Backtick (``)  Puede ser peligroso

    porque se ejecuta con los Puede ser peligroso porque se ejecuta con los mismos permisos que el webserver. mismos permisos que el webserver. ►Instanceof Instanceof  Es útil para verificar que la variable pasada Es útil para verificar que la variable pasada como parámetro se corresponde con el tipo como parámetro se corresponde con el tipo esperado. esperado.
  59. Estructuras de control Estructuras de control ►If If ►Switch Switch

    ►While While ►Do While Do While ►For For ►Foreach Foreach
  60. Estructuras de control Estructuras de control ►Exit: detiene la ejecución

    del script. Exit: detiene la ejecución del script. ►Puede, opcionalmente, devolver un mensaje Puede, opcionalmente, devolver un mensaje o código de error. o código de error. exit(-1); exit(-1); exit(‘algo fue mal’); exit(‘algo fue mal’);
  61. GET y POST GET y POST ►GET GET  Información

    enviada como parámetros en la Información enviada como parámetros en la URL URL  Limite del tipo y longitud de datos enviados Limite del tipo y longitud de datos enviados ►POST POST  Datos enviados junto a los encabezados Datos enviados junto a los encabezados  Información oculta Información oculta  Permite subir contenidos “multipart” Permite subir contenidos “multipart”
  62. Programación Web Programación Web ►Supervariables Supervariables  _GET _GET 

    _POST _POST  _FILES _FILES  _REQUEST: GET/POST/COOKIE _REQUEST: GET/POST/COOKIE
  63. Subida de ficheros Subida de ficheros ►Subiendo ficheros a través

    de un formulario Subiendo ficheros a través de un formulario  Variables involucradas Variables involucradas ►$_POST $_POST ►$_FILES $_FILES  Funciones a utilizar Funciones a utilizar ►is_uploaded_file is_uploaded_file ►move_uploaded_file move_uploaded_file
  64. Subida de ficheros Subida de ficheros ►Información que contiene la

    variable Información que contiene la variable $_FILES $_FILES  $_FILES[‘fichero’][‘name’] $_FILES[‘fichero’][‘name’]  $_FILES[‘fichero’][‘type’] $_FILES[‘fichero’][‘type’]  $_FILES[‘fichero’][‘size’] $_FILES[‘fichero’][‘size’]  $_FILES[‘fichero’][‘tmp_name’] $_FILES[‘fichero’][‘tmp_name’]  $_FILES[‘fichero’][‘error’] $_FILES[‘fichero’][‘error’]
  65. Trabajar con sesiones Trabajar con sesiones ►Permiten recordar la sesión

    de un usuario Permiten recordar la sesión de un usuario ►Posible de almacenar Posible de almacenar  En el sistema de fichero En el sistema de fichero  En memoria En memoria  En la URL En la URL  En cookies En cookies
  66. Trabajar con sesiones Trabajar con sesiones ►Session_name Session_name ►Session_start Session_start

    ►Array $_SESSION Array $_SESSION ►Session_destroy Session_destroy
  67. Trabajar con BBDD Trabajar con BBDD ►Funciones especificas para cada

    bbdd Funciones especificas para cada bbdd ►Ejemplo MySQL Ejemplo MySQL  (des)Conectarse: mysql_connect/mysql_close (des)Conectarse: mysql_connect/mysql_close  Consultas: mysql_query Consultas: mysql_query  Recuperar registros: Recuperar registros: ►Mysql_fetch_object Mysql_fetch_object ►Mysql_fetch_assoc Mysql_fetch_assoc ►Mysql_fetch_row Mysql_fetch_row
  68. Extensiones mas conocidas Extensiones mas conocidas ►Para compresión/descompresion Para compresión/descompresion

     php_zip.dll php_zip.dll  php_bzip2.dll php_bzip2.dll  php_rar.dll php_rar.dll ►Para trabajar con BBDD Para trabajar con BBDD  php_pdo.dll php_pdo.dll  php_pdo_*.dll (* = mysql, pgsql, oracle) php_pdo_*.dll (* = mysql, pgsql, oracle)
  69. Extensiones mas conocidas Extensiones mas conocidas ►Para trabajar con imágenes

    Para trabajar con imágenes  php_gd2.dll php_gd2.dll ►Para internacionalizar aplicaciones Para internacionalizar aplicaciones  Php_gettext.dll Php_gettext.dll
  70. Extensiones de PHP Extensiones de PHP ►PDO PDO  PHP

    Data Objects PHP Data Objects  Para conectarse a diferentes BBDD a través de Para conectarse a diferentes BBDD a través de una única interfaz una única interfaz  API orientada a objetos API orientada a objetos  Similar al JDBC de Java Similar al JDBC de Java
  71. Librerías y frameworks Librerías y frameworks ►PEAR PEAR ►Zend Framework

    Zend Framework ►Struts4php Struts4php ►Phpmvc Phpmvc ►Molins Framework Molins Framework
  72. JPGraph JPGraph ►Permite generar gráficos estadísticos Permite generar gráficos estadísticos

    ►Orientada a objetos Orientada a objetos ►Gratuita Gratuita ►Fácilmente configurable Fácilmente configurable ►Multitud de gráficos Multitud de gráficos