1 intro php
TRANSCRIPT
Tecnologías Web de Cliente
Departamento de Ingeniería de Sistemas Telemáticoshttp://moodle.dit.upm.es
Introducción a PHP
2
ÍndicePHP. HistoriaPara qué vale PHPEntornoEl lenguaje
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
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, …
5
PHP como script● En linux, instalar php5-cli
● Ejecutar
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
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
8
Entorno LAMP
9
PHP en el lado servidor● Editamos
●Desplegamos (copiamos) en /var/www y damos permisos de lectura (chmod 644) y vemos en navegador
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
11
Arquitectura en web
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…?>
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: //, #, /* */
14
Ejemplo (I)
En la request HTML mando el valor del campo
input
15
Ejemplo (II)
16
Y si no pongo nada y doy al botón...
17
Ejemplo 2 (I)
18
Ejemplo 2 – Condicional empotrado en HTML (II)
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
20
Sintaxis alternativa● if () {} → if () : endif● switch () {} → switch() : endswitch● while(){} → while() : endwhile● for (){} → for () : endfor
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
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
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}
24
Funciones con arrays (I)● Añadir al final: array_push()● Tamaño: count()
http://www.w3schools.com/php/php_ref_array.asp
25
Funciones con arrays (II)● Ordenar: sort() (a-z),rsort() (reverse, z-a)● Imprimir un array con separador: join()
separador
26
Recorrer Array: foreach
Si lo usara como script, en vez de <p></p>, pondría, p.ej. echo
“$inventor\n” (\n newline)
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)
28
Funciones con Strings (II)● trim(), rtrim(), ltrim() → quitar espacios en blanco● strtoupper(), strtolower() → mayúsculas / minúsculas
29
Funciones aritméticas (I)● Constante PI: M_PI● Redondear a entero: round(), ceil(), floor()
● Aleatorio: rand()
//4//5
30
Funciones (I)● Lo definimos como function nombre(){}
– Podemos devolver algo con return● Lo invocamos con nombre(argumentos);
31
Funciones (II)● Podemos indicar valores por defecto en la declaración
32
Ej. función
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/
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.
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