1 intro php

35
Tecnologías Web de Cliente Departamento de Ingeniería de Sistemas Telemáticos http://moodle.dit.upm.es Introducción a PHP

Upload: carlos-a-iglesias

Post on 23-Jun-2015

236 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 1 intro php

Tecnologías Web de Cliente

Departamento de Ingeniería de Sistemas Telemáticoshttp://moodle.dit.upm.es

Introducción a PHP

Page 2: 1 intro php

2

ÍndicePHP. HistoriaPara qué vale PHPEntornoEl lenguaje

Page 3: 1 intro php

3

PHP Historia●1994 – Rasmus Lerdof – un conjunto de ficheros programados en Perl como CGIs para hacer su CV (Personal Home Page Tools)●1997 – PHP 3.0 (PHP: Hypertext Preprocessor) parecido al actual●2000 – PHP 4.0, “Motor Zend”, mejoras en modularidad y eficiencia●2004 – PHP 5.0, Zend Engine 2.0, mejora en orientación a objetos

Page 4: 1 intro php

4

¿Cómo se usa PHP?● Usos

– Lenguaje de scripting del lado servidor

– Lenguaje de scripting en línea de órdenes

– Aplicaciones gráficas del lado cliente (PHP-GTK)● Lenguaje de scripting

– Interpretado• Existen compiladores para optimizarlo

– Poco tipado

– Otros: Javascript, Python, Ruby, Shell, …

Page 5: 1 intro php

5

PHP como script● En linux, instalar php5-cli

● Ejecutar

Page 6: 1 intro php

6

Scripting en el lado servidor

● Diseñado para ser ejecutado en un servidor web (como un módulo)● Normalmente nos permite generar html 'de forma dinámica'● Para poder ejecutarlo, necesitamos que el servidor web sea capaz de ejecutar php

Page 7: 1 intro php

7

Entorno LAMP● LAMP = Linux + Apache Web Server + MySQL/MariaDB + PHP/Perl/Python● En Mac: MAMP, Windows: WAMP, en cualquier sistema operativo X: XAMP.● En linux, puedes instalarlo con el paquete tasksel, lanzarlo y seleccionar LAMP server. Luego conéctate en un navegador a http://localhost:80 y verás el mensaje 'It works'

– El mensaje que ves está en /var/www/index.html

Page 8: 1 intro php

8

Entorno LAMP

Page 9: 1 intro php

9

PHP en el lado servidor● Editamos

●Desplegamos (copiamos) en /var/www y damos permisos de lectura (chmod 644) y vemos en navegador

Page 10: 1 intro php

10

¿Es popular/útil PHP?● 78% de webs lo utilizan como lenguaje del lado servidor (frente a Java Enterprise Edition, JS como Node.js, .NET, Ruby, …)● Es el software abierto más empleado en la empresa● Muy popular en gestión de contenidos (Drupal, Joomla, Wordpress, MediaWiki, …)● Usado por Facebook o Wikipedia

Page 11: 1 intro php

11

Arquitectura en web

Page 12: 1 intro php

12

HTML dinámico

<doctype HTML><html>….<? php…?></html>

IntérpretePHP

<doctype HTML><html>...</html>

Servidor Web con extensión PHP

1. Pide página PHP

Navegador

2. Procesa página PHP y genera HTML

3. Entrega página HTML

<? php…?>

Page 13: 1 intro php

13

El lenguaje PHP● Los scripts son el código entre <?php y ?>● Normalmente incluidos como parte de un documento HTML● Las sentencias PHP terminan en “;”● Las variables comienzan con $ y no se declaran ni se declara su tipo, pueden tener cualquier tipo. Ej. $usuario● Comentarios: //, #, /* */

Page 14: 1 intro php

14

Ejemplo (I)

En la request HTML mando el valor del campo

input

Page 15: 1 intro php

15

Ejemplo (II)

Page 16: 1 intro php

16

Y si no pongo nada y doy al botón...

Page 17: 1 intro php

17

Ejemplo 2 (I)

Page 18: 1 intro php

18

Ejemplo 2 – Condicional empotrado en HTML (II)

Page 19: 1 intro php

19

Estructuras de Control● Condicional

– Simple: if (cond) {...} elseif {…} else {...}

– Múltiple: switch(cond) { case <valor1>: … break; case <valor2>: … break; … default: ... }

● Bucles– For : for ($i = 0; $i < 25; $i++) {...}

– While: while (cond) {...} –- do {...} while (cond);

– Foreach

Page 20: 1 intro php

20

Sintaxis alternativa● if () {} → if () : endif● switch () {} → switch() : endswitch● while(){} → while() : endwhile● for (){} → for () : endfor

Page 21: 1 intro php

21

Tipos de datos en PHP● Escalares: Boolean, Integer, Float (double), String● Compuestos: Array, Object● Especiales:

– NULL – Variable sin valor; la variable existe pero no contiene nada

– Recurso – Almacena una referencia a una función, base de datos, fichero u otro recurso fuera de PHP

Page 22: 1 intro php

22

Tipos Escalares● Enteros:

– Decimal: 1995, +33, -333

– Octal: 0534, -023

– Hexadecimal: 0xDAD1

– Binario bx001100● Reales: 3.15, -7.1, 0.314E1, 1.0E-2 (= 0.01)● Strings: “hola”, 'hola'● Booleanos: true, false

Page 23: 1 intro php

23

Arrays● Podemos acceder con índice o índice asociativo (clave)● Ej. $a[0] = “Pepe”; o $a['nombre'] = “Pepe”;● Para borrar un elemento, usamos unset($a[0]) o el array unset($a)● Constructor: array()

– $personas = array(“Pepe”, “Juan”, “Ana”);

– $inventores = array('bombilla' => “Edison”, 'autogiro' => “de la Cierva”, '' => “”);

Podemos usar {} en vez de [], $a{0}

Page 24: 1 intro php

24

Funciones con arrays (I)● Añadir al final: array_push()● Tamaño: count()

http://www.w3schools.com/php/php_ref_array.asp

Page 25: 1 intro php

25

Funciones con arrays (II)● Ordenar: sort() (a-z),rsort() (reverse, z-a)● Imprimir un array con separador: join()

separador

Page 26: 1 intro php

26

Recorrer Array: foreach

Si lo usara como script, en vez de <p></p>, pondría, p.ej. echo

“$inventor\n” (\n newline)

Page 27: 1 intro php

27

Funciones con Strings (I)● Concatenar: .● strlen(“pepe”) → longitud (4) ● strpos(cadena, carácter) – False si no está, si no, posición donde comienza● substring(cadena, pos)

Page 28: 1 intro php

28

Funciones con Strings (II)● trim(), rtrim(), ltrim() → quitar espacios en blanco● strtoupper(), strtolower() → mayúsculas / minúsculas

Page 29: 1 intro php

29

Funciones aritméticas (I)● Constante PI: M_PI● Redondear a entero: round(), ceil(), floor()

● Aleatorio: rand()

//4//5

Page 30: 1 intro php

30

Funciones (I)● Lo definimos como function nombre(){}

– Podemos devolver algo con return● Lo invocamos con nombre(argumentos);

Page 31: 1 intro php

31

Funciones (II)● Podemos indicar valores por defecto en la declaración

Page 32: 1 intro php

32

Ej. función

Page 33: 1 intro php

33

Organizar Aplicación Web● Directorio Raíz (Root) → /

– Ponemos recursos HTML

– Ponemos subdirectorios de HTML por sección, etc.

– Organizamos ficheros: img/, pdf/● Directorio CSS → css/● Directorio JavaScript → js/● Directorio PHP → scripts/

Page 34: 1 intro php

34

Conclusiones● El lenguaje PHP es bastante sencillo de aprender una vez que sabes otro lenguaje● Se interpreta. Muchos fallos se ven en tiempo de ejecución.● Hace falta mirar APIs para aprenderlo bien según nos hace falta.

Page 35: 1 intro php

35

Referencias●Programming PHP, O'Reilly, 2013,

– http://proquest.safaribooksonline.com/book/programming/php/9781449361068

●Head first PHP & MySQL, O'Reilly, 2008,– http://proquest.safaribooksonline.com/book/

databases/mysql/9780596157739