introduccion basica php

68
“Introducción a PHP" Pablo Mamani

Upload: pablo-mamani

Post on 18-Jul-2015

107 views

Category:

Technology


0 download

TRANSCRIPT

  • Introduccin a PHP"Pablo Mamani

  • Introduccin a PHPLenguajes de scriptPHP es un lenguaje de script del lado del servidor. Otros lenguajes similares son ASP, JSP o ColdFusionLos scripts PHP estn incrustados en los documentos HTML y el servidor los interpreta y ejecuta antes de servir las pginas al clienteEl cliente no ve el cdigo PHP sino los resultados que produce

  • Introduccin a PHPCmo funciona PHP?Pgina HTMLPgina HTMLinternetServidor webCliente(navegador)Hola, Ana

  • Introduccin a PHPCmo funciona PHP?Pgina PHPIntrpretePHPPgina HTMLPgina HTMLinternetServidor webCliente(navegador)

    Hola, Ana

  • Introduccin a PHPBreve historia de PHPCreado por Rasmus Lerdorf para uso personal en 1994PHP = Personal Hypertext ProcessorVersin actual: PHP 5Es un mdulo que se aade al servidor web y fue concebido inicialmente para ApachePor qu PHP?Por sus ventajas: es potente, fcil de aprender, de libre distribucin, permite el acceso a bases de datos y otras funcionalidades orientadas a la redDispone de abundante soporte en la Web

  • Introduccin a PHPRequisitosServidor web Apache (www.apache.org)con el mdulo PHP (www.php.net)y la base de datos MySQL (www.mysql.com) si se desea crear pginas dinmicasOtras utilidadesHerramientas para la gestin de MySQL, como PHPMyAdmin (www.phpmyadmin.net)Editores de PHP, como DevPHP (www.sourceforge.net) o Eclipse (www.eclipse.org)Manuales de PHP y MySQL

  • Lenguaje PHP bsicoSintaxis bsicaTipos de datosVariablesConstantesExpresiones y operadoresEstructuras de controlFuncionesTablasBibliotecas de funciones

  • Sintaxis bsicaPHP es sensible a las maysculasCmo se incrusta en la pgina web?recomendado, siempre disponibleequivale a Las instrucciones se separan con un ; como en C. La marca final ?> implica un ;Comentarios: como en C, /* */ y //

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

  • Sintaxis bsicaEjemplo:

    Mi primer programa en PHP

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

    Prrafo 1Prrafo 2

    Prrafo 1

    Prrafo 2Cdigo PHPCdigo HTMLSalida

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

    Prrafo 1Prrafo 2

    Prrafo 1

    Prrafo 2Cdigo PHPCdigo HTMLSalida

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

  • Sintaxis bsica

    Ttulo

    // Cdigo HTML + PHP. . .

  • Tipos de datosPHP soporta 8 tipos de datos primitivos:Tipos escalares: boolean, integer, double, stringTipos compuestos: array, objectTipos especiales: resource, NULL El tipo de una variable no se suele especificar. Se decide en tiempo de ejecucin en funcin del contexto y puede variarFunciones de inters:La funcin gettype() devuelve el tipo de una variableLas funciones is_type comprueban si una variable es de un tipo dado:is_array(), is_bool(), is_float(), is_integer(), is_null(), is_numeric(), is_object(), is_resource(), is_scalar(),is_string()La funcin var_dump() muestra el tipo y el valor de una variable. Es especialmente interesante con los arrays

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

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

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

    Resultado:El valor es: 5

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

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

    Resultado:hola mundohola mundo

  • Variables

    Ejemplo de variables variables: pgina internacionalizada (1)

  • Variables

    Ejemplo de variables variables: pgina internacionalizada (2)

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

  • Expresiones y operadoresOperadores aritmticos: +, -, *, /, %, ++, --Operador de asignacin: = operadores combinados: .=, +=, etc $a = 3; $a += 5; a vale 8 $b = hola ; $b .= mundo; b vale hola mundo Equivale a $b = $b . mundo;Operadores de comparacin: ==, !=, , = y otrosOperador de control de error: @. Antepuesto a una expresin, evita cualquier mensaje de error que pueda ser generado por la expresinOperadores lgicos: and (&&), or (||), !, xor and/&& y or/|| tienen diferentes prioridadesOperadores de cadena: concatenacin: . (punto) asignacin con concatenacin: .=

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

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

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

  • Estructuras de controlEstructura selectiva if-else

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

  • Estructuras de controlEjemplo de estructura selectiva if-else:

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

  • Estructuras de controlEjemplo de estructura selectiva switch:

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

  • Estructuras de controlEstructura repetitiva while while (condicin)sentencia

    Mismo comportamiento que en C

  • Estructuras de controlEjemplo de estructura repetitiva while:

  • Estructuras de controlEstructura repetitiva for

    for (inicializacin; condicin; incremento)sentencia

    Mismo comportamiento que en C

  • Estructuras de controlEjemplo de estructura repetitiva for:

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

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

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

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

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

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

  • Arrays = TablaQu es un array?Un array es sencillamente una tabla de valores.Cada uno de los elementos de esa tabla se identifica por medio de un nombre (comn para todos) y un ndice (que diferenciara a cada uno de ellos).La sintaxis que permite definir elementos en un array es la siguiente: $nombre[indice] El ndice puede ser un nmero (habra que escribirlo dentro del corchete sin comillas), una cadena (que habra que poner en el corchete encerrada entre comillas sencillas '). Cuando los ndices de un array son nmeros se dice que es escalar mientras que si fueran cadenas se le llamara array asociativo.

  • Arrays UnidimensionalesArrays EscalaresLos elementos de un array escalar puede escribirse con una de estas sintaxis:

    $a[]=valor $a[xx]=valor En el primero se asigna los ndices de forma automtica, ste es un valor entero y empieza por el 0 (CERO).

    En el segundo de los casos, seremos nosotros quienes pongamos (xx) el nmero correspondiente al valor del ndice. Arrays AsociativoLos elementos de un array asociativo pueden escribirse usando la siguiente sintaxis:$a['indice']=valor En ste caso estamos obligados a escribir el nombre del ndice que habr de ser una cadena y debe ponerse entre comillas.

    Tanto en este supuesto como en el anterior, es posible y bastante frecuente utilizar como ndice el contenido de una variable. El modo de hacerlo sera:$a[$ind]=valor En este caso, sea cual fuere el valor de la variable $ind, el nombre de la variable nunca se pone entre comillas.

  • Arrays Unidimensionales>$a[0]=Domingo$a[Primero]=Domingo

  • Arrays BidimensionalesArrays EscalaresLos elementos de un array bidimensional escalar pueden escribirse usando una de estas sintaxis:$a[][]=valor $a[xx][]=valor$a[][xx]=valor $a[xx][yy]=valor

    Arrays AsociativoLos elementos de un array asociativo se pueden escribir usando la siguiente sintaxis: $a["indice1"]["indice2"]=valor

  • La funcin ArrayPor ejemplo: $z=array ( 0 => 2, 1 => "Pepe", 2 => 34.7, 3 => "34Ambrosio", ); producir igual resultado que: $z[0]=2; $z[1]="Pepe"; $z[2]=34.7; $z[3]="34Ambrosio"; $a= array (ndice 0 => valor, ..... , ndice n => valor,);

  • La funcin ArrayLa funcin array() permite escribir arrays de cualquier dimensin utilizando la tcnica de anidado. Ejemplo de array escalar: $z[0][0]=34; $z[0][1]=35; $z[0][2]=36; $z[1][0]=134; $z[1][1]=135; $z[1][2]=136; podramos hacerlo as: $z=array( 0 => array (0 => 34, 1 => 35, 2 => 36,), 1 => array (0 => 134, 1 => 135, 2 => 136,) );El anidado sucesivo permitira generar arrays de cualquier dimensin. Ejemplo de array asociativo: $z["a"]["A"]=34; $z["a"]["B"]=35; $z["a"]["C"]=36; $z["b"]["A"]=134; $z["b"]["B"]=135; $z["b"]["C"]=136; que podra definirse tambin de esta forma: $z=array("a" => array ("A" => 34, "B" => 35, "C" => 36, ), "b" => array ("A" => 134, "B" => 135, "C" => 136,) );$a= array (ndice 0 => valor, ..... , ndice n => valor,);

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

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

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

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

  • FormulariosAcceso a formularios HTML desde PHPEl formulario de PHPSubida de ficheros al servidorValidacin de los datos de un formulario

  • Acceso a formularios desde PHPDesde PHP se puede acceder fcilmente a los datos introducidos desde un formulario HTMLVemoslo con un ejemplo simple

  • Acceso a formularios desde PHPFichero uno.php

    Edad:

    Fichero dos.php

  • Acceso a formularios desde PHP

  • Acceso a formularios desde PHPA partir de PHP 4.2.0, el valor por defecto de la directiva de PHP register_globals es offEsto tiene una gran importancia sobre los formularios, ya que no es posible acceder a las variables enviadas de la manera anterior (como variables globales). En su lugar hay que utilizar la variable predefinida de PHP $_POST, escribiendo $_POST[edad] en lugar de $edadSe puede poner register_globals = on en el fichero de configuracin php.ini, pero no es recomendable por motivos de seguridad. Una alternativa que permite hacer mnimos cambios en el cdigo ya existente es la siguiente:$edad = $_POST[edad];

  • Acceso a formularios desde PHPFichero uno.php

    Edad:

    Fichero dos.php

  • Acceso a formularios desde PHPAcceso a los diferentes tipos de elementos de entrada de formularioElementos de tipo INPUTTEXTRADIOCHECKBOXBUTTONFILEHIDDENPASSWORDSUBMITElemento SELECTSimple / mltipleElemento TEXTAREA

  • Acceso a formularios desde PHPTEXTIntroduzca la cadena a buscar:

  • Acceso a formularios desde PHPRADIOSexo:
  • Acceso a formularios desde PHPCHECKBOXGarajePiscinaJardn

  • Acceso a formularios desde PHPBUTTON
  • Acceso a formularios desde PHPFILE
  • Acceso a formularios desde PHPHIDDEN

  • Acceso a formularios desde PHPPASSWORDContrasea:

  • Acceso a formularios desde PHPSUBMIT

  • Acceso a formularios desde PHPSELECT simpleColor:Rojo Azul

  • Acceso a formularios desde PHPSELECT mltipleIdiomas:

    Ingls Francs Alemn Holands

  • Acceso a formularios desde PHPTEXTAREAComentario:

    Este libro me parece ...

  • El formulario de PHPLa forma habitual de trabajar con formularios en PHP es utilizar un nico programa que procese el formulario o lo muestre segn haya sido o no enviado, respectivamenteVentajas:Disminuye el nmero de ficherosPermite validar los datos del formulario en el propio formularioProcedimiento:

    si se ha enviado el formulario: Procesar formulariosi no: Mostrar formulariofsi

  • El formulario de PHPEsquema de funcionamiento:si se ha enviado el formulario: Procesar formulario

    si no: Mostrar formulariofsia)b)La 1 vez que se carga la pgina se muestra el formulario (a)La 2 vez se procesa el formulario (b)

  • El formulario de PHPPara saber si se ha enviado el formulario se acude a la variable correspondiente al botn de envo. Si este botn aparece de la siguiente forma en el formulario HTML: