Daw PHP PDF
Daw PHP PDF
2014/2015
Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP
Contenidos
Manejo de arrays
Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP
Manejo de arrays
Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP
el servidor web
Menos interactivo pero ms potente
Soluciones bsicas: CGI
Soluciones ms potentes: ASP, JSP, PHP
Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP
Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP
PHP
PHP es...
Las siglas de PHP Hypertext Pre-processor
Un lenguaje interpretado diseado expresamente para
Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP
PHP
Caractersticas de PHP
El cdigo PHP lo procesa el servidor y el cliente no lo ve
(ve su resultado)
Permite el acceso sencillo a muchas bases de datos
Tiene muchas bibliotecas de utilidades y muchos recursos
en la web
Permite intercalar etiquetas PHP y HTML (cuidado)
Se puede usar para programar otras cosas
Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP
Historia de PHP
Versiones de PHP
Versin original de
Rasmus Lerdorf (1994)
PHP 4 (2000)
Relevancia de PHP
TIOBE Programming
Community Index lo
indexa como 6o
lenguaje de
programacin ms
usado (abril 2015)
PHP 5 (2004)
PHP 3 (1998)
Zend Engine (1999)
lenguajes orientados
nicamente a web
Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP
Recursos
Existen numerosos recursos PHP disponibles
Editores Especficos
Extensiones y bibliotecas
PHP designer
http://pear.php.net( )
https://packagist.org( )
http://pecl.php.net( )
PhpStorm
Rapid PHP Editor
Depuradores
PHP DBG
Ayuda
http://www.php.net( )
Xdebug
APD
PHP: PHP Hypertext Pre-processor
Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP
Manejo de arrays
10
Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP
XAMPP
WampServer
VertrigoServ
EasyPHP
11
Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP
Ejemplo PHP
Hola Mundo
<BODY>
<B>Esto es HTML</B><BR>
<?php
echo "<B>Hola Mundo</B><BR>\n";
echo "Hoy es: ";
echo date("d/m/Y");
echo ", que disfrutes del da!\n";
?>
</BODY>
12
Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP
Ejemplo PHP
Instalacin en el servidor
El fichero debe instalarse en la
carpeta www de la instalacin.
Para ver su ejecucin se debe
13
Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP
Ejemplo PHP
14
Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP
(<BR>)
PHP: PHP Hypertext Pre-processor
15
Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP
Gestin de variables
Como los tipos son dinmicos, podemos preguntar por el
tipo de una variable: is_int(), is_float(),
is_string(), gettype()
Podemos convertir entre tipos de variables haciendo
16
Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP
Operadores
Operadores aritmticos estndar: suma(+), resta (-),
lgica (!).
Operadores de igualdad y equivalencia: ==, !=, ===, !==
Operadores de comparacin: <, >, >=, <=
Operador de concatenacin de cadenas (tambin con
enteros): .
PHP: PHP Hypertext Pre-processor
17
Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP
Estructuras de control
PHP comparte la mayora de las estructuras de control
tpicas de cualquier lenguaje de control estructurado:
Control de flujo: if-then-else, switch
Bucles: for, while, do-while
etc.
18
Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP
if-then-else
if($a<0)
echo "negativo";
elseif($a<10)
echo "entre 0 y 10";
elseif($a<100)
echo "entre 10 y 100";
elseif($a<1000)
echo "entre 100 y 1000";
else
echo "un montn";
19
Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP
switch
switch($pais)
{
case "Espaa":
echo "espaol";
break;
case "Italia":
echo "italiano";
break;
default:
echo "otra nacionalidad";
}
20
Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP
for(init;cond;inc)
for($header=1;$header<4;$header++)
echo "<H$header>Cabecera $header</H$header><BR>\n";
while
$header=1;
while($header<4)
{
echo "<H$header>Cabecera $header</H$header><BR>\n";
$header++;
}
21
Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP
do-while
$indice=1;
do
{
echo "Indice $indice<BR>\n";
$indice++;
}
while($indice<4);
22
Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP
Declaracin de funciones
PHP soporta el uso de funciones, que reciben argumentos
y devuelven un valor de retorno
A los argumentos podemos asignarles valores por defecto
E incluso podemos declarar funciones con un nmero
referencia
Y pueden acceder a variables globales (global y
$GLOBALS)
23
Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP
24
Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP
25
Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP
funciones:
include(): Si el fichero no existe da un aviso
require(): Si el fichero no existe da un error
26
Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP
Manejo de arrays
27
Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP
Introduccin I
Estructuras Compuestas
el array
28
Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP
Introduccin II
Estructuras Compuestas
Array
Esta estructura es la anloga a 3 4 tipos compuestos en
otros lenguajes.
Hay varias formas de crear un array
Las ms sencillas son:
array(): Crea un array vaco
array(elementos...): Crea un array y lo inicializa con
elemento.
29
Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP
Arrays I
Estructuras Compuestas
Inicializacin de arrays
$a = array(); // Array vaco
$b = array("Cero", "Uno", "Dos");
$b[3]="Tres";
$c[0]=true;
$c[1]=false;
$c[2]=false;
$c[3]=true;
// Imprime "Cero Uno Dos Tres"
echo $b[0]." ".$b[1]." ".$b[2]." ".$b[3];
echo $b; // Ojo: imprime "Array"
30
Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP
Arrays II
Estructuras Compuestas
distintos tipos.
Un array puede ser elemento de otro array (una matriz).
31
Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP
Arrays III
Estructuras Compuestas
ndices de un array
Un elemento de un array se puede eliminar
Esto implica que los arrays no son necesariamente
consecutivos.
ndices de un array
$foo=array(11,22,33,44);
unset($foo[2]); // 33 desaparece
// Pero $foo[3] sigue siendo 44
$baa[0]="Adis";
$baa[12]="mundo";
$baa[30]="cruel";
$baa[991]="!";
32
Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP
Arrays IV
Estructuras Compuestas
ndices de un array
Para insertar un elemento al final de un array se puede
usar "[]"
Esto asocia al elemento el siguiente valor de la clave
33
Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP
Arrays V
Estructuras Compuestas
Arrays asociativos
Las claves (ndices) de los arrays tambin pueden ser
cadenas de caracteres.
Un array puede tener claves numricas y de cadena a la
vez
Arrays asociativos
$persona["Nombre"] ="Pepe";
$persona["Apellido"]="Ptamo";
$persona["Edad"]
=70;
$persona[1]
=true;
34
Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP
Arrays VI
Estructuras Compuestas
valores a la vez
Inicializando arrays asociativos
$v=array("a"=>1, "b"=>2);
$data=array("Edad"
=> 25,
"Premio" => true,
"Importe"=> 239.50);
35
Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP
Arrays VII
Estructuras Compuestas
Matrices
Una matriz no es ms que un array cuyos elementos son
arrays
Como no hace falta declararlas se pueden inicializar sobre
la marcha
Matrices
$matriz=array();
$matriz[0]=array("A","B");
$matriz[1]=array("C","D");
$cnt=0;
for($i=0;$i<5;$i++)
for($j=0;$j<5;$j++)
$M[$i][$j]=$cnt++;
36
Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP
Arrays VIII
Estructuras Compuestas
Imprimiendo un array
Al hacer un echo sobre una variable array no se obtiene
su contenido
La funcin print_r() permite imprimir un array
El resultado est formateado con "\n", no con < BR >
Imprimiendo un array
$m=array("A"=>11, "B"=>33);
echo $m; // Sale "Array"
echo "<pre>";
print_r($m);
echo "</pre>";
37
Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP
Arrays IX
Estructuras Compuestas
causar problemas
Hay que recordar que los elementos pueden no ser
consecutivos
Iteracin sobre arrays
$num[0]=100;
$num[3]=200;
for($i=0;$i<count($num);$i++) // 0 y 1
echo $num[$i]; // No saldr $num[3]
38
Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP
Arrays X
Estructuras Compuestas
39
Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP
Arrays XI
Estructuras Compuestas
false
40
Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP
Arrays XII
Estructuras Compuestas
41
Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP
Arrays XIII
Estructuras Compuestas
(reordenando el resto)
array_unshift(): Aade un elemento al principio y
42
Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP
Arrays XIV
Estructuras Compuestas
Pilas y colas
$jobs=array("cargar","operar","guardar");
array_unshift($jobs,"preparar");
array_push($jobs,"probar","apagar");
while($j=array_shift($jobs))
echo "Ejecutando: $j<BR>\n";
43
Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP
Arrays XV
Estructuras Compuestas
Expansin de arrays
Existen dos funciones para convertir cadenas de
en un array
implode(): Concatena todos los elementos de un array
44
Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP
Arrays XVI
Estructuras Compuestas
Expansin de arrays
$texto="En un lugar de la Mancha";
// Lista de palabras
$palabras=explode(" ", $texto);
// Nuevo texto
$texto2=implode("_", $palabras);
45
Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP
Arrays XVII
Estructuras Compuestas
Ordenacin de arrays
Dos arrays no son equivalentes (===), pero s iguales (==),
elementos
asort(): Ordena los elementos pero cada cual conserva
su clave.
ksort(): Ordena por clave, pero cada cual mantiene su
elemento asociado
La ordenacin por defecto es ascendente
Existen las funciones anlogas para ordenacin inversa:
46
Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP
Arrays XVIII
Estructuras Compuestas
Ordenacin de arrays
$alumnos=array(
210 => "Dolores Fuertes",
115 => "Walter OFilia",
523 => "Armando Guerra",
410 => "Julian Dopetas");
// Por clave
ksort($alumnos);
// Por nombre
asort($alumnos);
// Rompe asociacin
sort($alumnos);
47
Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP
Manejo de arrays
48
Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP
Procesamiento de Formularios I
Formularios
formularios
GET
POST
servidor
La informacin puede ser accedida a travs de varios
arrays:
Por medio de los arrays: $_HTTP_GET_VARS y
$_REQUEST
PHP: PHP Hypertext Pre-processor
49
Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP
Procesamiento de Formularios II
Formularios
Mtodo GET
$patron = $_GET[patron];
/* Forma recomendada */
$patron3 = $HTTP_GET_VARS[patron]; /* En desuso */
$patron4 = $_REQUEST[patron];
/* Otra opcin */
Mtodo POST
$texto = $_POST[texto];
/* Forma recomendada */
$texto3 = $HTTP_POST_VARS[texto]; /* En desuso */
$texto4 = $_REQUEST[texto];
/* Otra opcin */
50
Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP
formulario.html
<form method="POST" action="suma.php">
<input type="text" size="10" name="A" value="">
<input type="text" size="10" name="B" value="">
<br>
<input type="submit" value="Sumar">
</form>
suma.php
<?php
// Recibe parmetros
$A = isset($_REQUEST[A]) ? $_REQUEST[A] : 0;
$B = isset($_REQUEST[B]) ? $_REQUEST[B] : 0;
?>
51
Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP
multipart/form-data
La informacin del archivo se guarda en la variable
superglobal $_FILES
$_FILES es un array asociativo que contiene:
52
Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP
Ejemplo de Formulario
<FORM ENCTYPE="multipart/form-data" METHOD="POST">
<H2>Escoja el archivo que desea enviar:</H2>
<INPUT NAME="fich" TYPE="file"><BR>
<INPUT TYPE="submit" VALUE="Enviar">
</FORM>
53
Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP
54
Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP
(dominio)
Esta informacin es enviada por el navegador en
55
Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP
cookie
domain: dominio en el que la cookie estar disponible
secure: decide si la cookie ha de ser enviada mediante
conexin segura
56
Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP
57
Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP
Ventajas e Incovenientes
Cookies
Ventajas:
Mecanismo fcil de implementar
Facilitan la navegacin del usuario
Inconvenientes
Puede convertirse en un mecanismo muy pesado
puede bloquearlas)
La informacin es fcilmente alterable
58
Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP
Introduccin
Sesiones
estado
Diferencia
La informacin es almacenada en el servidor
Necesita de un identificador de sesin (MD5 de un nmero
aleatorio)
Enviar el identificador en una Cookie
Enviar el identificador en cada query (a continuacin de la
URL)
59
Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP
Sesiones en PHP
Sesiones
en PHP:
session_start ()
session_destroy ()
60
Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP
Ejemplo I
Sesiones
Presentamos el Formulario
<FORM METHOD="POST">
Introduzca un nmero entero entre 0 y 9999:<BR>
Nmero: <INPUT NAME="numero" TYPE="text">
<INPUT NAME="envio" TYPE="submit" VALUE="Probar">
<INPUT NAME="reinicio" TYPE="submit" VALUE="Reiniciar">
</FORM>
61
Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP
Ejemplo II
Sesiones
Procesamos la informacin
if (empty ($_SESSION [secreto]) || $_REQUEST[reinicio] ==
"Reiniciar") {
echo "Intente adivinar el nmero secreto.<BR><BR>";
$_SESSION [secreto] = rand (0,9999);
$_REQUEST[numero] = 0;
} else if (empty ($_REQUEST[numero])) {
echo "Intente adivinar el nmero secreto.<BR><BR>";
} else if ($_SESSION [secreto] < $_REQUEST[numero]) {
$_SESSION [intentos]++;
echo "El nmero secreto es menor que " . $_REQUEST[numero]
. "<BR>";
echo "Lleva usted " . $_SESSION [intentos] . "
intentos!<BR>";
} else if ($_SESSION [secreto] > $_REQUEST[numero]) {
62
Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP
Ejemplo III
Sesiones
Destruimos la sesin
} else if ($_SESSION [secreto] > $_REQUEST[numero]) {
$_SESSION [intentos]++;
echo "El nmero secreto es mayor que " . $_REQUEST[numero]
. "<BR>";
echo "Lleva usted " . $_SESSION [intentos] . "
intentos!<BR>";
} else {
echo "<BR>";
echo "ENHORABUENA, el nmero secreto era " .
$_REQUEST[numero] . "<BR>";
echo "<BR>";
session_destroy ();
exit ();
}
63
Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP
Otras consideraciones
Sesiones
64
Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP
Manejo de Ficheros I
Ficheros
Uso de ficheros
Una de las alternativas para mantener informacin
persistente de las operaciones del usuario es la utilizacin
de ficheros
En la gran mayora de los sistemas hay que considerar
65
Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP
Manejo de Ficheros II
Ficheros
Gestin de ficheros
Hay dos formas de manipular ficheros:
Por medio de las funciones heredadas de C/UNIX
El interfaz de funciones propias de PHP
66
Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP
Manejo bsico
Existen dos funciones que permiten gestionar ficheros por
medio de cadenas:
file_get_conents(): Esta funcin carga en una
Manejo bsico
$cadena="La vida es maravillosa";
file_put_contents("fichero.txt",$cadena);
$leido=file_get_contents("fichero.txt");
echo "He ledo: $leido";
67
Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP
Manejo de Ficheros IV
Ficheros
de cada elemento
Manejo con arrays
$poema="A un panal de rica miel\n mil moscas acudieron\n Yo.";
file_put_contents("poema.txt",$poema);
$lineas=file("poema.txt");
echo $lineas[0]; // A un panal de rica miel\n
echo $lineas[1]; // mil moscas acudieron\n
echo $lineas[2]; // Yo.
68
Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP
Manejo de Ficheros V
Ficheros
Recorrido de directorios
Para manipular directorios se usan las siguientes
funciones:
opendir(): Devuelve un manejador para empezar a
recorrer un directorio
readir(): Se le da el manejador de un directorio y
Recorrido de directorios
$d=opendir("datos/");
while($f=readdir($d))
echo "Entrada: $f<BR>\n";
closedir($d);
69
Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP
Manejo de Ficheros VI
Ficheros
pasa existe
fopen(): Abre un fichero, devolviendo un manejador. El
70
Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP
71
Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP
Ficheros remotos
El nombre de un fichero se puede sustituir por una URL
Hay diferentes protocolos de acceso a ficheros remotos, lo
72