Professional Documents
Culture Documents
1
Contenidos
Introduccin
Sintaxis bsica
Variables, tipos y operadores
Variables predefinidas
Constantes
Estructuras de Control
Incluir cdigo de ficheros externos
Funciones
Accediendo a MySQL
Cookies
Sesiones
Ficheros y directorios
Clases y Objetos (PHP 5)
2
Introduccin
Que es PHP?
Ejecutado en servidor
Software libre
3
Introduccin (II)
Que puedo hacer con PHP?
4
Introduccin (III)
Scripts del lado del servidor
BD
Servidor
HTML + PHP
Cliente LDAP
Procesa PHP
5
Introduccin (III)
Scripts del lado del servidor
Servidor BD:
Servidor Web : Apache2 MySQL
HTML + PHP
Navegador
(Firefox)
Procesa PHP
Genera HTML
c:\
6
Introduccin
Requisitos
PHP5
Servidor Web : apache2
Servidor BD : mysql
Editor : netbeans
Todo en 1 : XAMPP (Apache + MySQL + PHP)
Netbeans
Navegador : http://localhost
MySQL : http://localhost/phpmyadmin 8
Introduccin
Instalacin en windows (II)
Editor de scripts php
Editor de texto plano
IDE (Entorno de desarrollo integrado)
Editor
Resaltado de sintaxis
Plantillas html
Debuger
Proyectos
...
9
Introduccin
Instalacin en windows (II)
NetBeans
http://www.netbeans.org/downloads/index.html
10
Introduccin
Primer proyecto php en netbeans
Archivo Proyecto nuevo
Categora PHP
Proyectos PHP application
Project Name Nombre_del_proyecto
Sources folder
C:\xampp\htdocs\Nombre_del_proyecto
Run as Local web site
Project URL http://localhost/Nombre_del_proyecto
11
Introduccin
Primer proyecto php en netbeans (II)
Nombre del projecto : PhpProject1
12
Introduccin
Primer proyecto php en netbeans (II)
Ejecutar proyecto:
Ejecutar Set project configuration Personalizar
13
Ejecutar proyecto
Sintaxis Bsica (I)
Cdigo PHP empotrado en documentos HTML
Instrucciones entre etiquetas:
<?php ... ?>
<script language=php> ... </script>
<? ... ?>
<% ... %>
recomendado : <?php .... ?>
XHTML
XML
14
Sintaxis Bsica (II)
Ejemplo
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Ttulo de la pgina</title>
</head>
<body>
<?php
?>
</body>
</html>
15
Sintaxis Bsica (III)
Scripts PHP :
Serie de sentencias / instrucciones
Ejecutadas secuencilmente
Datos en variables
Estructuras de control
Funciones
Clases (POO)
16
Sintaxis Bsica (IV)
Los espacios/tabulaciones/saltos de linea entre
las instrucciones, no afectan al comportamiento
Las siguientes instrucciones tienen el mismo resultado:
<?php
?>
<?php
echo <p>hola mundo</p>;echo <p>Esto es una prueba</p>;
?>
<?php
echo <p>hola mundo</p>;
Bloque: /* ... */
<?php
/*Esta linea no se tiene en cuenta
esta tampoco
tampoco esta/*
Estos comentarios
/* No se puede anidar produciran un error
/* bloques de comentarios*/
*/ 19
?>
Variables
Los datos se almacenan en variables
Las variables se representan con un signo de dolar
seguido por el nombre de la variable
Sensible a maysculas/minsculas
El nombre de la variable :
Empezar con letra o _ (guin bajo)
Contener : letras nmeros _
<?php <?php
$cont=1; $1Usuario = mikel;
$_cont=1; $usuario-2 = ainara;
$nombre_usuario=mikel $nmero = 12;
$PESO22_=102g $cont 1 = 0;
?> ?>
20
CORRECTO INCORRECTO
Operadores de Asignacin
Asignacin : =
Permite asignar valores a variables
El operando de la izquierda recibe el valor de la
expresin de la derecha
<?php
$cont = 123;
$cont =Hola;
$a = ($b = 4) + 5;
echo $a;
echo $b;
?>
9
4
21
Variables (II)
A diferencia de otros lenguajes PHP es un lenguaje no
tipado
El programador no decide el tipo de una variable
El tipo lo decide PHP en tiempo de ejecucin dependiendo
del contexto
<?php
$cont = 123;
var_dump($cont);
int(123)
$cont =Hola;
var_dump($cont);
string(4) "Hola"
$cont= true;
var_dump($cont);
bool(true) 22
?>
Variables (III)
Para forzar variables
settype($variable,tipo)
Moldear variables (casting)
Mostrar tipo variable
var_dump($variable);
Mostrar contenido variable
print_r($variable)
echo
printf
23
Variables (IV)
Mostrar contenido variables : ejemplos
<?php
$cont = 123;
echo $cont;
123
Pgina en construccin
echo $cont;
echo $mensaje;
123Pgina en construccin
?> 24
Variables (V)
Mostrar contenido variables : Saltos de linea
<?php
$cont = 123;
$mensaje =Pgina en construccin;
echo $cont;
echo $mensaje;
?>
Fuente HTML :
123Pgina en construccin
Navegador:
123Pgina en construccin
25
Variables (VI)
Mostrar contenido variables : Saltos de linea (II)
<?php
$cont = 123;
$mensaje =Pgina en construccin;
echo $cont;
echo <br/>;
echo $mensaje;
?>
Fuente HTML :
123<br/>Pgina en
construccin
Navegador:
123
Pgina en construccin
26
Variables (VII)
Mostrar contenido variables : Saltos de linea (III)
<?php
$cont = 123;
$mensaje =Pgina en construccin;
echo $cont;
echo \n;
echo $mensaje;
?>
Fuente HTML :
123
Pgina en construccin
Navegador:
123Pgina en construccin
27
Pasar datos entre scripts
HTTP : protocolo sin estado
El valor de las variables existe durante la vida del
script (pgina)
Pasar datos entre scripts (pginas)
Formularios
Enlaces GET
Cookies
Sesiones
28
Obtener variables de formularios
Metodo : POST
<!-- index.html -->
<form action =logon.php method=post>
<input type=text name=user/>
<input type=text name=pass/>
<input type=submit
</form>
<?php
//logon.php
$usuario = $_POST['user'];
$pass = $_POST['pass'];
?>
29
Obtener variables de formularios
Metodo : GET
<form action =logon.php method=get>
<input type=text name=user/>
<input type=text name=pass/>
<input type=submit
</form>
<a href=logon.php?user=nombreUsuario&pass=password>logon</a>
<?php
//logon.php
$usuario = $_GET['user'];
$pass = $_GET['pass'];
?> 30
Tipos
Tipos
Escalares
Enteros
Coma flotante
Cadenas
Booleanos
Compuestos
Matrices
Objetos
Null
Resource 31
Tipos : Enteros
Enteros (Integer)
Nmeros enteros del conjunto Z = {...,-2,1,0,1,2,...}
Tamao depende de la plataforma
Usual : 32 bits con signo
Z = {-2147483647,-2147483646,...,-1,0,1,2147483646,2147483647}
Si se desborda un entero ser interpretado como
float (numero de coma flotante)
32
Tipos : Enteros (II)
Enteros (Integer)
Declarando variables de enteros:
<?php
$cont = 123;// Un nmero decimal
$cont = -123;// Un nmero decimal negativo
$cont = 0123;// Un nmero octal
$cont = 0x1A;// Un nmero hexadecimal
$edadMinima = 18;
?>
Desbordamiento de enteros :
<?php
$numeroGrande = 2147483647;
var_dump($numeroGrande);// Devuelve : int(2147483647)
$numeroGrande = 2147483648;
var_dump($numeroGrande);// Devuelve : float(2147483647) 33
?>
Tipos : Reales
Nmeros de coma flotante (Float)
Nmeros reales
Tambin conocidos como doble o real
Tamao depende de la plataforma
Usual : ~1.8e308
<?php
$a = 1.234;
$b = 1.2e3;
$c = 7E-10;
?>
34
Tipos : Reales (II)
Float : Imprimir variables de tipo float
echo
<?php
$num=16.6765464;
echo $num;
16.6765464
?>
printf
<?php
$num=16.6765464;
printf("el numero es : %.2f ",$num);
16.68
?> 35
Operadores aritmticos
Podemos realizar operaciones aritmticas
El operador ' / ' devuelve un valor flotante a menos que los dos operandos sean enteros y
los nmeros sean divisibles sin residuos
36
Operadores aritmticos (II)
El orden de ejecucin :
* / %
+ -
Izquierda a derecha
Parntesis : orden de ejecucin
<?php
$a = 10;
$b = 30 + $a;
echo $b *0.6;
$pie = 10;
$altura = 25;
$superficie = ($pie*$altura)/2;
?> 38
Operadores aritmticos (IV)
Operadores de incremento/decremento :
Operacion Ejemplo Ejemplo
Pre-incremento ++$a Incrementa $a en uno, y luego devuelve $a.
Post-incremento $a++ Devuelve $a, y luego incrementa $a en uno.
Pre-decremento --$a Decrementa $a en uno, luego devuelve $a.
Post-decremento $a-- Devuelve $a, luego decrementa $a en uno.
<?php
$a = 10;
$a++;
echo $a; //11
$a--;
echo $a; // 10
?>
39
Tipos : Cadenas
Cadenas (String)
Secuencia de caracteres
Antes de PHP 6 : un carcter -> un byte
256 tipos de caracteres diferentes
Diferentes maneras de especificar
Caracteres de escape
No hay limite de tamao
40
Tipos : Cadenas
Cadenas (String) : Definicin de cadenas
Comillas simples : '
Imprimir comilla simple:
\'
Para imprimir barra invertida
\\
<?php
echo 'Esto es una cadena';
$articulo = camiseta;
$cantidad = 5;
echo Ha seleccionado $cantidad $articulos ; // Incorrecto
?>
44
Tipos : Cadenas
Cadenas : Heredoc
Definir cadenas largas
Uso similar a comillas dobles
Caracteres de escape
Expansin de variables
<?php
$cadena = <<<FIN
Ejemplo de una cadena
que se extiende por varias lneas
usando la sintaxis heredoc.
FIN;
?> 45
Tipos : Cadenas
Cadenas : Heredoc
Expansin de variables
<?php
$nombre = $_REQUEST['txNombre'];
$apellido = $_REQUEST['txApellido'];
$dni = $_REQUEST['txDni'];
$cadena = <<<FIN
El usuario $nombre $apellido
con dni $dni
certifica que
....
FIN;
?>
46
Tipos : Cadenas
Cadenas : Acceso a caracteres
Indices [ 0 .. longitud_cadena -1]
<?php
$cadena = esto es una prueba;
echo $cadena;
esto es una prueba
$cadena[0]='E';
echo $cadena;
Esto es una prueba
?> 47
Operadores de cadena
Concatenacin '.'
<?php
$cadena = <label class='datos'>.$nombre. .$apellido.</labe>;
echo $cadena;
<label class='datos'>Esti Goikoetxea</label>
<?php
var_dump((bool)"");//bool(false)
var_dump((bool)1);//bool(true)
var_dump((bool)-2);//bool(true)
var_dump((bool)"foo");//bool(true)
var_dump((bool)2.3e5);//bool(true)
var_dump((bool)array(12));//bool(true)
var_dump((bool)array());//bool(false)
var_dump((bool)"false");//bool(true)
49
?>
Operadores lgicos
Operadores
50
Tipos : Array
Matrices (Array)
Serie de pares de clave/valor (con un orden)
No puede haber claves repetidas
Multidimensionales
Por defecto : claves numricas consecutivas
Claves : integer o string
Valor : cualquier tipo de PHP
Mediante los arrays podemos agrupar datos /
variables en una sola variable
Los valores no tienen por que ser del mismo tipo 51
Tipos : Array
Matrices (Array) : Definir array
Podemos definir/crear arrays de diferentes maneras
<?php
$laborables = array(lunes,martes,mircoles,jueves,viernes);
$laborables = array(0=>lunes,1=>martes,2=>mircoles,
3=>jueves,4=>viernes);
?>
52
Tipos : Array
Matrices (Array) : Definir array
Podemos especificar los ndices directamente
<?php
$festivos[0]=sbado;
$festivos[1]=domingo;
?>
ndice 0 1
Valor sbado domingo
?>
ndice 0 2 1
Valor ainhoa ane iaki
$laborables = array(lunes,martes,mircoles,jueves,viernes);
echo $laborables;
Array
echo $laborables[2];
mircoles
$estaciones[0]=invierno;
$estaciones[1]=primavera;
$estaciones[]=verano;
$estaciones[]=otoo;
print_r($estaciones);
Array ( [0] => invierno [1] => primavera [2] => verano [3] => otoo )
56
Tipos : Array
Matrices (Array) : Array asociativo
Los ndices no tienen por que ser numricos
<?php
$laborables = array(enero=>31,
febrero=>28,
marzo=>31,
abril=>30,
....
,diciembre=>31);
echo $laborables[abril];
30
print_r ($laborables[2]);
Array ( [enero] => 31 [febrero] => 28 [marzo] => 31 [abril] => 30 ... )
?>
57
Tipos : Array
Matrices (Array) : Array asociativo
Generalmente con BD => Asociativos
<?php
?>
Nombre Ainara
Apelido Etxeberria
Dni 99999999K
58
Tipos : Array
Matrices (Array) : Array multidimensional
<?php
$apuntados = array(
enero=>array(mikel,ainhoa,ane),
febrero=>array(ainara,eneko),
....
,diciembre=>0);
?>
59
Tipos : Array
Matrices (Array) : Array multidimensional
<?php
$apuntados = array(
enero=>array(mikel,ainhoa,ane),
febrero=>array(ainara,eneko),
....
,diciembre=>0);
echo $apuntados[enero][1];
ainhoa
echo $apuntados[febrero][0];
ainara
echo $apuntados[diciembre];
0
?> 60
Tipos : Array
Matrices (Array) : Array multidimensional
<?php
...
echo <pre>;
print_r ($apuntados);
echo </pre>;
Array
(
[enero] => Array
(
[0] => mikel
[1] => ainhoa
[2] => ane
)
62
Tipos : NULL
Variable que no tiene valor
Posibles valor : null || NULL
<?php
$var =null;
?>
63
Tipos : Resource
Contiene una referencia a un recurso externo
Los recursos son usados por funciones
especiales
Algunos recursos : mysql, ldap,gd ...
Mysql :
Recurso : mysql link
Crear recurso : $con = mysql_connect('host' ...)
mysql_query(SELECT ..., $con);
....
64
Variables predefinidas
Variables del servidor
$_SERVER
PHP_SELF
SERVER_ADDR
SERVER_ADDR
DOCUMENT_ROOT
QUERY_STRING
REMOTE_ADDR
HTTP_HOST
...
[http://es2.php.net/reserved.variables]
65
Constantes
Definicin de constantes
define($nombre,$valor)
$nombre (string) : nombre de la constante
$valor : Valor de la constante
<?php
define("const1","primera constante");
define("MAX",10);
echo MAX;
10
echo const1
primera constante
?> 66
Estructuras de control
Controlar la ejecucin de instrucciones
Decidir en tiempo de ejecucin que sentencias
ejecutar u omitir
Crear bloques repetitivos
En tiempo de ejecucin / contexto
67
Estructuras de control : IF
Permite la ejecucin condicional de sentencias
Si la condicin se cumple en tiempo de
ejecucin : se ejecuta un bloque de cdigo
predeterminado
<?php
if(expr)
sentencia
?>
69
Estructuras de control : IF
expr : cualquier cosa que tiene un valor
Las comparaciones son una expresion con valores
booleanos (true o false ) (verdadero o falso)
<?php
$a=10;
if($a>0)
echoaesmayorquecero;
?>
70
Estructuras de control : IF
expr se evala a su valor condicional (boolean)
Si la expresin se evala como true se ejecuta la
sentencia
Si la expresin se evala como false no se ejecuta
la sentencia
<?php
$a=10;
if($a>0)
print"aesmayorque0";
if($a)
printaesdiferentea0;
?>
71
Operadores de comparacin
Operadores
72
Operadores de comparacin
Las expresiones de comparacin siempre
devuelven un valor boolean
<?php
$a=5;
$b=0;
$c="0";
var_dump($a>$b);//bool(true)
var_dump($a<$b);//bool(false)
var_dump($a>$c);//bool(true)
var_dump($b==$c);//bool(true)
var_dump($b===$c);//bool(false)
var_dump($b!=$c);//bool(false)
var_dump($b!==$c);//bool(true)
var_dump($b<>$c);//bool(false)
var_dump($a>=$b);//bool(true)
?>
73
Estructuras de control : IF
Comparacin
<?php
$a=5;
$c="0";
if($a>0)
echoaesmayorquecero;
if($c==0)
echocesigualacero
if($_SERVER['HTTP_USER_AGENT']=='MSIE')
echo<linkrel='stylesheet'type='text/css'
.href='style_ie.css'/>
if($_SERVER['HTTP_USER_AGENT']=='Firefox')
echo<linkrel='stylesheet'type='text/css'
.href='style_firefox.css'/>; 74
?>
Estructuras de control : IF
If : Bloques
Podemos agrupar bloque de instrucciones
mediante { }
<?php
if ($usuario!=null){
echo<spanclass='datos'>$nombre</span>;
echo<spanclass='datos'>$apellido</span>;
echo<spanclass='datos'>$telefono</span>;
}
?>
75
Estructuras de control : IF
If : Anidar condiciones
Podemos anidar indefinidamente condiciones
<?php
if($usuario!=null){
echo<spanclass='datos'>$nombre</span>;
echo<spanclass='datos'>$apellido</span>;
echo<spanclass='datos'>$telefono</span>;
if($telefono2!=null){
echo<spanclass='datos'>$telefono2</span>;
}
}
?>
76
Estructuras de control : IF
If : Condiciones de mltiples expresiones
Operadores lgicos
<?php
if ($edad<18){
...
}
if($edad>=18and$edad<=35){ //Solosisecumplen
... //lasdoscondiciones
}
if ($edad>35and$edad<=60){//Solosisecumplen
... //lasdoscondiciones
}
?>
77
Estructuras de control : IF
If : Condiciones de mltiples expresiones
<?php
if ($annos<18or($annos==18and
$mesNacimiento<$mesActual)) {
...
}
if ($result!=nulland($numResult>100or$pagina=0)){
...
}
?>
78
Estructuras de control : IF ...
ELSE
else : Ejecutar sentencias en caso de que la
expresin evaluada en el if sea igual a false
<?php
echo<linkrel='stylesheet'type='text/css';
if ($_SERVER['HTTP_USER_AGENT']=='MSIE'){
echohref='style_explorer.css'/>;
}
else{
echohref='style_firefox.css'/>;
}
?>
79
Estructuras de control : ELSEIF
elseif : combinacin if y else
Se ejecuta si if = false y se da otra condicin nueva
<?php
echo<linkrel='stylesheet'type='text/css';
if ($_SERVER['HTTP_USER_AGENT']=='MSIE') {
echohref='style_explorer.css'/>;
}
elseif($_SERVER['HTTP_USER_AGENT']=='SAFARI'){
echohref='style_safari.css'/>;
}
else{
echohref='style_firefox.css'/>;
}
?>
80
Estructuras de control : ELSEIF
elseif : No hay limite de sentencias elseif
Solo una se ejecuta
<?php
if ($opcion==1){
...
}
elseif ($opcion==2){//Sisedalacondicin,seejecuta
... //elbloqueysesaledelaestructura
}
elseif ($opcion==3){
...
}
else{ //Sinosedaningunacondicinanterior
... //Seejecutaelbloqueelse
}
?>
81
Estructuras de control : SWITCH
switch : Comparar la misma variable
Similar a bloque if elseif else ( != 1 variable)
<?php
switch($i){
case0:
echo"i=0";
break;
case1:
echo"i=1";
break;
case2:
echo"i=2";
break;
}
?>
82
Estructuras de control : SWITCH
switch : sentencia break
Las sentencias se empiezan a ejecutar desde una
sentencia case que se cumpla hasta el final del
switch o hasta una sentencia break
<?php <?php
$i=1; $i=1;
switch($i){ switch($i){
case0: case0:
echo"i=0"; echo"i=0";
break; case1:
case1: echo"i=1";
echo"i=1"; case2:
break; echo"i=2";
case2: }
echo"i=2"; ?>
break;
} i=1i=2
?>
i=1 83
Estructuras de control : SWITCH
switch : caso default
~ else : En caso de que no se cumpla ningn 'case'
<?php
$i=1;
switch ($i){
case0:
echo"i=0";
break;
case1:
echo"i=1";
break;
case2:
echo"i=2";
break;
default:
...
}
?> 84
Estructuras de control : Bucles
Estructuras repetitivas
Diferentes sentencias
85
Estructuras de control : Bucles
while
Tipo mas simple
while (expr) sentencia
Si la condicin nunca obtiene el valor false
Bucle infinito !!!
Mltiples sentencias : { }
<?php
$i=0;
while($i<10){
echo$i;
$i=$i+1;
}
?>
86
Estructuras de control : Bucles
while
<?php
$valorMax=10;
$valorMin=1;
$aux=$valorMin;
while($aux<=$valorMax){
echo<inputtype='radio'name='vota'value='$aux'/>$aux\n;
$aux=$aux+1;
}
$cont=0;
while(!empty($imagenes[$cont])){
echo<imgsrc='{$imagenes[$cont]}'/>;
$cont++;
}
?>
87
Estructuras de control : Bucles
do .. while
Similar a while : La condicin se evala al final
<?php
$i=0;
do {
print$i;
} while($i>0);
?>
88
Estructuras de control : Bucles
For
for (expr1 ; expr2 ; expr3 ) sentencia
expr1 : Se ejecuta una sola vez al comienzo del bucle
expr2 : Se evala en el comienzo de cada iteracin
true : el bucle continua ejecutndose
false : termina la ejecucin del bucle
expr3 : Se ejecuta al final de cada iteracin
<?php
for($i=1;$i<=10;$i++){
echo<inputtype='radio'name='vota'value='$i'/>$i\n;
}
?>
89
Estructuras de control : Bucles
For
<?php
echo<table>;
for ($i=0;$i<$maxUsuarios;$i++){
echo<tr>;
echo<td>{$usuario[$i]['nombre']}</td>;
echo<td>{$usuario[$i]['apellido']}</td>;
echo<td>{$usuario[$i]['dni']}</td>;
echo</tr>;
}
echo</table>;
?>
90
Estructuras de control : Bucles
Foreach
Fcil iteracin sobre matrices
foreach(expresion_array as $value) sentencia
foreach(expresion_array as $key => $value) sentencia
<?php
$arUsuarios=array(jon,ainara,mikel,ane);
foreach($arUsuariosas$usuario){
echo<ahref='editar.php?usuario=$usuario'>$usuario</a>\n;
}
<ahref='editar.php?usuario=jon'>jon</a>
<ahref='editar.php?usuario=ainara'>ainara</a>
<ahref='editar.php?usuario=mikel'>mikel</a>
<ahref='editar.php?usuario=ane'>ane</a>
?> 91
Estructuras de control : Bucles
Foreach
<?php
$usuario=array(Nombre=>jon,
Fechadenacimiento=>1982-10-25
Direccin=>francia4);
foreach($usuarioas$dato=>$valor){
echo$dato:$valor<br/>;
}
?>
Nombre:Jon
Fechadenacimiento:1982-10-25
Direccin:francia4
92
Estructuras de control : Bucles
Foreach
<?php
$arUsuarios=array(
11111111=>array(jon,1975-10-22,Gasteiz),
22222222=>array(ainara,1967-06-22,Bilbo),
33333333=>array(mikel,1983-05-04,Donostia)
);
echo<tableborder='2'>;
foreach($arUsuariosas$dni=>$arUsuario){
echo<tr>;
foreach($arUsuarioas$datosUsuario){
echo<td>$datosUsuario</td>;
}
echo</tr>;
}
echo</table>;
?>
93
Estructuras de control : break
break : sentencia para salir del bucle
<?php
$arUsuarios=array(
11111111=>array(jon,1975-10-22,Gasteiz,admin),
22222222=>array(ainara,1967-06-22,Bilbo,admin),
...
44444444=>array(ane,1983-05-04,Bilbo,desarrollo)
);
foreach($arUsuariosas$dni=>$arUsuario){
if($arUsuario[3]==desarrollo){
break;
}
echo<tr><td>$dni</td>;
foreach($arUsuarioas$datosUsuario){
echo<td>$datosUsuario</td>;
}
echo</tr>;
}
echo</table>;
?>
94
Estructuras de control : continue
continue : sentencia para terminar iteracin
<?php
$arUsuarios=array(
11111111=>array(jon,1975-10-22,Gasteiz,admin),
22222222=>array(ane,1967-06-22,Bilbo,desarrollo),
...
44444444=>array(ana,1983-05-04,Bilbo,desarrollo)
);
foreach($arUsuariosas$dni=>$arUsuario){
if($arUsuario[3]==desarrollo){
continue;
}
echo<tr><td>$dni</td>;
foreach($arUsuarioas$datosUsuario){
echo<td>$datosUsuario</td>;
}
echo</tr>;
}
echo</table>;
?>
95
Estructuras de control
Sintaxis alternativa
if , while , for , switch
abrir llave = dos puntos (:)
cerrar llave =
endif; endwhile; endfor; endswitch;
<?php if($a==5):?>
<p>Aesiguala5</p>
<?php endif;?>
<?php
for($i=0;$i<10;$i++):
echo<inputtype='radio'name='vot'value='$i'/>$i;
endfor;
?> 96
Incluir cdigo de ficheros externos
Include y require
Funciones para incluir otros ficheros
include ([ruta]nombre fichero);
require ([ruta] nombre fichero);
Si no se encuentra el fichero
Include produce un warning (el script continua)
Require produce un error fatal (el script NO notinua)
<?php
include('cabecera.php');
...
97
include('pie.php');
?>
Incluir cdigo de ficheros externos
Include y require
El cdigo se inserta en el lugar donde se encuentra
la instruccin include/require
<?php <?php
$apuntados=3; define(MAX,10);
echoMAX-$apuntados.<br/>; ?>
include("constantes.php");
echoMAX-$apuntados;
?>
-3
7
98
Incluir cdigo de ficheros externos
Include y require
Si los ficheros no estn al mismo nivel : ruta
Podemos incluir desde url
/var/www/cursos/apuntados/ /var/www/cursos/include/
<?php <?php
$apuntados=3;
echoMAX-$apuntados.<br/>; define(MAX,10);
include("../include/constantes.php"); ?>
echoMAX-$apuntados;
?>
-3
7
99
Incluir cdigo de ficheros externos
Include_once y require_once
Mismo funcionamiento que include y require
Pero si el fichero ha sido evaluado e incluido no
vuelve a incluirse
<?php //constante.php
$apuntados=3; <?php
echoMAX-$apuntados.<br/>;
include(funciones.php);
include("constantes.php");
include(funciones.php); define(MAX,10);
?>
echoMAX-$apuntados;
?>
Llamada
nombreDeFuncion($parametro); 102
Funciones
Funciones : definicin y llamada
<?php
functionbienvenida(){
echoholamundo!;
}
bienvenida();
bienvenida();
echo<br/>;
bienvenida();
holamundo!holamundo!
holamundo!
?>
103
Funciones
Funciones : en ficheros externos
<?php <?php
require_once(funciones.php); functionbienvenida(){
echoBienvenido;
bienvenida(); }
echo<br/>;
despedida(); functiondespedida(){
echoGraciasporsuvisita;
}
?>
?>
Bienvenido
Graciasporsuvisita
104
Funciones
Funciones : parmetros
Podemos pasarle variables a las funciones
Lista de variables separadas por comas
Los parmetros han de definirse al definir la funcin
Si se definen parmetros, hay que pasarle variables
a la funcin en la llamada
<?php
functionsuma($num1,$num2){
echo$num1+$num2;
}
suma(14,6); //20
suma(34,5615); //5649
suma(2); //Warning... 105
?>
Funciones
Funciones : parmetros
<?php <?php
require_once(funciones.php); functionbienvenida($nombre){
$usuario1=jon; echoBienvenido$nombre;
$usuario2=ainhoa; }
bienvenida($usuario1); functiondespedida($nom){
echo<br/>; echoAdios$nom;
despedida($usuario1); }
echo<br/>;
bienvenida($usuario2); ?>
?>
Bienvenidojon
Adiosjon
Bienvenidoainhoa
106
Funciones
Funciones : parmetros por defecto
<?php
functionasistentes($numero=0){
echohanasistido$numeropersonas;
}
$b=45;
asistentes();
asistentes(10);
asistentes($b);
asistentes(24,23,doce);
?>
0
10
45
24
107
Funciones
Funciones : mbito de las variables
<?php <?php
functionsuma($a,$b){ functionsuma($a,$b){
$a=$a+$b; $a=$a+$b;
echo$a; echo$a;
} }
$a=10; $num1=10;
$b=5; $num2=5;
$c=20; $num3=20;
suma($a,$b); suma($a,$b);
echo$a; echo$a;
suma($a,$c); suma($num1,$num2);
echo$a; echo$b;
?> ?>
25 0
10 //nada
30 15
10 //nada 108
Funciones
Funciones : Return
Las funciones pueden devolver un valor mediante
la sentencia return
Puede devolverse cualquier tipo de valor
Solo puede devolverse un valor
Podemos devolver mltiples valores dentro de un
elemento array por ejemplo
<?php
functionsuma($a,$b){
$a=$a+$b;
return$a;
}
$result=suma(23,10);
echo$result; //33 109
?>
Funciones
Funciones : Return
<?php
functionesPar($num){ <table>
return$num%2==0; <trclass='par'>
} <td>ane</td>
</tr>
$usuarios=array(ane,mikel, <trclass='impar'>
jon,ainhoa,roger); <td>mikel</td>
echo<table>; </tr>
foreach($usuariosas$indice=>$usuario){ <trclass='par'>
echo<trclass=;
if(esPar($indice)){ <td>jon</td>
echo'par'>; </tr>
} <trclass='impar'>
else{ <td>ainhoa</td>
echo'impar'>; </tr>
} <trclass='par'>
echo\t<td>$usuario</td></tr>; <td>roger</td>
} </tr>
echo</table>; </table>
110
?>
Funciones
Funciones :
<?php
functionimprimirTabla($mat){ <table>
echo<table>; <trclass='par'>
foreach($matas$fila){ <td>mikel</td>
echo<tr>; <td>millan</td>
foreach($filaas$valor){ <td>999999999</td>
echo<td>$valor</td>; </tr>
} <trclass='impar'>
echo</tr>; <td>jon</td>
} <td>guereu</td>
echo</table>; <td>686868686</td>
} </tr>
<trclass='impar'>
$usuarios=array( <td>manu</td>
array(mikel,millan,999999999), <td>arregi</td>
array(jon,guereu,686868686) <td>12345678</td>
array(manu,arregi,123456789)); </tr>
</table>
imprimirTabla($usuarios);
111
?>
Funciones
Funciones : Parametros por referencia
Accedemos a la variable por referencia
No se crea una copia, accedemos a la variable
original
<?php
functionincrementar(&$val){
$val++;
}
$cont=1;
echo$cont;
incrementar($cont);
echo$cont;
?>
1
2
112
Funciones predefinidas
Redireccionar
header() : enviar cabeceras
Redireccionar a otra pgina
<?php
if(usuarioValido($usuario){
header(Location:correcto.php);
}
else{
header(Location:incorrecto.php);
}
?>
<?php
$dominio=$_SERVER['HTTP_HOST'];
if(usuarioValido($usuario){
header(Location:http://$dominio/usuarios);
}
else{
header(Location:http://$dominio/error);
113
}
?>
Funciones predefinidas
Redireccionar
header() : No puede haber texto antes de una
llamada a header
No puede haber ningun echo, print ... antes de una
llamada a header
<?php
$dominio=$_SERVER['HTTP_HOST'];
if(usuarioValido($usuario){
header(Location:http://$dominio/usuarios); ERROR
}
?>
<body>
...
<?php ERROR
header(Location:http://$dominio/usuarios);
114
?>
?>
Funciones predefinidas
Funciones de variables
printf (string_formateado,$var [,$var])
Imprime strings formateados
%% : literal '%'
%b : Integer binario
%c : Integer caracter ASCII
%d : Integer decimal con signo
%e : Notacin cientfica
%u : Integer decimal sin signo
%f : Float numero de coma flotante
%o : Integer octal
%x : Integer hexadedimal
115
Funciones predefinidas
Funciones de variables
printf (string_formateado,$var [,$var])
<?php
$num=126;
printf("decimalnum=%d",$num);
printf("binarionum=%b",$num);
printf("hexadecimalnum=%x",$num);
printf("floatnum=%f",$num);
printf("floatnum=%.2f",$num);
printf("asciinum=%c",$num);
printf("cientificonum=%e",$num);
?>
decimalnum=126
binarionum=1111110
hexadecimalnum=7e
floatnum=126.000000
floatnum=126.00
asciinum=~
cientificonum=1.260000e+2 116
Funciones predefinidas
Funciones de variables
empty ($variable)
Devuelva si la variable existe o no / si est definida o no
unset ($variable)
Destruye la variable
Elimina un elemento de un array ( no lo reordena!!!)
<?php <?php
if(!empty($nombreUsuario){
obtenerDatosUsuario($nombreUsuario); unset($cont);
} unset($usuarios[$i]);
else{
echoInsertaelnombredeusuario; ?>
}
?>
117
Funciones predefinidas
Funciones de variables
is_tipo($variable)
Devuelve si la variable es del tipo o no (true || false)
is_bool() , is_int(), is_float(), is_string(), is_array() ...
<?php
if(is_int($num)){
printf(Elvalores:%u,$num);
}
elseif(is_float($num)){
printf(Elvalores:%.2f,$num);
}
else{
printf(Nohainsertadounnumero);
}
?>
[http://es2.php.net/manual/es/ref.var.php] 118
Funciones predefinidas
Funciones matemticas
floor($float) : devuelve el siguiente integer mas pequeo
rand($int_min,$int_max) : genera un numero aleatorio
sqrt($float) : raiz cuadrada
pow($base,$exp) : potencia
sin($float) : seno
cos($float) : coseno
tan($float) : tangente
...
[http://es2.php.net/manual/es/ref.math.php]
119
Funciones predefinidas
Funciones matemticas
<?php
$num1=18;
$num2=5;
$div=round($num1/$num2); //3
$resto=$num1%num2; //3
$num1=9;
$raiz=sqrt($num1); //3
$x=0;
$y=0;
$senoX=sin($x); //0
$cosenoY=cos($y); //1
$aleatorio=rand(10,500); //324
?>
120
Funciones predefinidas
Funciones de cadenas (no codificacin)
strlen ($cadena) : devuelve el nmero de caracteres
strpos ($pajar,$aguja) : Devuelve la posicin de la primera
ocurrencia de $aguja en $pajar
stripos ~ strpos (stripos : indiferente a mayus minus)
strtolower ($cadena) : devuelve la cadena en minusculas
strtoupper ($cadena) : devuelve la cadena en mayusculas
trim ($cadena) : elimina espacios en blanco en principo y fin de
cadena
str_replace ($cad,$sus,$orig) : sustituye todas las apariciones
de $cad por $sus en $orig
explode ($separador,$cadena) : divide $cadena en trozos
separados por $separador y devuelve un array con los trozos 121
Funciones predefinidas
Funciones de cadenas (no codificacin)
<?php <?php
$cadena="holasoyunacadena";
echostrlen($cadena); $cadena="tengoespacios";
19 echotrim($cadena);
tengoespacios
$cadena="holasoyunacdena";
echostrlen($cadena); $cad="soyunacadena";
20 str_replace("cadena","cadenita",$cad);
holasoyunacadenita
$cadena="holasoyunacadena";
echostrpos($cadena,"soy"); print_r(explode("",$cadena));
5
Array
$cadena="HolaSoyUnaCadena"; (
echostrtolower($cadena); [0]=>hola
holasoyunacadena [1]=>soy
[2]=>una
echostrtoupper($cadena); [3]=>cadena
HOLASOYUNACADENA )
<?php
echomb_internal_encoding(); //ISO-8859-1
echomb_strlen("camin"); //7
mb_internal_encoding("UTF-8");
echomb_internal_encoding(); //UTF-8
echomb_strlen("camin"); //6
?>
123
Funciones predefinidas
Funciones de cadenas (codificadas)
mb_strlen ($cadena,[$cod]) : Nmero de caracteres
mb_strpos ($pajar,$aguja) : Posicin de la primera ocurrencia
de $aguja en $pajar
mb_stripos ~ mb_strpos (stripos : indiferente a mayus minus)
mb_strtolower ($cadena) : devuelve la cadena en minsculas
mb_strtoupper ($cadena) : devuelve la cadena en maysculas
mb_ereg_replace ($patron,$sus,$orig) : sustituye todas las
apariciones de $patron por $sus en $orig
mb_split ($patron,$cadena) : divide $cadena en trozos
separados por $patron y devuelve un array con los trozos
124
Funciones predefinidas
Funciones de cadenas (codificadas)
<?php <?php
mb_internal_encoding("UTF-8"); mb_internal_encoding("UTF-8");
$cadena="Ahestmicamin"; $cad="soyunacadena";
echomb_strlen($cadena); mb_ereg_replace("soy","era",$cad);
18 eraunacadena
$cadena="Ahestmicamin";
$cadena="holasoyunacadena";
echomb_strpos($cadena,"soy"); print_r(mb_split("",$cadena));
5
Array
$cadena="AhEstMiCamin"; (
echomb_strtolower($cadena); [0]=>Ah
ahestmicamin [1]=>est
[2]=>mi
echomb_strtoupper($cadena); [3]=>camin
AHESTMICAMIN )
?> ?>
125
Funciones predefinidas
Funciones de arrays
count ($array) : devuelve el numero de elementos del array
asort ($array) : ordena $array utilizando los valores menor-mayor
arsort ($array) : ordena $array utilizando los valores mayor-menor
ksort ($array) : ~ asort pero utilizando las claves
krsort ($array) : ~ arsort pero utilizando las claves
array_keys ($array) : devuelve un array con las claves
array_values ($array) : devuelve un array con los valores
126
Funciones predefinidas
Funciones de arrays
in_array ($aguga,$array) : devuelve true si aguja est en $array
array_search($aguja,$array) : Busca $aguja en $array y si lo
encuentra devuelve su clave (si no, false)
implode ($separador,$array) : Devuelve una cadena con todos
los elementos del array separados por el separador
list ($var1,...,$varN) : Crea variables a partir de un array
127
Funciones predefinidas
Funciones de arrays
<?php
<?php
$usuarios=array("mikel","ane", $usuarios=array(
"eneko","manu"); "99999999"=>"mikel",
echocount($usuarios); "34343434"=>"ane",
4 "12121212"=>"eneko",
"76677667"=>"manu");
asort($usuarios);
print_r($usuarios); echocount($usuarios);
4
$Array krsort($usuarios);
( print_r($usuarios);
[1]=>ane
[2]=>eneko Array
[3]=>manu (
[0]=>mikel [99999999]=>mikel
) [76677667]=>manu
[34343434]=>ane
[12121212]=>eneko
)
?> ?> 128
Funciones predefinidas
Funciones de arrays
<?php
$usuarios=array(99999999"=>"mikel", "34343434"=>"ane",
"12121212"=>"eneko","76677667"=>"manu");
$dnis=array_keys($usuarios);
print_r($dnis);
Array
(
[0]=>99999999
[1]=>34343434
[2]=>12121212
[3]=>76677667
)
$cad_dni=implode(,,$dnis);
echo$cad_dni;
99999999,34343434,12121212,76677667
?> 129
Funciones predefinidas
Funciones de arrays
<?php
$usuarios=array("99999999"=>"mikel","34343434"=>"ane",
"12121212"=>"eneko","76677667"=>"manu");
$usuario=eneko;
if(in_array($usuario,$usuarios)){
echoElusuario$usuarioestenlalista.;
}
else{
echoElusuario$usuarionoestenlalista;
}
if($pos=array_search($usuario,$usuarios)){
unset($usuarios[$pos]);
}
?>
130
Accediendo a DB : MySQL
MySQL
Servidor de Bases de Datos
Almacenaje de datos en bruto
Cada BD es independiente
Las BD tienen tablas
Tablas tiene registros (filas + columnas)
BD : blog
132
Accediendo a DB : MySQL
MySQL : SLQ (Structured Query Language)
Consultas : Obteniendo datos de tablas
Obtener todos los datos de una tabla (tabla usuario)
SELECT * FROM usuario
138
Accediendo a DB : MySQL
Crear / Abrir la conexin
mysql_connect ($hostname,$usuario,$password)
Si no hay problemas devuelve el enlace
El enlace se cerrara automticamente al finalizar el
script o mediante la funcin mysql_close($link)
<?php
$con=mysql_connect(localhost,user,pass)
ordie(Nosepudoabrirlaconexin:.mysql_error());
if($con){
echoConexinexitosa;
}
?>
139
Accediendo a DB : MySQL
Cerrar la conexin
mysql_close ($link)
<?php
$con=mysql_connect(localhost,user,pass)
ordie(Nosepudoabrirlaconexin:.mysql_error());
...
mysql_close($con);
?>
140
Accediendo a DB : MySQL
Seleccionar BD
mysql_select_db($dbname,[$link]);
Devuelve true o false
<?php
$con=mysql_connect(localhost,user,pass)
ordie(Nosepudoabrirlaconexin:.mysql_error());
if (mysql_select_db(usuarios,$con)){
...
}
else{
echonosepudoseleccionarlabasededatos);
}
mysql_close($con);
?> 141
Accediendo a DB : MySQL
Realizar consultas
mysql_db_query($link)
Crear, eliminar, modificar ...
BD, tablas, permisos, registros ...
Valores retornados
SELECT,SHOW,DESCRIBE,EXPLAIN : resource
INSERT,UPDATE,DELETE,DROP ... : true o false
142
Accediendo a DB : MySQL
Consultas sin retorno de valor
<?php
$con=mysql_connect(localhost,user,pass);
$SQL=CREATEDATABASEprueba;
if(mysql_query($SQL)){echoBDcreadaconexito;}
$SQL=CREATETABLEprueba(userVARCHAR(10),passVARCHAR(10));
if(mysql_query($SQL)){echoTablacreadaconexito;}
$SQL="INSERTINTOprueba(user,pass)VALUES('usuario1','pass1')";
if(mysql_query($SQL)){echoSeinsertaronlosdatosconexito;}
$SQL=DELETEFROMpruebaWHEREuser='usuario1';
if(mysql_query($SQL)){echoRegistroeliminadoconexito;}
mysql_close($con);
?>
143
Accediendo a DB : MySQL
Consultas con retorno de valor
Valores en una variable tipo recurso
Funciones para tratar los valores retornados
mysql_fecth_assoc ($RS)
$RS : El valor retornado por mysql_query
Devuelve una matriz asociativa
Claves = nombres de las columnas
144
Accediendo a DB : MySQL
Consultas con retorno de valor
mysql_fetch_assoc
<?php
$con=mysql_connect(localhost,user,pass);
mysql_select_db("prueba",$con);
$SQL="SELECT*FROMprueba";
$RS=mysql_query($SQL);
while($fila=mysql_fetch_assoc($RS)){
echoUsuario:.$fila['user'];
echoPass:.$fila['pass'];
?>
145
Accediendo a DB : MySQL
Consultas con retorno de valor
mysql_fetch_row($RS)
$RS : El valor retornado por mysql_query
Devuelve una matriz numrica
Claves = enteros empezando por 0
146
Accediendo a DB : MySQL
Consultas con retorno de valor
mysql_fetch_row
<?php 0=usuario1
$con=mysql_connect(localhost,user,pass); 1=pass1
0=usuario2
mysql_select_db("prueba",$con); 1=pass2
...
$SQL="SELECT*FROMprueba";
$RS=mysql_query($SQL);
while($fila=mysql_fetch_row($RS)){
foreach($filaas$clave=>$valor){
echo$clave=$valor;
}
}
?>
147
Accediendo a DB : MySQL
Consultas con retorno de valor
mysql_fetch_array ($RS,[$tipo])
$RS : El valor retornado por mysql_query
Devuelve una matriz asociativa, numrica o ambas
Por defecto : ambas
$tipo : constante que puede tener los siguientes valores
MYSQL_ASSOC
MYSQL_NUM
MYSQL_BOTH
148
Accediendo a DB : MySQL
Consultas con retorno de valor
mysql_fetch_array
<?php 0=usuario1
$con=mysql_connect(localhost,user,pass); name=usuario1
1=pass1
mysql_select_db("prueba",$con); pass=pass1
0=usuario2
$SQL="SELECT*FROMprueba"; name=usuario2
1=pass2
$RS=mysql_query($SQL); ...
while($fila=mysql_fetch_array($RS)){
foreach($filaas$clave=>$valor){
echo$clave=$valor;
}
}
?>
149
Accediendo a DB : MySQL
Errores
mysql_error ($link)
Devuelve el texto del mensaje de error de la ltima
operacin MySQL
Si no ocurri error : (cadena vaca)
<?php
$con=mysql_connect(localhost,user,pass);
if(!mysql_select_db("pruebaaaa",$con)){
echomysql_error();
}
?>
Unknowndatabase'pruebaaaa'
150
Cookies
Pequeos ficheros que se escriben en el
ordenador del cliente
Contienen informacin que las pginas que las
han escrito pueden recuperar y utilizar
Se puede establecer el tiempo que el
ordenador del usuario guardar el fichero
Idioma,temas,ultimo acceso ...
151
Cookies
Creacin de cookie
setcookie($nombre[,$valor][,$expire][,$path]
[,$dominio][,$secure][,$httponly])
$nombre (string) : Nombre de la cookie
$valor (string ) : Valor de la cookie
$expire (int ) : Tiempo de caducidad (time()+60*60*24*30 : 30 dias)
$path (string) : ruta en el servidor
$dominio (string ) : dominio
$secure (bool) : indica si solo ser accesible mediante https
$httponly (bool) : accesible solo mediante http
152
Cookies
Obtencin de cookie
$_COOKIE[$nombreCookie]
<?php
//Establecer cookie
$caducidad=time()*60*60*24*365;
setcookie(idioma,$idiomaSeleccionado,$caducidad);
?>
<?php
//Obtener cookie
$idiomaPreferido=$_COOKIE[idioma];
?>
153
Sesiones
Mecanismo para preservar datos a lo largo de
accesos posteriores
Almacena informacin en el servidor accesible
a travs de diferentes scripts
La informacin se guarda en variables de
sesin
154
Sesiones
Iniciar sesin
session_start() : antes de cualquier etiqueta html
155
Sesiones
<?php
session_start();
if(usuarioValido($usuario)){
$_SESSION['valido']=true;
}
....
?>
<?php
session_start();
if(!empty($_SESSION['valido']and$_SESSION['valido']==true)){
...
}
else{
header(Location:login.php?error=true);
}
?>
156
Sesiones
Funciones
session_start : inicia la sesin
session_destroy : destruye los datos de sesin
session_unset : elimina todas las variables de
sesion
session_cache_expire : Devuelve/establece la
caducidad actual del cach
[http://es2.php.net/manual/es/ref.session.php]
157
Ficheros y directorios
Ficheros
abrir fichero : fopen ($fichero,$modo)
$fichero (string ) : ruta + nombre de fichero
$modo (string ) :
a : Aadir datos al final del fichero. Si no existe, se crea
a+ : Aadir datos al final del fichero y leer datos. Si no existe, se
crea.
r : Solo lectura
r+ : Lectura y escritura. Se aade al principio del fichero
w : Escritura. Todo el contenido ser borrado. Si no existe, se
crea.
w+ : Lectura y escritura. Todo el contenido ser borrado. Si no
existe se crea.
158
Ficheros y directorios
Ficheros
abrir fichero : fopen ($fichero,$modo)
<?php
$fichero=files/salida.txt;
if (fopen($fichero,'a+')){
echo(Elficherosehaabiertoconexito.);
}
else{
echo(Error:noseapodidoabrirelfichero);
}
?>
159
Ficheros y directorios
Ficheros
Leer desde fichero : fgets($fichero,$longitud)
Lee una linea de $longitud - 1 bytes
feof($fichero) : verifica si el apuntador del fichero est al
final del mismo
<?php
$fichero=fopen("datos.txt","r");
if($fichero){
while(!feof($fichero)){
$bufer=fgets($fichero);
echo$bufer;
}
fclose($fichero);
}
?>
160
Ficheros y directorios
Ficheros
Escribir en fichero : fwrite($fichero , $cadena [,$longitud] )
Escribe $cadena
\n : nueva linea
<?php
$fich=fopen("escrito","a+");
fwrite($fich,"holasoyunalinea\n");
fwrite($fich,"holasoyotralinea\n");
fwrite($fich,"holasoyuna:\nlinea");
?>
holasoyunalinea
holasoyotralinea
holasoyuna:
linea
161
Ficheros y directorios
Ficheros
Cerrar fichero : fclose ($fichero)
<?php
$fichero=files/salida.txt;
if(fopen($fichero,'a+')){
echo(Elficherosehaabiertoconexito.);
}
else{
echo(Error:noseapodidoabrirelfichero);
}
if(fclose($fichero)){
echoelficherosehacerradocorrectamente;
}
?>
[http://es2.php.net/manual/es/ref.filesystem.php]
162
Ficheros y directorios
Ficheros
Subir ficheros al servidor
<html>
...
<formaction=upload.phpenctype=multipart/form-data
method=post>
<inputtype=filename=fich/>
<?php
$dir=public/files/;
copy($_FILES['fich']['tmp_name'],$dir.$_FILES['fich']['name']);
[name]=>fichero.pdf
[type]=>application/pdf
[tmp_name]=>tmp/php/phpJbTkgB
[error]=>0
[size]=>450307
163
?>
Ficheros y directorios
Directorios
Abrir directorio : opendir($ruta)
Devuelve un recurso ($gestor)
<?php
if($gestor=opendir(images)){
while(false!==($fich=readdir($gestor))){
echo<imgsrc='$fich'/>;
}
}
?>
[http://es2.php.net/manual/es/book.dir.php]
164
Clases y objetos
Definicin de clases
Variables (atributos) y Funciones (mtodos)
Las funciones acceden a los atributos
class nombreClase { ... }
$this : accedemos a los atributos y mtodos de la clase
desde dentro de la clase
$this->name //accede al atributo $name
$this->imprimir() //accede al mtodo imprimir
Desde fuera de la clase:
$obj = new MiObjeto();
MiObjeto->imprimir();
<?php
classusuario{
private$nombre;
private$apellido;
publicfunctiongetNombre(){return$this->nombre;}
publicfunciongetApellido(){return$this->apellido;}
publicfunctionsetNombre($nombre){$this->nombre=$nombre;}
publicfunctionsetApellido($ape){$this->apellido=$ape;}
$user=newUsuario();
$user->setNombre(Jon);
$user->setApellido(Brown);
$usuario2=newUsuario();
$usaurio2->setNombre(Ane);
echousuario:.$usuario2->getNombre();
?> 166