166
1 PHP PHP HiperText Preprocesor

Curso Php

Embed Size (px)

DESCRIPTION

Conceptos básicos y principales estructuras que se utilizan en php y MySQL

Citation preview

  • 1

    PHP

    PHP HiperText Preprocesor

  • 2

    Contenidos Introduccin

    Sintaxis bsica

    Variables, tipos y operadores

    Variables predefinidas

    Constantes

    Estructuras de Control

    Incluir cdigo de ficheros externos

    Funciones

    Accediendo a MySQL

    Cookies

    Sesiones

    Ficheros y directorios

    Clases y Objetos (PHP 5)

  • 3

    Introduccin Que es PHP?

    Lenguaje de programacin de alto nivel

    Empotrado en pginas HTML

    Ejecutado en servidor

    Software libre

  • 4

    Introduccin (II) Que puedo hacer con PHP?

    Scripts del lado del servidor

    Scripts en linea de comandos

    Aplicaciones con interfaz grfica PHP-GTK

  • 5

    Introduccin (III) Scripts del lado del servidor

    HTML + PHP

    Procesa PHP

    BD

    LDAP

    ...

    /

    Genera HTML

    Cliente

    Servidor

  • 6

    Introduccin (III) Scripts del lado del servidor

    HTML + PHP

    Procesa PHP

    Servidor BD:MySQL

    c:\Genera HTML

    Navegador(Firefox)

    Servidor Web : Apache2

  • 7

    Introduccin Requisitos

    PHP5 Servidor Web : apache2 Servidor BD : mysql Editor : netbeans

    Todo en 1 : XAMPP (Apache + MySQL + PHP) Netbeans

    Software libre !!!

  • 8

    Introduccin Instalacin en windows

    XAMPP : http://www.apachefriends.org/es/xampp.html Installer : Instalacin por defecto : C:\xampp Raiz de documentos : c:\xampp\htdocs Configuracin php : c:\xampp\apache\bin\php.ini Configuracin apache :

    C:\xampp\apache\conf\httpd.conf Configuracin mysql : C:\xampp\mysql\bin\my.cnf

    Navegador : http://localhost MySQL : http://localhost/phpmyadmin

    http://www.apachefriends.org/es/xampp.htmlfile:///c:/xampphttp://localhost/
  • 9

    Introduccin Instalacin en windows (II) Editor de scripts php

    Editor de texto plano IDE (Entorno de desarrollo integrado)

    Editor Resaltado de sintaxis Plantillas html Debuger Proyectos ...

  • 10

    Introduccin Instalacin en windows (II)

    IDE : Netbeans, Eclipse, Zend Studio

    NetBeans

    http://www.netbeans.org/downloads/index.html

    PHP + Spanish + Windows

    http://www.netbeans.org/downloads/index.html
  • 11

    Introduccin Primer proyecto php en netbeans

    Archivo Proyecto nuevo Categora PHP Proyectos PHP application Project Name Nombre_del_proyecto Sources folder

    C:\xampp\htdocs\Nombre_del_proyecto Run as Local web site Project URL http://localhost/Nombre_del_proyecto

    http://localhost/Nombre
  • 12

    Introduccin Primer proyecto php en netbeans (II)

    Nombre del projecto : PhpProject1

  • 13

    Introduccin Primer proyecto php en netbeans (II)

    Ejecutar proyecto: Ejecutar Set project configuration Personalizar

    Ejecutar proyecto

  • 14

    Sintaxis Bsica (I) Cdigo PHP empotrado en documentos HTML Instrucciones entre etiquetas:

    ...

    recomendado : XHTML XML

  • 15

    Sintaxis Bsica (II) Ejemplo

    Ttulo de la pgina

  • 16

    Sintaxis Bsica (III) Scripts PHP :

    Serie de sentencias / instrucciones Ejecutadas secuencilmente Datos en variables Estructuras de control Funciones Clases (POO)

  • 17

    Sintaxis Bsica (IV) Los espacios/tabulaciones/saltos de linea entre

    las instrucciones, no afectan al comportamiento Las siguientes instrucciones tienen el mismo resultado:

  • 18

    Sintaxis Bsica (V) Las instrucciones siempre se finalizan con

    punto y coma

  • 19

    Sintaxis Bsica (VI) Comentarios : Texto que no se ejecuta

    Linea : //

    Bloque: /* ... */

    Estos comentarios produciran un error

  • 20

    Variables Los datos se almacenan en variables

    Las variables se representan con un signo de dolar seguido por el nombre de la variable

    Sensible a maysculas/minsculas El nombre de la variable :

    Empezar con letra o _ (guin bajo) Contener : letras nmeros _

    CORRECTO INCORRECTO

  • 21

    Operadores de Asignacin Asignacin : =

    Permite asignar valores a variables El operando de la izquierda recibe el valor de la

    expresin de la derecha

    94

  • 22

    Variables (II) A diferencia de otros lenguajes PHP es un lenguaje no

    tipado El programador no decide el tipo de una variable El tipo lo decide PHP en tiempo de ejecucin dependiendo

    del contexto

  • 23

    Variables (III) Para forzar variables

    settype($variable,tipo) Moldear variables (casting)

    Mostrar tipo variable var_dump($variable);

    Mostrar contenido variable print_r($variable) echo printf

  • 24

    Variables (IV) Mostrar contenido variables : ejemplos

  • 25

    Variables (V) Mostrar contenido variables : Saltos de linea

    Fuente HTML :

    123Pgina en construccin

    Navegador:

    123Pgina en construccin

  • 26

    Variables (VI) Mostrar contenido variables : Saltos de linea (II)

    Fuente HTML :

    123
    Pgina en construccin

    Navegador:

    123Pgina en construccin

  • 27

    Variables (VII) Mostrar contenido variables : Saltos de linea (III)

    Fuente HTML :

    123Pgina en construccin

    Navegador:

    123Pgina en construccin

  • 28

    Pasar datos entre scripts HTTP : protocolo sin estado El valor de las variables existe durante la vida del

    script (pgina) Pasar datos entre scripts (pginas)

    Formularios Enlaces GET Cookies Sesiones

  • 29

    Obtener variables de formularios Metodo : POST

  • 30

    Obtener variables de formularios Metodo : GET

    logon

  • 31

    Tipos Tipos

    Escalares Enteros Coma flotante Cadenas Booleanos

    Compuestos Matrices Objetos

    Null Resource

  • 32

    Tipos : Enteros Enteros (Integer)

    Nmeros enteros del conjunto Z = {...,-2,1,0,1,2,...}

    Tamao depende de la plataforma

    Usual : 32 bits con signo

    Z = {-2147483647,-2147483646,...,-1,0,1,2147483646,2147483647}

    Si se desborda un entero ser interpretado como float (numero de coma flotante)

  • 33

    Tipos : Enteros (II) Enteros (Integer)

    Declarando variables de enteros:

    Desbordamiento de enteros :

  • 34

    Tipos : Reales Nmeros de coma flotante (Float)

    Nmeros reales Tambin conocidos como doble o real Tamao depende de la plataforma Usual : ~1.8e308

  • 35

    Tipos : Reales (II) Float : Imprimir variables de tipo float

    echo

    printf

  • 36

    Operadores aritmticos Podemos realizar operaciones aritmticas

    El operador ' / ' devuelve un valor flotante a menos que los dos operandos sean enteros y los nmeros sean divisibles sin residuos

    Operacion Operador Ejemplo

    suma + $total = $precio + $iva;

    resta - $oferta = $total - $descuento;

    multiplicacion * $iva = $precio*0.16;

    division / $media = $suma / $total;

    mdulo (resto) % $resto = $total % 5;

    negacin - $a = 10*-$b;

  • 37

    Operadores aritmticos (II) El orden de ejecucin :

    * / % + - Izquierda a derecha Parntesis : orden de ejecucin

  • 38

    Operadores aritmticos (III) Ejemplos :

  • 39

    Operadores aritmticos (IV) Operadores de incremento/decremento :

    Operacion Ejemplo EjemploPre-incremento ++$a Incrementa $a en uno, y luego devuelve $a.Post-incremento $a++ Devuelve $a, y luego incrementa $a en uno.Pre-decremento --$a Decrementa $a en uno, luego devuelve $a.Post-decremento $a-- Devuelve $a, luego decrementa $a en uno.

  • 40

    Tipos : Cadenas Cadenas (String)

    Secuencia de caracteres Antes de PHP 6 : un carcter -> un byte 256 tipos de caracteres diferentes Diferentes maneras de especificar Caracteres de escape No hay limite de tamao

  • 41

    Tipos : Cadenas Cadenas (String) : Definicin de cadenas

    Comillas simples : ' Imprimir comilla simple:

    \' Para imprimir barra invertida

    \\

  • 42

    Tipos : Cadenas Cadenas (String) : Definicin de cadenas

    Comillas dobles : Esto es una cadena Caracteres escapados

    \n : Imprime una linea nueva \t : Imprime una tabulacin horizontal \\ : Imprime una barra invertida \$ : Imprime un signo de dlar \ : Imprime una comilla doble

    Los nombres de las variables sern expandidos

  • 43

    Tipos : Cadenas Cadenas : Comillas dobles

    \n !=

  • 44

    Tipos : Cadenas Cadenas : Expansin de variables

    Las variables son interpretadas

  • 45

    Tipos : Cadenas Cadenas : Heredoc

    Definir cadenas largas Uso similar a comillas dobles Caracteres de escape Expansin de variables

  • 46

    Tipos : Cadenas Cadenas : Heredoc

    Expansin de variables

  • 47

    Tipos : Cadenas Cadenas : Acceso a caracteres

    Indices [ 0 .. longitud_cadena -1]

  • 48

    Operadores de cadena Concatenacin ' . '

    Asignacin sobre concatenacin ' .= '

  • 49

    Tipos : Booleanos Booleanos :

    2 valores : true o false || TRUE o FALSE 0,0.0, , '',0, null,array vacio = false Cualquier otro valor = true

  • 50

    Operadores lgicos Operadores

    Operacion Nombre Resultados

    $a and $b Y TRUE si tanto $a como $b son TRUE.$a or $b O TRUE si cualquiera de $a o $b es

    TRUE.$a xor $b XOR TRUE si $a o $b es TRUE, pero no

    ambos.

    ! $a No TRUE si $a no es TRUE.$a && $b Y TRUE si tanto $a como $b son TRUE.$a || $b O TRUE si cualquiera de $a o $b es

    TRUE.

  • 51

    Tipos : Array Matrices (Array)

    Serie de pares de clave/valor (con un orden) No puede haber claves repetidas Multidimensionales Por defecto : claves numricas consecutivas Claves : integer o string Valor : cualquier tipo de PHP Mediante los arrays podemos agrupar datos /

    variables en una sola variable Los valores no tienen por que ser del mismo tipo

  • 52

    Tipos : Array Matrices (Array) : Definir array

    Podemos definir/crear arrays de diferentes maneras

    De las dos maneras tendramos la siguiente estructura (en una sola variable!)

    ndice 0 1 2 3 4Valor lunes martes mircoles jueves viernes

  • 53

    Tipos : Array Matrices (Array) : Definir array

    Podemos especificar los ndices directamente

    Los ndices no tiene por que ser consecutivos

    ndice 0 1Valor sbado domingo

  • 54

    Tipos : Array Matrices (Array) : Definir array

    Los ndices numricos no se reordenan

    Aunque disponemos de herramientas para hacerlo

    ndice 0 2 1Valor ainhoa ane iaki

  • 55

    Tipos : Array Matrices (Array) : Aadir elementos al array

    Podemos aadir elementos al array sin especificar el ndice

    De esta manera se aadirn al final del array y su indice ser el mayor indice del array incrementado en uno

    ndice 0 1 2 3Valor invierno primavera verano otoo

  • 56

    Tipos : Array Matrices (Array) : Acceder a los valores

    $laborables = array(lunes,martes,mircoles,jueves,viernes);echo $laborables;

    $estaciones[0]=invierno;$estaciones[1]=primavera;$estaciones[]=verano; $estaciones[]=otoo;

    print_r($estaciones);

    Array

    echo $laborables[2];

    mircoles

    Array ( [0] => invierno [1] => primavera [2] => verano [3] => otoo )

  • 57

    Tipos : Array Matrices (Array) : Array asociativo

    Los ndices no tienen por que ser numricos

  • 58

    Tipos : Array Matrices (Array) : Array asociativo

    Generalmente con BD => Asociativos

    Nombre AinaraApelido EtxeberriaDni 99999999K

  • 59

    Tipos : Array Matrices (Array) : Array multidimensional

    ndice enero febrero .... diciembreValor mikel

    ainhoa

    ane

    ainaraeneko

  • 60

    Tipos : Array Matrices (Array) : Array multidimensional

  • 61

    Tipos : Array Matrices (Array) : Array multidimensional

  • 62

    Operadores de matrices Operadores

    Operacion Nombre Resultados$a + $b Unin Unin de $a y $b.$a == $b Igualdad TRUE si $a y $b tienen las mismas parejas llave/valor.$a === $b Identidad TRUE si $a y $b tienen las mismas

    parejas llave/valor en el mismo ordeny de los mismos tipos.

    $a!=$b No-igualdad TRUE si $a no es igual a $b.$a $b No-igualdad TRUE si $a no es igual a $b.$a !== $b No-identidad TRUE si $a no es idntico a $b.

  • 63

    Tipos : NULL Variable que no tiene valor Posibles valor : null || NULL

  • 64

    Tipos : Resource Contiene una referencia a un recurso externo Los recursos son usados por funciones

    especiales Algunos recursos : mysql, ldap,gd ... Mysql :

    Recurso : mysql link Crear recurso : $con = mysql_connect('host' ...) mysql_query(SELECT ..., $con); ....

  • 65

    Variables predefinidas Variables del servidor

    $_SERVER PHP_SELF SERVER_ADDR SERVER_ADDR DOCUMENT_ROOT QUERY_STRING REMOTE_ADDR HTTP_HOST ...[http://es2.php.net/reserved.variables]

  • 66

    Constantes Definicin de constantes

    define($nombre,$valor) $nombre (string) : nombre de la constante $valor : Valor de la constante

  • 67

    Estructuras de control Controlar la ejecucin de instrucciones Decidir en tiempo de ejecucin que sentencias

    ejecutar u omitir Crear bloques repetitivos En tiempo de ejecucin / contexto

  • 68

    Estructuras de control : IF Permite la ejecucin condicional de sentencias Si la condicin se cumple en tiempo de

    ejecucin : se ejecuta un bloque de cdigo predeterminado

    Las tabulaciones no son necesarias pero si recomendables para la legibilidad el cdigo

  • 69

    Estructuras de control : IF expr : cualquier cosa que tiene un valor

    Los literales son expresiones '5' es una expresin con el valor 5

    Las variables son expresiones $a es una expresin con el valor 5

  • 70

    Estructuras de control : IF expr : cualquier cosa que tiene un valor

    Las comparaciones son una expresion con valores booleanos (true o false ) (verdadero o falso)

    $a > 0 es una expresin con valor TRUE

  • 71

    Estructuras de control : IF expr se evala a su valor condicional (boolean)

    Si la expresin se evala como true se ejecuta la sentencia

    Si la expresin se evala como false no se ejecuta la sentencia

  • 72

    Operadores de comparacin Operadores

    Operacion Nombre Resultados$a == $b Igual TRUE si $a es igual a $b.

    $a === $b Idntico TRUE si $a es igual a $b, y son del mismo tipo.$a != $b Diferente TRUE si $a no es igual a $b.$a $b Diferente TRUE si $a no es igual a $b.$a !== $b No idnticos TRUE si $a no es igual a $b.TRUE si $a no es

    igual a $b, o si no son del mismo tipo.$a < $b Menor que TRUE si $a es escrictamente menor que $b.$a > $b Mayor que TRUE si $a es estrictamente mayor que $b.

    $a = $b Mayor o igual que TRUE si $a es mayor o igual que $b.

  • 73

    Operadores de comparacin Las expresiones de comparacin siempre

    devuelven un valor boolean

  • 74

    Estructuras de control : IF Comparacin

  • 75

    Estructuras de control : IF If : Bloques

    Podemos agrupar bloque de instrucciones mediante { }

  • 76

    Estructuras de control : IF If : Anidar condiciones

    Podemos anidar indefinidamente condiciones

  • 77

    Estructuras de control : IF If : Condiciones de mltiples expresiones

    Operadores lgicos

  • 78

    Estructuras de control : IF If : Condiciones de mltiples expresiones

  • 79

    Estructuras de control : IF ... ELSE

    else : Ejecutar sentencias en caso de que la expresin evaluada en el if sea igual a false

  • 80

    Estructuras de control : ELSEIF elseif : combinacin if y else

    Se ejecuta si if = false y se da otra condicin nueva

  • 81

    Estructuras de control : ELSEIF elseif : No hay limite de sentencias elseif

    Solo una se ejecuta

  • 82

    Estructuras de control : SWITCH switch : Comparar la misma variable

    Similar a bloque if elseif else ( != 1 variable)

  • 83

    Estructuras de control : SWITCH switch : sentencia break

    Las sentencias se empiezan a ejecutar desde una sentencia case que se cumpla hasta el final del switch o hasta una sentencia break

    i=1

    i=1i=2

  • 84

    Estructuras de control : SWITCH switch : caso default

    ~ else : En caso de que no se cumpla ningn 'case'

  • 85

    Estructuras de control : Bucles Estructuras repetitivas

    El cdigo se ejecuta mientras se de una

    condicin

    Diferentes tipos de bucles

    Diferentes sentencias

  • 86

    Estructuras de control : Bucles while

    Tipo mas simple while (expr) sentencia Si la condicin nunca obtiene el valor false

    Bucle infinito !!! Mltiples sentencias : { }

  • 87

    Estructuras de control : Bucles while

  • 88

    Estructuras de control : Bucles do .. while

    Similar a while : La condicin se evala al final

  • 89

    Estructuras de control : Bucles For

    for (expr1 ; expr2 ; expr3 ) sentencia expr1 : Se ejecuta una sola vez al comienzo del bucle expr2 : Se evala en el comienzo de cada iteracin

    true : el bucle continua ejecutndose false : termina la ejecucin del bucle

    expr3 : Se ejecuta al final de cada iteracin

  • 90

    Estructuras de control : Bucles For

  • 91

    Estructuras de control : Bucles Foreach

    Fcil iteracin sobre matrices foreach(expresion_array as $value) sentencia foreach(expresion_array as $key => $value) sentencia

  • 92

    Estructuras de control : Bucles Foreach

    Nombre:JonFechadenacimiento:1982-10-25Direccin:francia4

  • 93

    Estructuras de control : Bucles Foreach

  • 94

    Estructuras de control : break break : sentencia para salir del bucle

  • 95

    Estructuras de control : continue continue : sentencia para terminar iteracin

  • 96

    Estructuras de control Sintaxis alternativa

    if , while , for , switch abrir llave = dos puntos (:) cerrar llave =

    endif; endwhile; endfor; endswitch;

    Aesiguala5

  • 97

    Incluir cdigo de ficheros externos Include y require

    Funciones para incluir otros ficheros include ([ruta]nombre fichero); require ([ruta] nombre fichero);

    Si no se encuentra el fichero Include produce un warning (el script continua) Require produce un error fatal (el script NO notinua)

  • 98

    Incluir cdigo de ficheros externos Include y require

    El cdigo se inserta en el lugar donde se encuentra la instruccin include/require

    -37

  • 99

    Incluir cdigo de ficheros externos Include y require

    Si los ficheros no estn al mismo nivel : ruta Podemos incluir desde url

    /var/www/cursos/apuntados/

    -37

    /var/www/cursos/include/

  • 100

    Incluir cdigo de ficheros externos Include_once y require_once

    Mismo funcionamiento que include y require Pero si el fichero ha sido evaluado e incluido no

    vuelve a incluirseFatal error: Cannot redeclare funcion() (previously declared in ... )

    //constante.php

  • 101

    Funciones No repetir cdigo Divide y vencers Funciones especificas Funciones variables mediante parmetros El cdigo no se ejecuta hasta la llamada a la

    funcin Funciones definidas por el usuario Funciones predefinidas (API)

  • 102

    Funciones Funciones : definicin y llamada

    Definicin:

    function nombreDeFuncion (parametros){cuerpo de funcin

    }

    Llamada

    nombreDeFuncion($parametro);

  • 103

    Funciones Funciones : definicin y llamada

  • 104

    Funciones Funciones : en ficheros externos

    BienvenidoGraciasporsuvisita

  • 105

    Funciones Funciones : parmetros

    Podemos pasarle variables a las funciones Lista de variables separadas por comas Los parmetros han de definirse al definir la funcin Si se definen parmetros, hay que pasarle variables

    a la funcin en la llamada

  • 106

    Funciones Funciones : parmetros

    BienvenidojonAdiosjonBienvenidoainhoa

  • 107

    Funciones Funciones : parmetros por defecto

    0104524

  • 108

    Funciones Funciones : mbito de las variables

    25103010

    0//nada

    15//nada

  • 109

    Funciones Funciones : Return

    Las funciones pueden devolver un valor mediante la sentencia return

    Puede devolverse cualquier tipo de valor Solo puede devolverse un valor Podemos devolver mltiples valores dentro de un

    elemento array por ejemplo

  • 110

    Funciones Funciones : Return

    ane

    mikel

    jon

    ainhoa

    roger

  • 111

    Funciones Funciones :

    mikelmillan999999999

    jonguereu686868686

    manuarregi12345678

  • 112

    Funciones Funciones : Parametros por referencia

    Accedemos a la variable por referencia No se crea una copia, accedemos a la variable

    original 12

  • 113

    Funciones predefinidas Redireccionar

    header() : enviar cabeceras Redireccionar a otra pgina

  • 114

    Funciones predefinidas Redireccionar

    header() : No puede haber texto antes de una llamada a header

    No puede haber ningun echo, print ... antes de una llamada a header

  • 115

    Funciones predefinidas Funciones de variables

    printf (string_formateado,$var [,$var]) Imprime strings formateados

    %% : literal '%' %b : Integer binario %c : Integer caracter ASCII %d : Integer decimal con signo %e : Notacin cientfica %u : Integer decimal sin signo %f : Float numero de coma flotante %o : Integer octal %x : Integer hexadedimal

  • 116

    Funciones predefinidas Funciones de variables

    printf (string_formateado,$var [,$var])decimalnum=126binarionum=1111110hexadecimalnum=7efloatnum=126.000000floatnum=126.00asciinum=~cientificonum=1.260000e+2

  • 117

    Funciones predefinidas Funciones de variables

    empty ($variable) Devuelva si la variable existe o no / si est definida o no

    unset ($variable) Destruye la variable Elimina un elemento de un array ( no lo reordena!!!)

  • 118

    Funciones predefinidas Funciones de variables

    is_tipo($variable) Devuelve si la variable es del tipo o no (true || false) is_bool() , is_int(), is_float(), is_string(), is_array() ...

    [http://es2.php.net/manual/es/ref.var.php]

  • 119

    Funciones predefinidas Funciones matemticas

    floor($float) : devuelve el siguiente integer mas pequeo rand($int_min,$int_max) : genera un numero aleatorio sqrt($float) : raiz cuadrada pow($base,$exp) : potencia sin($float) : seno cos($float) : coseno tan($float) : tangente ...

    [http://es2.php.net/manual/es/ref.math.php]

  • 120

    Funciones predefinidas Funciones matemticas

  • 121

    Funciones predefinidas Funciones de cadenas (no codificacin)

    strlen ($cadena) : devuelve el nmero de caracteres strpos ($pajar,$aguja) : Devuelve la posicin de la primera

    ocurrencia de $aguja en $pajar stripos ~ strpos (stripos : indiferente a mayus minus) strtolower ($cadena) : devuelve la cadena en minusculas strtoupper ($cadena) : devuelve la cadena en mayusculas trim ($cadena) : elimina espacios en blanco en principo y fin de

    cadena str_replace ($cad,$sus,$orig) : sustituye todas las apariciones

    de $cad por $sus en $orig explode ($separador,$cadena) : divide $cadena en trozos

    separados por $separador y devuelve un array con los trozos

  • 122

    Funciones predefinidas Funciones de cadenas (no codificacin)

  • 123

    Funciones predefinidas Funciones de cadenas (codificadas)

    Operan sobre cadenas codificadas en UTF-8,ISO-8859 ... Podemos especificar la codificacin en las funciones Podemos establecer una codificacin por defecto

    mb_internal_encoding ("UTF-8"); mb_internal_encoding() : muestra la codificacin interna

  • 124

    Funciones predefinidas Funciones de cadenas (codificadas)

    mb_strlen ($cadena,[$cod]) : Nmero de caracteres mb_strpos ($pajar,$aguja) : Posicin de la primera ocurrencia

    de $aguja en $pajar mb_stripos ~ mb_strpos (stripos : indiferente a mayus minus) mb_strtolower ($cadena) : devuelve la cadena en minsculas mb_strtoupper ($cadena) : devuelve la cadena en maysculas mb_ereg_replace ($patron,$sus,$orig) : sustituye todas las

    apariciones de $patron por $sus en $orig mb_split ($patron,$cadena) : divide $cadena en trozos

    separados por $patron y devuelve un array con los trozos

  • 125

    Funciones predefinidas Funciones de cadenas (codificadas)

  • 126

    Funciones predefinidas Funciones de arrays

    count ($array) : devuelve el numero de elementos del array asort ($array) : ordena $array utilizando los valores menor-mayor

    arsort ($array) : ordena $array utilizando los valores mayor-menor

    ksort ($array) : ~ asort pero utilizando las claves

    krsort ($array) : ~ arsort pero utilizando las claves

    array_keys ($array) : devuelve un array con las claves

    array_values ($array) : devuelve un array con los valores

  • 127

    Funciones predefinidas Funciones de arrays

    in_array ($aguga,$array) : devuelve true si aguja est en $array

    array_search($aguja,$array) : Busca $aguja en $array y si lo encuentra devuelve su clave (si no, false)

    implode ($separador,$array) : Devuelve una cadena con todos los elementos del array separados por el separador

    list ($var1,...,$varN) : Crea variables a partir de un array

  • 128

    Funciones predefinidas Funciones de arrays

  • 129

    Funciones predefinidas Funciones de arrays

  • 130

    Funciones predefinidas Funciones de arrays

  • 131

    Accediendo a DB : MySQL MySQL

    Servidor de Bases de Datos Almacenaje de datos en bruto Cada BD es independiente Las BD tienen tablas Tablas tiene registros (filas + columnas)

    id user pass1 mikel 123212 ainhoa 32343

    BD : blog

    Tabla : usuario

    id user acceso1 1 10/01/092 1 05/03/09

    Tabla : accesos

  • 132

    Accediendo a DB : MySQL MySQL : Gestionando mysql con phpmyadmin

    Crear/eliminar/editar ... BD, tablas, registros, usuarios ...

  • 133

    Accediendo a DB : MySQL MySQL : SLQ (Structured Query Language) Consultas : Obteniendo datos de tablas

    Obtener todos los datos de una tabla (tabla usuario)SELECT * FROM usuario

    Obtener una columna de una tablaSELECT nombre FROM usuario

    Obtener mas de un campo de una tablaSELECT nombre,apellido,dni FROM usuario

  • 134

    Accediendo a DB : MySQL MySQL : SLQ (Structured Query Language) Consultas : Obteniendo datos de tablas (II)

    CondicionesSELECT * FROM usuarioWHERE edad>18

    SELECT * FROM usuarioWHERE nombre = ane

    SELECT * FROM usuarioWHERE nombre LIKE %ana%

  • 135

    Accediendo a DB : MySQL MySQL : SLQ (Structured Query Language) Consultas : Insertando datos en tablas

    INSERT INTO usuario(nombre,pass) VALUES (mikel,123)

    INSERT INTO usuario (nombre) VALUES (mikel)

    INSERT INTO usuario(id,pass) VALUES (1,123)

  • 136

    Accediendo a DB : MySQL MySQL : SLQ (Structured Query Language) Consultas : Actualizando datos de tablas

    UPDATE usuario SET pass=1010 WHERE nombre =ane

    UPDATE usuario SET pass=0000 WHERE nombre LIKE a%

    UPDATE usuario SET pass=0000 AND nombre=jonWHERE id=1

  • 137

    Accediendo a DB : MySQL MySQL : SLQ (Structured Query Language) Consultas : Eliminando datos de tablas

    DELETE FROM usuario WHERE id=2

    DELETE FROM usuario WHERE nombre LIKE %a

    DELETE FROM usuario WHERE pass = OR pass=0000

  • 138

    Accediendo a DB : MySQL Acceder al servidor de BD MySQL Funciones mysql:

    http://es.php.net/manual/es/ref.mysql.php Crear , eliminar, modificar, obtener ... BD, tablas, usuarios, privilegios ...

    Tipo recurso ( referencia a recurso externo ) mysql_connect($hostname,$usuario,$password)

    devuelve un identificador de enlace o false $hostname ~ host[:puerto]

    http://es.php.net/manual/es/ref.mysql.php
  • 139

    Accediendo a DB : MySQL Crear / Abrir la conexin

    mysql_connect ($hostname,$usuario,$password) Si no hay problemas devuelve el enlace El enlace se cerrara automticamente al finalizar el

    script o mediante la funcin mysql_close($link)

  • 140

    Accediendo a DB : MySQL Cerrar la conexin

    mysql_close ($link)

  • 141

    Accediendo a DB : MySQL Seleccionar BD

    mysql_select_db($dbname,[$link]); Devuelve true o false

  • 142

    Accediendo a DB : MySQL Realizar consultas

    mysql_db_query($link) Crear, eliminar, modificar ...

    BD, tablas, permisos, registros ... Valores retornados

    SELECT,SHOW,DESCRIBE,EXPLAIN : resource INSERT,UPDATE,DELETE,DROP ... : true o false

  • 143

    Accediendo a DB : MySQL Consultas sin retorno de valor

  • 144

    Accediendo a DB : MySQL Consultas con retorno de valor

    Valores en una variable tipo recurso Funciones para tratar los valores retornados

    mysql_fecth_assoc ($RS) $RS : El valor retornado por mysql_query Devuelve una matriz asociativa Claves = nombres de las columnas

  • 145

    Accediendo a DB : MySQL Consultas con retorno de valor

    mysql_fetch_assoc

  • 146

    Accediendo a DB : MySQL Consultas con retorno de valor

    mysql_fetch_row($RS) $RS : El valor retornado por mysql_query Devuelve una matriz numrica Claves = enteros empezando por 0

  • 147

    Accediendo a DB : MySQL Consultas con retorno de valor

    mysql_fetch_row

    0=usuario11=pass10=usuario21=pass2...

  • 148

    Accediendo a DB : MySQL Consultas con retorno de valor

    mysql_fetch_array ($RS,[$tipo]) $RS : El valor retornado por mysql_query Devuelve una matriz asociativa, numrica o ambas Por defecto : ambas $tipo : constante que puede tener los siguientes valores

    MYSQL_ASSOC MYSQL_NUM MYSQL_BOTH

  • 149

    Accediendo a DB : MySQL Consultas con retorno de valor

    mysql_fetch_array

    0=usuario1name=usuario11=pass1pass=pass10=usuario2name=usuario21=pass2...

  • 150

    Accediendo a DB : MySQL Errores

    mysql_error ($link) Devuelve el texto del mensaje de error de la ltima

    operacin MySQL Si no ocurri error : (cadena vaca)

    Unknowndatabase'pruebaaaa'

  • 151

    Cookies Pequeos ficheros que se escriben en el

    ordenador del cliente Contienen informacin que las pginas que las

    han escrito pueden recuperar y utilizar Se puede establecer el tiempo que el

    ordenador del usuario guardar el fichero Idioma,temas,ultimo acceso ...

  • 152

    Cookies Creacin de cookie

    setcookie($nombre[,$valor][,$expire][,$path] [,$dominio][,$secure][,$httponly])

    $nombre (string) : Nombre de la cookie $valor (string ) : Valor de la cookie $expire (int ) : Tiempo de caducidad (time()+60*60*24*30 : 30 dias) $path (string) : ruta en el servidor $dominio (string ) : dominio $secure (bool) : indica si solo ser accesible mediante https $httponly (bool) : accesible solo mediante http

  • 153

    Cookies Obtencin de cookie

    $_COOKIE[$nombreCookie]

  • 154

    Sesiones Mecanismo para preservar datos a lo largo de

    accesos posteriores Almacena informacin en el servidor accesible

    a travs de diferentes scripts La informacin se guarda en variables de

    sesin

  • 155

    Sesiones Iniciar sesin

    session_start() : antes de cualquier etiqueta html

    Crear variable de sesin $_SESSION ['nombre'] = $valor;

    Recuperar variable de sesin $variable = $_SESSION ['nombre'];

  • 156

    Sesiones

  • 157

    Sesiones Funciones

    session_start : inicia la sesin session_destroy : destruye los datos de sesin session_unset : elimina todas las variables de

    sesion session_cache_expire : Devuelve/establece la

    caducidad actual del cach

    [http://es2.php.net/manual/es/ref.session.php]

  • 158

    Ficheros y directorios Ficheros

    abrir fichero : fopen ($fichero,$modo) $fichero (string ) : ruta + nombre de fichero $modo (string ) :

    a : Aadir datos al final del fichero. Si no existe, se crea a+ : Aadir datos al final del fichero y leer datos. Si no existe, se

    crea. r : Solo lectura r+ : Lectura y escritura. Se aade al principio del fichero w : Escritura. Todo el contenido ser borrado. Si no existe, se

    crea. w+ : Lectura y escritura. Todo el contenido ser borrado. Si no

    existe se crea.

  • 159

    Ficheros y directorios Ficheros

    abrir fichero : fopen ($fichero,$modo)

  • 160

    Ficheros y directorios Ficheros

    Leer desde fichero : fgets($fichero,$longitud) Lee una linea de $longitud - 1 bytes feof($fichero) : verifica si el apuntador del fichero est al

    final del mismo

  • 161

    Ficheros y directorios Ficheros

    Escribir en fichero : fwrite($fichero , $cadena [,$longitud] ) Escribe $cadena \n : nueva lineaholasoyunalineaholasoyotralinea

    holasoyuna:linea

  • 162

    Ficheros y directorios Ficheros

    Cerrar fichero : fclose ($fichero)

    [http://es2.php.net/manual/es/ref.filesystem.php]

  • 163

    Ficheros y directorios Ficheros

    Subir ficheros al servidor...

  • 164

    Ficheros y directorios Directorios

    Abrir directorio : opendir($ruta) Devuelve un recurso ($gestor)

    Leer directorio : readdir($gestor) Devuelve el nombre del fichero

    [http://es2.php.net/manual/es/book.dir.php]

  • 165

    Clases y objetos Definicin de clases

    Variables (atributos) y Funciones (mtodos) Las funciones acceden a los atributos class nombreClase { ... } $this : accedemos a los atributos y mtodos de la clase

    desde dentro de la clase $this->name //accede al atributo $name $this->imprimir() //accede al mtodo imprimir

    Desde fuera de la clase: $obj = new MiObjeto(); MiObjeto->imprimir();

    Podemos crear tantos objetos (instancias) de la clase como queramos

  • 166

    Clases y objetos