Tecnologías Web de Cliente

Introducción a PHP
Departamento de Ingeniería de Sistemas Telemáticos
http://moodle.dit.upm.es
Índice
PHP. Historia
Para qué vale PHP
Entorno
El lenguaje

2
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
●

3
¿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, …
4
PHP como script
●

En linux, instalar php5-cli

●

Ejecutar

5
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
●

6
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
7
Entorno LAMP

8
PHP en el lado servidor
●

Editamos

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

9
¿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
10
Arquitectura en web

11
HTML dinámico
Servidor Web con
extensión PHP
1. Pide página PHP
Navegador

3. Entrega página
HTML
<doctype HTML>
<html>
...
</html>

Intérprete
PHP

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

2. Procesa
página PHP y
genera HTML

12
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: //, #, /* */
13
Ejemplo (I)

En la request
HTML mando el
valor del campo
input

14
Ejemplo (II)

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

16
Ejemplo 2 (I)

17
Ejemplo 2 – Condicional
empotrado en HTML (II)

18
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
19
Sintaxis alternativa
●

if () {} → if () : endif

●

switch () {} → switch() : endswitch

●

while(){} → while() : endwhile

●

for (){} → for () : endfor

20
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
21
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
22
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}

23
Funciones con arrays (I)
●

Añadir al final: array_push()

●

Tamaño: count()

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

24
Funciones con arrays (II)
●

Ordenar: sort() (a-z),rsort() (reverse, z-a)

●

Imprimir un array con separador: join()

separador
25
Recorrer Array: foreach

Si lo usara como script, en vez
de <p></p>, pondría, p.ej. echo
“$inventorn” (n newline)
26
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)

27
Funciones con Strings (II)
trim(), rtrim(), ltrim() → quitar espacios en
blanco
●

strtoupper(), strtolower() → mayúsculas /
minúsculas
●

28
Funciones aritméticas (I)
●

Constante PI: M_PI

●

Redondear a entero: round(), ceil(), floor()
//4
//5

●

Aleatorio: rand()

29
Funciones (I)
●

Lo definimos como function nombre(){}
– Podemos devolver algo con return

●

Lo invocamos con nombre(argumentos);

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

31
Ej. función

32
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/
33
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.
●

34
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

35

1 intro php

  • 1.
    Tecnologías Web deCliente Introducción a PHP Departamento de Ingeniería de Sistemas Telemáticos http://moodle.dit.upm.es
  • 2.
    Índice PHP. Historia Para quévale PHP Entorno El lenguaje 2
  • 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 ● 3
  • 4.
    ¿Cómo se usaPHP? ● 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, … 4
  • 5.
    PHP como script ● Enlinux, instalar php5-cli ● Ejecutar 5
  • 6.
    Scripting en ellado 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 ● 6
  • 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 7
  • 8.
  • 9.
    PHP en ellado servidor ● Editamos Desplegamos (copiamos) en /var/www y damos permisos de lectura (chmod 644) y vemos en navegador ● 9
  • 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 10
  • 11.
  • 12.
    HTML dinámico Servidor Webcon extensión PHP 1. Pide página PHP Navegador 3. Entrega página HTML <doctype HTML> <html> ... </html> Intérprete PHP <doctype HTML> <html> …. <? php … <? php ?> … </html> ?> 2. Procesa página PHP y genera HTML 12
  • 13.
    El lenguaje PHP ● Losscripts 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: //, #, /* */ 13
  • 14.
    Ejemplo (I) En larequest HTML mando el valor del campo input 14
  • 15.
  • 16.
    Y si nopongo nada y doy al botón... 16
  • 17.
  • 18.
    Ejemplo 2 –Condicional empotrado en HTML (II) 18
  • 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 19
  • 20.
    Sintaxis alternativa ● if (){} → if () : endif ● switch () {} → switch() : endswitch ● while(){} → while() : endwhile ● for (){} → for () : endfor 20
  • 21.
    Tipos de datosen 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 21
  • 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 22
  • 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} 23
  • 24.
    Funciones con arrays(I) ● Añadir al final: array_push() ● Tamaño: count() http://www.w3schools.com/php/php_ref_array.asp 24
  • 25.
    Funciones con arrays(II) ● Ordenar: sort() (a-z),rsort() (reverse, z-a) ● Imprimir un array con separador: join() separador 25
  • 26.
    Recorrer Array: foreach Silo usara como script, en vez de <p></p>, pondría, p.ej. echo “$inventorn” (n newline) 26
  • 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) 27
  • 28.
    Funciones con Strings(II) trim(), rtrim(), ltrim() → quitar espacios en blanco ● strtoupper(), strtolower() → mayúsculas / minúsculas ● 28
  • 29.
    Funciones aritméticas (I) ● ConstantePI: M_PI ● Redondear a entero: round(), ceil(), floor() //4 //5 ● Aleatorio: rand() 29
  • 30.
    Funciones (I) ● Lo definimoscomo function nombre(){} – Podemos devolver algo con return ● Lo invocamos con nombre(argumentos); 30
  • 31.
    Funciones (II) Podemos indicarvalores por defecto en la declaración ● 31
  • 32.
  • 33.
    Organizar Aplicación Web ● DirectorioRaí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/ 33
  • 34.
    Conclusiones El lenguaje PHPes 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. ● 34
  • 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 35