SlideShare una empresa de Scribd logo
1 de 289
PHP BASICO
Paolo Mercado Gómez
Ingeniero de Sistemas
objetivos
JuanMartínez López 2
 Conoce la estructura básica de PHP
 Crea aplicaciones simples
 Confecciona formulario y lo lee por código
PHP
 Instala y Configura el servidor apache, Y
PHP
¿Qué es PHP?
JuanMartínez López 3
 PHP (acrónimo de "PHP: Hypertext
Preprocessor") es un lenguaje de "código
abierto" interpretado, de alto nivel, incrustado
en páginas HTML y ejecutado en el servidor.
Introducción
4
● ¿Que es PHP?
– Lenguaje de programación de alto nivel
– Empotrado en páginas HTML
– Ejecutado en servidor
– Software libre
Introducción (II)
5
● ¿Que puedo hacer con PHP?
– Scripts del lado del servidor
– Scripts en linea de comandos
– Aplicaciones con interfaz gráfica PHP-GTK
Versiones de PHP
JuanMartínez López 6
 PHP/FI
 PHP/FI 2.0
 PHP 3
 PHP 4
 PHP 5
Requerimiento para Instalar
PHP
JuanMartínez López 7
 Servidor web (apache, IIS, otros)
 Appserver
 Foxserv
 Wamp, map y lamp
 Instalación
 Localhost o 127.0.0.1
¿Qué características tiene
PHP?
8
Versiones para la mayoría de los S.O.
Soporta la mayoría de los servidores web
Tipos de programación:
– Procedimental
– Orientada a objetos
Generación de múltiples formatos (HTML,
XML, PDF, imágenes, ...)
Múltiples extensiones
9
Bases de datos:
- Dbase
- Hyperwave
- IBM DB2
- Direct MS-SQL
- MySQL
- ODBC
- Oracle
- PostgreSQL
Protocolos:
- LDAP
- IMAP
- SNMP
- NNTP
- POP3
- HTTP
Scripts del lado del servidor
1
0
●
Servidor
BD
LDAP
...
/
1
HTML + PHP
Procesa PHP
Genera HTML
Cliente
Scripts del lado del servidor
1
1
●
Servidor Web : Apache2 Servidor BD:
MySQL
c:
HTML + PHP
Procesa PHP
Genera HTML
Navegador
(Firefox)
● Requisitos
– PHP5
– Servidor Web : apache2
– Servidor BD : mysql
– Editor : netbeans
Todo en 1 : XAMPP (Apache + MySQL + PHP)
Netbeans
●
●
¡¡¡ Software libre !!!
Requisitos
● Instalación en windows
– XAMPP : http://www.apachefriends.org/es/xampp.html
– Installer : Instalación por defecto : C:xampp
Raiz de documentos : c:xampphtdocs
Configuración php : c:xamppapachebinphp.ini
Configuración apache :
C:xamppapacheconfhttpd.conf
Configuración mysql : C:xamppmysqlbinmy.cnf
–
–
–
–
● Navegador : http://localhost
● MySQL : http://localhost/phpmyadmin
Instalación en windows
9
● Editor de scripts php
●
– Editor de texto plano
IDE (Entorno de desarrollo integrado)–
● Editor
Resaltado de sintaxis
Plantillas html
Debuger
Proyectos
...
●
●
●
●
●
Instalación en windows (II)
Primer proyecto php
1
5
●
– Archivo → Proyecto nuevo
Categoría → PHP Proyectos
→ PHP application
Project Name → Nombre_del_proyecto
Sources folder →
C:xampphtdocsNombre_del_proyecto
Run as → Local web site
Project URL → http://localhost/Nombre_del_proyecto
–
–
–
–
–
–
EJEMPLO
 <html>
<head>
<title>Prueba </title>
</head>
<body>
<?php
echo “Bienvenido al curso de PHP básico!";
?>
</body>
</html>
JuanMartínez López 1
6
El primer script
7
<html>
<head>
<title>primer script</title>
</head>
<body>
<?php
echo "<p>Hola mundo</p>";
?>
<p>Más contenido HTML</p>
</body>
</html>
de fin
Etiqueta
de inicio
Orden a
ejecutar
Etiqueta
Ejercicio: probar el primer
script
1
8
+ Crea un documento de texto con extensión .php en el espacio web
de tu servidor.
+ Copia el siguiente contenido.
+ Accede desde el navegador a este script alojado en tu servidor
http://127.0.0.1/hola.php
<html>
<body>
<?php
echo "<p>Hola mundo</p>";
?>
</body>
</html>
Sintaxis básica
19
Separación de instrucciones con ;
La etiqueta de fin ?> también equivale a fin
de instrucción
Comentarios:
// ...
/*...*/
Insertar código PHP
20
<?php
echo “Hola Mundo”
?>
<? echo “Hola Mundo” ?>
<script language="php">
echo “Hola Mundo”
</script>
Las tres son
equivalentes
Sintaxis Básica (I)
2
1
● Código PHP empotrado en documentos HTML
Instrucciones entre etiquetas:
– <?php ... ?>
– <script language=”php”> ... </script>
– <? ... ?>
– <% ... %>
recomendado : <?php .... ?>
– XHTML
– XML
●
●
Sintaxis Básica (II)
2
2
● 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>Título de la página</title>
</head>
<body>
<?php
echo "<p>Estas usando:".$_SERVER['HTTP_USER_AGENT']."</p>";
?>
</body>
</html>
Sintaxis Básica (III)
2
3
● Scripts PHP :
– Serie de sentencias / instrucciones
– Ejecutadas secuenciálmente
– Datos en variables
– Estructuras de control
– Funciones
– Clases (POO)
17
Sintaxis Básica (IV)
● Los espacios/tabulaciones/saltos de linea entre
las instrucciones, no afectan al comportamiento
– Las siguientes instrucciones tienen el mismo resultado:
<?php echo “hola mundo” ;?>
<?php echo “hola mundo”; ?>
<?php
echo “hola mundo”;
?>
<?php echo “hola mundo”;
?>
18
Sintaxis Básica (V)
● Las instrucciones siempre se finalizan con
punto y coma
<?php
echo “<p>hola mundo</p>”;
echo “<p>Esto es una prueba</p>”;
?>
<?php
echo “<p>hola mundo</p>”;echo “<p>Esto es una prueba</p>”;
?>
<?php
echo “<p>hola mundo</p>”;
echo “<p>Esto es una prueba</p>”;
?>
19
Sintaxis Básica (VI)
● Comentarios : Texto que no se ejecuta
– Linea : //
<?php
//Esta linea no se tiene en cuenta
echo “<p>hola mundo</p>”;//Este comentario tampoco
echo “<p>Esto es una prueba</p>”;
?>
– Bloque: /* ... */
<?php
/*Esta linea no se tiene en cuenta
esta tampoco
tampoco esta/*
/* No se puede anidar
/* bloques de comentarios*/
*/
?>
Estos comentarios
producirían un error
Variables
JuanMartínez López 2
7
 Una variable es un contenedor de
información, en el que podemos meter
números enteros, números decimales,
caracteres
 En PHP todas las variables comienzan con el
símbolo del dólar $
 Ejemplo
 $nombre, $_nombre, $nombre_completo
20
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 mayúsculas/minúsculas
– El nombre de la variable :
● Empezar con letra o _ (guión bajo)
Contener : letras números _●
<?php
$cont=1;
$_cont=1;
$nombre_usuario=”mikel”
$PESO22_=”102g”
?>
<?php
$1Usuario = “mikel”;
$usuario-2 = “ainara”;
$número = 12;
$cont 1 = 0;
?>
CORRECTO INCORRECTO
clave gx-240itladell
JuanMartínez López 10
Ejemplo de uso de variable
 <html>
<head>
<title>Ejemplo de PHP</title>
</head>
<body>
<?php
$a = 1;
$b = 3.34;
$c = "Hola Mundo";
echo $a,"<br>",$b,"<br>",$c;
?>
</body>
</html>


Usuario gx-240
Gx-240 inapdell
22
Variables
●
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 ejecución
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)
?>
23
Variables
● Para forzar variables
–settype($variable,”tipo”)
–Moldear variables (casting)
Mostrar tipo variable
–var_dump($variable);
Mostrar contenido variable
– print_r($variable)
– echo
– printf
●
●
24
Variables
● Mostrar contenido variables : ejemplos
<?php
$cont = 123;
echo $cont;
123
$mensaje =”Página en construcción”;
echo $mensaje;
Página en construcción
echo $cont;
echo $mensaje;
123Página en construcción
?>
Variables
● Mostrar contenido variables : Saltos de linea
<?php
$cont = 123;
$mensaje =”Página en construcción”;
echo $cont;
echo $mensaje;
?>
Fuente HTML :
123Página en construcción
Navegador:
123Página en construcción
3
3
Variables
● Mostrar contenido variables : Saltos de linea (II)
<?php
$cont = 123;
$mensaje =”Página en construcción”;
echo $cont;
echo “<br/>”;
echo $mensaje;
?>
Fuente HTML :
123<br/>Página en
construcción
Navegador:
123
Página en construcción
3
4
Variables
● Mostrar contenido variables : Saltos de linea (III)
<?php
$cont = 123;
$mensaje =”Página en construcción”;
echo $cont;
echo “n”;
echo $mensaje;
?>
Fuente HTML :
123
Página en construcción
Navegador:
123Página en construcción 3
5
Aritméticos
JuanMartínez López 36
Ejemplo
JuanMartínez López 37
html>
<head>
<title>Ejemplo de PHP</title>
</head>
<body>
<?php
$a = 8;
$b = 3;
echo $a + $b,"<br>";
echo $a - $b,"<br>";
echo $a * $b,"<br>";
echo $a / $b,"<br>";
$a++;
echo $a,"<br>";
$b--;
echo $b,"<br>";
?>
</body>
</html>
Practica 2
JuanMartínez López 38
 TOMADO EN CUENTA QUE DOMINA LAS
OPERACIONES ARITMETICA REALIZA EL
SIGUIENTE PROGRAMA.
 CALCULAR TU EDAD EN LOS
SIGUINETES RENGLONES
- POR MES, SEMAMA, DIAS, HORA ,
MINUTOS Y SEGUNDO.
 DEBE GRABAR EL ARCHIVO CON EL
NOMBRE DE calculo.php
Comparación
JuanMartínez López 39
Operadores de Asignación
JuanMartínez López 40
 El operador básico de asignación es "=". A
primera vista, usted podría pensar en él como
"es igual a". No lo haga. Lo que quiere decir en
realidad es que el operando de la izquierda
recibe el valor de la expresión a la derecha (es
decir, "se define a").
 El valor de una expresión de asignación es el
valor que se asigna. Es decir, el valor de "$a =
3" es 3. Esto le permite hacer una que otra cosa
curiosa:
Ejemplo de Comparación
JuanMartínez López 41
<html>
<head>
<title>Ejemplo de PHP</title>
</head>
<body>
<?php
$a = 8;
$b = 3;
$c = 3;
echo $a == $b,"<br>";
echo $a != $b,"<br>";
echo $a < $b,"<br>";
echo $a > $b,"<br>";
echo $a >= $c,"<br>";
echo $b <= $c,"<br>";
?>
</body>
</html>
Operadores de Control de
Errores
JuanMartínez López 42
 PHP ofrece soporte para un operador de
control de errores: el signo de arroba (@).
Cuando es colocado al comienzo de una
expresión en PHP, cualquier mensaje de
error que pudiera generarse a causa de esa
expresión será ignorado.
ejemplo
JuanMartínez López 43
 <?php
/* Error intencional de archivo
*/ $mi_archivo = @file ('archivo_que_no_existe')
or die ("La apertura de archivo ha fallado: el error fue
'$php_errormsg'");
// esto funciona con cualquier expresion, no solo con funciones:
$valor = @$cache[$llave]; // no producira una anotacion si el indice
$llave no existe. ?>
JuanMartínez López 20
Lógicos
 Los operadores lógicos son usados para evaluar varias
comparaciones, combinando los posibles valores de
estas
Ejemplo
JuanMartínez López 45
 <html>
<head>
<title>Ejemplo de PHP</title>
</head>
<body>
<?php
$a = 8;
$b = 3;
$c = 3;
echo ($a == $b) && ($c > $b),"<br>";
echo ($a == $b) || ($b == $c),"<br>";
echo !($b <= $c),"<br>";
?>
</body>
</html>
Operadores de
Incremento/Decremento
PHP ofrece soporte de operadores de pre- y post-incremento y
decremento, estilo-C.
JuanMartínez López 46
Datos escalares. Valores
numéricos
47
Podemos trabajar de forma similar a C/C++
<html><body>
<?php
$num = 7;
$cont = 9;
$suma = $num + $cont;
echo "<p>SUMA = $suma</p>";
?>
</body></html>
Ejercicio: probar el script
anterior
48
+ Crea un documento de texto con extensión .php en el espacio web
de tu servidor.
+ Copia el siguiente contenido.
+ Accede desde el navegador a este script
http://127.0.0.1/suma.php
<html><body>
<?php
$num = 7;
$cont = 9;
$suma = $num + $cont;
echo "<p>SUMA = $suma</p>";
?>
</body></html>
31
Tipos
● Tipos
– Escalares
● Enteros
Coma flotante
Cadenas
Booleanos
●
●
●
– Compuestos
● Matrices
Objetos●
– Null
– Resource
32
Tipos : Enteros
● Enteros (Integer)
– Números enteros del conjunto Z = {...,-2,1,0,1,2,...}
– Tamaño 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)
33
Tipos : Enteros (II)
● Enteros (Integer)
Declarando variables de enteros:
<?php
$cont = 123;// Un número decimal
$cont = -123;// Un número decimal negativo
$cont = 0123;// Un número octal
$cont = 0x1A;// Un número hexadecimal
$edadMinima = 18;
?>
Desbordamiento de enteros :
<?php
$numeroGrande = 2147483647;
var_dump($numeroGrande);// Devuelve : int(2147483647)
$numeroGrande = 2147483648;
var_dump($numeroGrande);// Devuelve : float(2147483647)
?>
34
Tipos : Reales
● Números de coma flotante (Float)
– Números reales
– También conocidos como doble o real
– Tamaño depende de la plataforma
– Usual : ~1.8e308
<?php
$a = 1.234;
$b = 1.2e3;
$c = 7E-10;
?>
35
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
?>
36
Operadores aritméticos
● Podemos realizar operaciones aritméticas
– El operador ' / ' devuelve un valor flotante a menos que los dos operandos sean enteros y
los números sean divisibles sin residuos
Operacion Operador Ejemplo
suma + $total = $precio + $iva;
resta - $oferta = $total - $descuento;
multiplicacion * $iva = $precio*0.16;
division / $media = $suma / $total;
módulo (resto) % $resto = $total % 5;
negación - $a = 10*-$b;
Operadores aritméticos (II)
● El orden de ejecución :
–
–
– Izquierda a derecha
– Paréntesis : orden de ejecución
<?php
?>
5
5
echo (8 % 3 * 5); // 10
echo (8 * 3 % 5); // 4
echo (5 * 8 % 3); // 1
echo (5 % 8 * 3); // 15
echo 8%(3*5); // 8
echo 8*(3%5); //24
echo 5 *( 8 % 3); //10
echo 5 %( 8 * 3); // 5
echo ((($a+($b-$c))/$d) % 3); //paréntesis de aperture = paréntesis de cierre
* / %
+ -
Operadores aritméticos (III)
● Ejemplos :
<?php
$a = 10;
$b = 30 + $a;
echo $b *0.6;
$c = (($a * 40) - $b) / 2;
$pie = 10;
$altura = 25;
$superficie = ($pie*$altura)/2;
?>
5
6
Operadores aritméticos (IV)
● Operadores de incremento/decremento :
<?php
$a = 10;
$a++;
echo $a; //11
$a--;
echo $a; // 10
?>
3
9
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.
Tipos : Cadenas
4
9
● Cadenas (String)
– Secuencia de caracteres
– Antes de PHP 6 : un carácter -> un byte
– 256 tipos de caracteres diferentes
– Diferentes maneras de especificar
– Caracteres de escape
– No hay limite de tamaño
41
Tipos : Cadenas
● Cadenas (String) : Definición de cadenas
– Comillas simples : '
– Imprimir comilla simple:
● '
– Para imprimir barra invertida
● 
<?php
echo 'Esto es una cadena';
$c = 'Una cadena en una variable';
echo 'Imprime una
cadena con
saltos';
?>
Tipos : Cadenas
6
0
● Cadenas (String) : Definición de cadenas
– Comillas dobles : “Esto es una cadena”
– Caracteres escapados
● n : Imprime una linea nueva
● t : Imprime una tabulación horizontal
 : Imprime una barra invertida●
● $ : Imprime un signo de dólar
” : Imprime una comilla doble●
– Los nombres de las variables serán
expandidos
Tipos : Cadenas
● Cadenas : Comillas dobles
<?php
$nombre = “esti”;
echo ”Frase con n tres n saltos de linea.n”;
Frase con
tres
saltos de linea.
$articulo = “tFrase tabuladanSin tabular”;
echo $articulo;
Frase tabulada
Sin Tabular
echo ”Ha seleccionado ”5” 'articulos' “;
Ha seleccionado “5” 'articulos'
“n” != “<br/>”
?>
6
1
Tipos : Cadenas
● Cadenas : Expansión de variables
– Las variables son interpretadas
<?php
$nombre = “ainhoa”;
echo ”Bienvenid@ $nombre”; // Imprime Bienvenid@ ainhoa
$articulo = “camiseta”;
$cantidad = 5;
echo ”Ha seleccionado $cantidad $articulos “; // Incorrecto
echo ”Ha seleccionado $cantidad ${articulo}s “; // Correcto
echo ”Ha seleccionado $cantidad {$articulo}s “; // Correcto
echo ”Ha seleccionado $cantidad $articulo's “; // Correcto
?>
6
2
45
Tipos : Cadenas
● Cadenas : Heredoc
– Definir cadenas largas
– Uso similar a comillas dobles
– Caracteres de escape
– Expansión de variables
<?php
$cadena = <<<FIN
Ejemplo de una cadena
que se extiende por varias líneas
usando la sintaxis heredoc.
FIN;
?>
<?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 : Heredoc
– Expansión de variables
Tipos : Cadenas
● Cadenas : Acceso a caracteres
– Indices [ 0 .. longitud_cadena -1]
<?php
$cadena = “esto es una prueba”;
echo $cadena;
esto es una prueba
echo $cadena[0]; // Imprime el primer caracter
e
echo $cadena[6]; // Imprime el 7 caracter
s
$cadena[0]='E';
echo $cadena;
Esto es una prueba
47?>
Operadores de cadena
●
● Asignación sobre concatenación ' .= '
Concatenación ' . '
<?php
$cadena = “<label class='datos'>”.$nombre.” “.$apellido”.”</labe>;
echo $cadena;
<label class='datos'>Esti Goikoetxea</label>
//Html : Esti Goikoetxea
?>
<?php
$cadena = “<label class=';
...
$cadena.=”datos”;
...
$cadena.=”'>”.$nombre.” “.$apellido”.”</label>;
...
?> 48
49
Tipos : Booleanos
● Booleanos :
– 2 valores : true o false || TRUE o FALSE
● 0,0.0, “” , '',”0”, null,array vacio = false
Cualquier otro valor = true●
<?php
var_dump((bool)
""); // bool(false)
var_dump((bool)
var_dump((bool)
var_dump((bool)
var_dump((bool)
var_dump((bool)
var_dump((bool)
var_dump((bool)
1);
-2);
"foo");
2.3e5);
array(12));
array());
"false");
//
//
//
//
//
//
//
bool(true
)
bool(true
)
bool(true
)
bool(true
)
bool(true
Operadores de comparación
● Las expresiones de comparación siempre
devuelven un valor boolean
<?php
6
8
var_dump($a>$b);
var_dump($a<$b);
var_dump($a>$c);
var_dump($b==$c);
var_dump($b===$c);
var_dump($b!=$c);
var_dump($b!==$c);
var_dump($b<>$c);
var_dump($a>=$b);
?>
//bool(true)
//bool(false)
//bool(true)
//bool(true)
//bool(false)
//bool(false)
//bool(true)
//bool(false)
//bool(true)
$a = 5;
$b = 0;
$c = "0";
Operadores de comparación
6
9
● Operadores
Operacion Nombre Resultados
$a == $b Igual TRUE si $a es igual a $b.
$a === $b Idéntico TRUE si $a es igual a $b, y son del mismo
tipo.
$a != $b Diferente TRUE si $a no es igual a $b.
$a <> $b Diferente TRUE si $a no es igual a $b.
$a !== $b No idénticos TRUE si $a no es igual a $b.TRUE si $a no
es igual a $b, o si no son del mismo tipo.
$a < $b Menor que TRUE si $a es escrictamente menor que $b.
$a > $b Mayor que TRUE si $a es estrictamente mayor que $b.
$a <= $b Menor o igual que TRUE si $a es menor o igual que $b.
$a >= $b Mayor o igual que TRUE si $a es mayor o igual que $b.
Operadores lógicos
7
0
● Operadores
Operacion Nombre Resultados
$a and $b Y TRUE si tanto $a como $b sonTRUE.
$a or $b O TRUE si cualquiera de $a o $b es
TRUE.
$a xor $b XOR TRUE si $a o $b esTRUE, pero no
ambos.
! $a No TRUE si $a no esTRUE.
$a && $b Y TRUE si tanto $a como $b sonTRUE.
$a || $b O TRUE si cualquiera de $a o $b es
TRUE.
Tipos : Array
7
1
● Matrices (Array)
– Serie de pares de clave/valor (con un orden)
– No puede haber claves repetidas
– Multidimensionales
– Por defecto : claves numéricas 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
Tipos : Array
● Matrices (Array) : Definir array
– Podemos definir/crear arrays de diferentes maneras
<?php
$laborables = array(“lunes”,”martes”,”miércoles”,”jueves”,”viernes”);
$laborables = array(0=>”lunes”,1=>”martes”,2=>”miércoles”,
3=>”jueves”,4=>”viernes”);
?>
– De las dos maneras tendríamos la siguiente
estructura (¡en una sola variable!)
7
2
Índice 0 1 2 3 4
Valor “lunes” “martes” “miércoles” “jueves” “viernes”
Tipos : Array
● Matrices (Array) : Definir array
– Podemos especificar los índices directamente
– Los índices no tiene por que ser
consecutivos
<?php
$festivos[0]=”sábado”;
$festivos[1]=”domingo”;
?>
7
3
Índice 0 1
Valor “sábado” “domingo”
Tipos : Array
● Matrices (Array) : Definir array
– Los índices numéricos no se
reordenan
– Aunque disponemos de herramientas para hacerlo
<?php
$usuario[0]=”ainhoa”;
$usuario[2]=”ane”;
$usuario[1]=”iñaki”;
?>
7
4
Índice 0 2 1
Valor “ainhoa” “ane” “iñaki”
Tipos : Array
● Matrices (Array) : Añadir elementos al array
– Podemos añadir elementos al array sin especificar
el índice
<?php
$estaciones[0]=”invierno”;
$estaciones[1]=”primavera”;
$estaciones[]=”verano”;
$estaciones[]=”otoño”;
?>
– De esta manera se añadirán al final del array y su
indice será el mayor indice del array incrementado
en uno 7
5
Índice 0 1 2 3
Valor “invierno” “primavera” “verano” “otoño”
Tipos : Array
● Matrices (Array) : Acceder a los valores
$laborables = array(“lunes”,”martes”,”miércoles”,”jueves”,”viernes”);
echo $laborables;
Array
echo $laborables[2];
miércoles
$estaciones[0]=”invierno”;
$estaciones[1]=”primavera”;
$estaciones[]=”verano”;
$estaciones[]=”otoño”;
print_r($estaciones);
Array ( [0] => invierno [1] => primavera [2] => verano [3] => otoño )
7
6
Tipos : Array
● Matrices (Array) : Array asociativo
– Los índices no tienen por que ser
numéricos<?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 ... )
?>
7
7
Tipos : Array
● Matrices (Array) : Array asociativo
– Generalmente con BD => Asociativos
<?php
echo “<tr><td>Nombre:</td><td>” . $fila['nombre'] . ”</td></tr>”;
echo “<tr><td>Apellido:</td><td>” . $fila['apellido'] . ”</td></tr>”;
echo “<tr><td>Dni:</td><td>” . $fila['dni'] . ”</td></tr>”;
?>
7
8
Nombre Ainara
Apelido Etxeberria
Dni 99999999K
Tipos : Array
● Matrices (Array) : Array multidimensional
<?php
$apuntados = array(
“enero”=>array(“mikel”,”ainhoa”,”ane”),
”febrero”=>array(“ainara”,”eneko”),
....
,”diciembre”=>0);
?>
7
9
Índice “enero” “febrero” .... “diciembre”
Valor “mikel “ainara”
“ainhoa” “eneko”
“ane”
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
?>
8
0
Tipos : Array
● Matrices (Array) : Array multidimensional
<?php
...
echo “<pre>”;
print_r ($apuntados);
echo “</pre>”;
Array
(
[enero] => Array
(
[0] => mikel
[1] => ainhoa
[2] => ane
)
[febrero] => Array
(
[0] => ainara
....
[diciembre] => 0
)?>
8
1
Operadores de matrices
8
2
● Operadores
Operacion Nombre Resultados
$a + $b Unión Unión de $a y $b.
$a == $b Igualdad TRUE si $a y $b tienen las mismas parejas llave/valor.
$a === $b Identidad TRUE si $a y $b tienen las mismas
parejas llave/valor en el mismo orden
y de los mismos tipos.
$a!=$b No-igualdad TRUE si $a no es igual a $b.
$a <> $b No-igualdad TRUE si $a no es igual a $b.
$a !== $b No-identidad TRUE si $a no es idéntico a $b.
Tipos : NULL
● Variable que no tiene valor
Posibles valor : null || NULL●
<?php
$var =null;
?>
8
3
Tipos : Resource
8
4
●
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);
....
●
●
●
66
Constantes
● Definición 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
?>
Estructuras de control
86
De cuando en cuando, debemos ejecutar diferentes
porciones de código en función de ciertas
condiciones. En estos casos debemos usar las
sentencias condicionales.
Para ejecutar diferentes porciones de código de
forma repetida, en lugar de replicar varias veces el
mismo código, debemos usar las sentencias de tipo
bucle.
JuanMartínez López 87
 Las sentencias condicionales nos permiten
ejecutar o no unas ciertas instrucciones
dependiendo del resultado de evaluar una
condición. Las más frecuentes son la
instrucción if y la instrucción switch.
 Sentencia if ... else
Estructuras de control : IF
68
Estructuras de control : IF
●
Permite la ejecución condicional de sentencias
Si la condición se cumple en tiempo de
ejecución : se ejecuta un bloque de
código predeterminado
●
● Las tabulaciones no son necesarias pero si
recomendables para la legibilidad el código
<?php
if (expr)
sentencia
?>
Estructuras de control : IF
● expr : “cualquier cosa que tiene un valor”
<?php
$a = 5;
?>
– Los literales son expresiones
– '5' es una expresión con el valor 5
– Las variables son expresiones
– $a es una expresión con el valor 5
6
9
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 )
echo “a es mayor que cero”;
?>
– $a > 0 es una expresión con valor TRUE
7
9
Estructuras de control : IF
● expr se evalúa a su valor condicional (boolean)
– Si la expresión se evalúa como true se ejecuta la
sentencia
– Si la expresión se evalúa como false no se ejecuta
la sentencia
<?php
9
1
$a = 10;
if ($a >
print
0)
"a es mayor que 0";
if ($a)
print “a es diferente a 0”;
?>
Estructuras de control
condicional
92
<html>
<body>
<?php
$d=date("D");
if ($d=="Fri") {
echo "Buen finde!";
}
?>
</body>
</html>
<html><body>
<?php
$d=date("D");
if ($d=="Fri"){
echo "Buen finde!";
}else{
echo "Buenos dias!";
}
?>
</body></html>
Ejemplo
JuanMartínez López 93
 <html>
<head>
<title>Ejemplo de PHP</title>
</head>
<body>
<?php
$a = 8;
$b = 3;
if ($a < $b)
{
echo "a es menor que b";
}
else
{
echo "a no es menor que b";
}
?>
</body>
</html>
Ejemplo
JuanMartínez López 94
<html>
<body>
<?php
$d=date("D");
if ($d=="Fri")
{
echo "Hello!<br />";
echo "Have a nice weekend!";
echo "See you on Monday!";
}
?>
</body>
</html>
Operadores de Lógica
JuanMartínez López 95
Practica 3.
JuanMartínez López 96
Vamos a crear un programa donde podamos
hacer la siguiente condición.
Donde si el valor numérico es mayor de 20 y
menor de 30, imprime un letrero edad de
productividad
Si la edad es mayor de 30 y menor de 50,
imprime un letrero indicando edad rica
Si es mayor de 50 Edad de los contrario no
califica.
elseif
JuanMartínez López 97
 como su nombre sugiere, es una combinación de if
y else. Como else, extiende una sentencia if para
ejecutar una sentencia diferente en caso de que la
expresión if original se evalúa como FALSE. No
obstante, a diferencia de else, ejecutará esa
expresión alternativa solamente si la expresión
condicional elseif se evalúa como TRUE. Por
ejemplo, el siguiente código mostraría a es mayor
que b, a es igual a b o a es menor que b:
Ejemplo
JuanMartínez López 98
 <?php
if ($a > $b) {
echo "a es mayor que b";
}
elseif ($a == $b) {
echo "a es igual que b";
}
else
{
echo "a es mayor que b";
}
?>
Ejemplo
JuanMartínez López 99
<html>
<body>
<?php
$d=date("D");
if ($d=="Fri")
echo "Have a nice weekend!";
elseif ($d=="Sun")
echo "Have a nice Sunday!";
else echo "Have a nice day!";
?>
</body>
</html>
La Sentencia Switch
 podemos ejecutar unas u otras instrucciones
dependiendo del valor de una variable
JuanMartínez López 10
0
Ejemplo del Swict
JuanMartínez López 10
1
<html>
<body>
<?php
switch ($x) {
case 1:
echo "Number 1";
break;
case 2:
echo "Number 2";
break;
case 3:
echo "Number 3";
break;
default:
echo "No number between 1 and 3";
}
?>
</body>
</html>
Ejemplo
JuanMartínez López 10
2
 <html>
<head>
<title>Ejemplo de PHP</title>
</head>
<body>
<?php
$posicion = "arriba";
switch($posicion) {
case "arriba": // Bloque 1
echo "La variable contiene";
echo " el valor arriba";
break;
case "abajo": // Bloque 2
echo "La variable contiene";
echo " el valor abajo";
break;
default: // Bloque 3
echo "La variable contiene otro valor";
echo " distinto de arriba y abajo";
}
?>
</body>
</html>
Sentencia while
JuanMartínez López 10
3
 repetir la ejecución de un conjunto de
instrucciones mientras se cumpla una
condición.
 Mientras la condición sea cierta se reiterará
la ejecución de las instrucciones que están
dentro del while.
 Crea un loop hasta que la condicion se
cumpla.
Sintaxis de While
JuanMartínez López 10
4
 <?php
while (condición)
{
intrucciones a ejecutar.
}
?>
Ejemplo 1 de while
JuanMartínez López 10
5
<html>
<body>
<?php
$i=1;
while($i<=5) {
echo "The number is " . $i . "<br />";
$i++;
}
?>
</body>
</html>
Ejemplo 1 de while
JuanMartínez López 10
6
<html>
<body>
<?php
$i=10;
while($i>=1) {
echo "The number is " . $i . "<br />";
$i=$i - 1
}
?>
</body>
</html>
Ejemplo 2 de While
JuanMartínez López 10
7
<html>
<head>
<title>Ejemplo de PHP</title>
</head>
<body>
Inicio<BR>
<?php
$i=0;
while ($i<10)
{
echo "El valor de i es ", $i,"<br>";
$i++;
}
?>
Final<BR>
</body>
</html>
Do.. while
JuanMartínez López 10
8
 Los bucles do..while son muy similares a los
bucles while, excepto que las condiciones se
comprueban al final de cada iteración en vez
de al principio, es decir, que esta sentencia
primero se ejecuta y luego evalúa.
Ejemplo
JuanMartínez López 10
9
<?php
$i = 1;
do {
echo $i;
$i++;
} while ($i< 15);
?>
Crea un bucle de los numeros del
1 al 14.
<?php
$i = 0;
do {
print $i;
} while ($i>0);
?>
Este ejemplo
solo se
ejecutara una
sola vez
For
 Los bucles for son los bucles más complejos
en PHP. Se comportan como su
contrapartida en C. La sintaxis de un bucle
for es.
 for ($i = 1; $i <= 10; $i++)
Se define condición Incremento
JuanMartínez López 11
0
Ejemplos
JuanMartínez López 11
1
 <html>
<head>
<title>Ejemplo de PHP</title>
</head>
<body>
Parte de HTML normal.
<BR>
<?php
echo "Parte de PHP<br>";
for($i=0;$i<10;$i++)
{
echo "Linea ".$i."<br>";
}
?>
</body>
</html>
Array
JuanMartínez López 11
2
 array -- Crear una matriz
 Devuelve una matriz con los parámetros que
se le pasan. A dichos parámetros se les
puede dar un índice usando el operador =>.
 Descripción
 array array ( mixed ...)
Ejemplos
JuanMartínez López 11
3
 $frutas = array (
"frutas" => array("a"=>"naranja", "b"=>"plátano", "c"=>"manzana"),
"números" => array(1, 2, 3, 4, 5, 6),
"hoyos" => array("primero", 5 => "segundo", "tercero")
);
foreach
JuanMartínez López 11
4
 tal como perl y algunos otros lenguajes. Esto
simplemente da un modo fácil de iterar sobre
matrices.
 funciona solamente con matrices y devolverá
un error si se intenta utilizar con otro tipo de
datos ó variables no inicializadas
Nota: foreach no soporta la caracteristica de suprimir
mensajes de error con '@'.
48puntero interno del array se avanzaJueannMaurtínneaz López
unidad (así en el siguiente paso, se estará
Sintaxis de foreach
foreach(expresion_array as $key => $value)
sentencia
La segunda manera hace lo mismo, salvo
que la clave del elemento actual será
asignada a la variable $key en cada
iteración
La primera forma recorre el array dado por
expresion_array. En cada iteración, el valor
del elemento actual se asigna a $value y el
 foreach(expresion_array as $value)
sentencia

ejemplo
JuanMartínez López 11
6
 <?php
$arr = array("one", "two", "three");
reset ($arr);
while (list(, $valor) = each ($arr)) {
echo "Valor:”, $valor<br>n";
}
foreach ($arr as $valor) {
echo “Valor:”, $valor<br>n";
}
?>
DEFINE
JuanMartínez López 11
7


Define una constante con nombre, que es similar a una variable.
Descripción
int define ( string name, mixed value [, int case_insensitive])
.
EJEMPLO
<?php
define("CONSTANT", "HOLA php.");
echo CONSTANT; // outputs "HOLA PHP.“
?>
Constante
JuanMartínez López 11
8
 Las constantes no tienen un símbolo dólar '$'
precediéndolas;
 Las constantes son accesibles desde cualquier
lugar sin tener en cuenta las reglas de ámbito de las
variables.
 Las constantes no pueden ser redefinidas o
iniciadas una vez que han sido establecidas, y
 Las constantes sólo pueden evaluar valores
escalares
MANEJANDO CADENAS DE
CARCTERES EN PHP
JuanMartínez López 11
9
 Dado el uso del lenguaje PHP el tratamiento
de cadenas es muy importante, existen
bastantes funciones para el manejo de
cadenas, a continuación explicaremos las
más usadas.
 strlen(cadena). Nos devuelve el número de
carácteres de una cadena.
 split(separador,cadena). Divide una cadena en
varias usando un carácter separador.
 sprintf(cadena de formato, var1, var2...).
Formatea una cadena de texto al igual que printf
pero el resultado es devuelto como una cadena.
 substr(cadena, inicio, longitud). Devuelve una
subcadena de otra, empezando por inicio y de
longitud.
 $email=juan5654@gmail.com
 Split(@,email)
JuanMartínez López 12
0
 chop(cadena). Elimina los saltos de línea
y los espacios finales de una cadena.
 strpos(cadena1, cadena2). Busca la
cadena2 dentro de cadena1 indicándonos
la posición en la que se encuentra.
 str_replace(cadena1, cadena2, texto).
Reemplaza la cadena1 por la cadena2 en
el texto.
JuanMartínez López 12
1
EJEMPLO
JuanMartínez López 12
2
 <html>
<head>
<title>Ejemplo de PHP</title>
</head>
<body>
<?php
echo strlen("12345"),"<br>";
$palabras=split(" ","Esto es una prueba");
for($i=0;$palabras[$i];$i++)
echo $palabras[$i],"<br>";
$resultado=sprintf("8x5 = %d <br>",8*5);
echo $resultado,"<br>";
echo substr("Devuelve una subcadena de otra",9,3),"<br><br>";
if (chop("Cadena nn ") == "Cadena")
echo "Iguales<br><br>";
echo strpos("Busca la palabra dentro de la frase", "palabra"),"<br><br>";
echo str_replace("verde","rojo","Un pez de color verde, como verde es la hierba."),"<br>";
?>
</body>
</html>
Ejemplos de matrices
JuanMartínez López 12
3
 <?php
$carro [0] = “cepillo”;
$carro [1] = “BMW”;
$carro [2]= “Toyota”;
for ($index = 0; $index <count($carro); $index++) {
Echo $carro[$index],”<br>”;
}
?>


JuanMartínez López 12
4
Tabla de contenidos
array_change_key_case -- Devuelve una matriz con todas las claves de las
cadenas convertidas a mayúsculas o minúsculas
array_chunk -- Divide una matriz en segmentos
array_combine -- Crea una nueva matriz, usando una matriz para las claves y
otra para sus valores
array_count_values -- Cuenta todos los valores de una matriz
array_diff_assoc -- Comprueba las diferencias entre matrices teniendo en
cuenta los índices
array_diff_key -- Calcula la diferencia de matrices usando las llaves para la
comparación
array_diff_uassoc -- Computa la diferencia entre matrices con un chequeo
adicional de índices, el cual es realizado por una llamada de retorno entregada
por el usuario
array_diff_ukey -- Calcula la diferencia de matrices usando callback function on
the keys for comparison
array_diff -- Comprueba las diferencias entre matrices









JuanMartínez López 12
5
array_map -- Aplica la llamada de retorno especificada a los elementos
de las matrices dadas
array_merge_recursive -- Une dos o más matrices
recursivamente array_merge -- Combina dos o más matrices


 array_multisort -- Ordena múltiples matrices, o matrices multi-
dimensionales
array_pad -- Rellena una matriz con un valor hasta el tamaño
especificado
array_pop -- Extrae el último elemento de la matriz
array_product -- Calcula el producto de valores en una matriz
array_push -- Inserta uno o más elementos al final de la matriz
array_rand -- Selecciona una o más entradas aleatorias de una matriz
array_reduce -- Reduce iterativamente una matriz a un solo valor
usando una función llamada de retorno
array_reverse -- Devuelve una matriz con los elementos en orden
inverso









JuanMartínez López 12
6
de retorno
array_udiff -- Computa la diferencia entre matrices, usando una
llamada de retorno para la comparación de datos
array_uintersect_assoc -- Calcula la intersección de matrices
con chequeo adicional de ídices, comparando los datos por una
función del usuario
array_uintersect_uassoc -- Calcula la intersección de matrices
con chequeo adicional de índices, compara los datos y los
índices por una función del usuario
array_uintersect -- Calcula la interseccón de matrices, compara
los datos con una función del usuario
array_unique -- Remueve valores duplicados de una matriz
array_unshift -- Introduce uno o más elementos al principio de la
matriz
array_values -- Devuelve todos los valores de una matriz







JuanMartínez López 12
7
each -- Devuelve el siguiente par clave/valor de una matriz y avanza el
apuntador
end -- Mueve el puntero interno de una tabla al último elemento
extract -- Importa variables a la tabla de símbolos desde una matriz
in_array -- Revisa si un valor existe en una matriz








key -- Obtiene una clave de una matriz asociativa
krsort -- Ordena una matriz por clave en orden inverso
ksort -- Ordena una matriz por clave
list -- Asigna variables como si fueran una matriz
natcasesort -- Ordena una matriz usando un algoritmo de "orden
natural" sin distinguir mayúsculas de minúsculas
natsort -- Ordena una matriz usando un algoritmo de "orden natural"
next -- Avanza el puntero interno de una matriz


 pos -- Alias de current()
 prev -- Rebobina el puntero interno de una matriz
 range -- Crea una matriz que contiene un rango de
elementos
 reset -- Fija el puntero interno de una matriz a su
primer elemento
 rsort -- Ordena una matriz en orden inverso
 shuffle -- Mezcla una matriz
 sizeof -- Alias of count()
JuanMartínez López 12
8

JuanMartínez López 12
9
array_search -- Busca un valor determinado en una matriz y
devuelve la clave correspondiente en caso de éxito
array_shift -- Extrae un elemento del comienzo de la matriz
array_slice -- Extrae una porción de la matriz
array_splice -- Suprime una porción de la matriz y la sustituye
por otra cosa
array_sum -- Calcula la suma de los valores en una matriz
array_udiff_assoc -- Computa la diferencia entre matrices con un
chequeo de índices adicional, comparando los datos con una
llamada de retorno
array_udiff_uassoc -- Computa la diferencia entre matrices con
un chequeo de índices adicional, comparando los datos y los
índices con una llamada








JuanMartínez López 13
0
array_fill -- Llena una matriz con valores
array_filter -- Filtra elementos de una matriz mediante una función
"callback"
array_flip -- Intercambia los valores de una matriz con sus índices
array_intersect_assoc -- Calcula la intersección de matrices verificando
que también coincidan los índices
array_intersect_key -- Calcula la intersección de matrices usando las
llaves para la comparación
array_intersect_uassoc -- Calcula la intersección de matrices con
chequeo de índices adicional por una función de usuario
array_intersect_ukey -- Calcula la intersecció de matrices usando una
función de usuario para la comparación de los índices
array_intersect -- Calcula la intersección de matrices
array_key_exists -- Comprueba si el índice o clave dada existe en la
matriz
array_keys -- Devuelve todas las claves de una matriz








 sort -- Ordena una matriz
 uasort -- Ordena una matriz mediante una
función de comparación definida por el
usuario y mantiene la asociación de índices
 uksort -- Ordena una matriz por claves
mediante una función definida por el usuario
 usort -- Ordena una matriz por sus valores
usando una función de comparación definida
por el usuario
JuanMartínez López 13
1

JuanMartínez López 13
2
array_walk_recursive -- Aplicar una función de usuario
recursivamente a cada miembro de una matriz
array_walk -- Aplica una función del usuario a cada elemento de
una matriz.
array -- Crear una matriz
arsort -- Ordena una matriz en orden inverso y mantiene la
asociación de índices
asort -- Ordena una matriz y mantiene la asociación de índices
compact -- Crea una matriz que contiene variables y sus valores
count -- Cuenta los elementos de una matriz o propiedades de
un objeto
current -- Devuelve el elemento actual de una matriz







Comando para trabajar en
matrices
JuanMartínez López 13
3
Unset
 Se usa para eliminar un elemento de la
matriz o la matriz entera
Sintaxis
 Unset($matriz[3]) (este borra el elemento
cuyo indice es igual a 3).
 Unset ($matriz) este opcion elimina la matriz
completa.
Otro ejemplo de matrices
JuanMartínez López 13
4
 <?php
$carro = array (“Toyota”, “suzuky”,”volvo”);
print_r($carro);
sort($carro);
echo “<hr>”;
print _r($carro);
?>
<?php
$fruta[0] = "pina";
$fruta[1] = "manzana";
$fruta[2] = "coco";
$fruta[3] = "mango";
for ($index = 0; $index < count($fruta); $index++) {
echo $fruta[$index], "<br>";
}
echo "<hr>";
print_r($fruta);
echo "<hr>";
// sacando un numero aleatorio de una matriz
$n= array_rand($fruta);
echo $n;
echo "<hr>";
// ordenando una matriz
sort ($fruta);
print_r($fruta);
echo "<hr>";
$carro["nuevo"] = "toyota";
$carro["usado"] = "honda civic";
$carro["chocado"]= "bmw";
$carro["alquilado"]= "murano";
print_r($carro);
$c= array_rand($carro);
echo "<br>";
echo $c;
?>
JuanMartínez López 13
5
ejercicio
JuanMartínez López 13
6
Tener dos matriz una de estudiantes y la otra de
premio.
Se sacara u n estudantes de forma aleatoria y luego
se sacara el premio de forma aleatoria.
Recuerde que la cantidad de estudiantes son
Y la cantidadad de premio sera.
La salida por pantalla sera de la sgts. Forma el
nombre del ganador KKKKK y el premio es
ppppppp
Luego imprimir todos los concursantes en orden
alfabetico y luego
Recorriendo una matriz
JuanMartínez López 13
7
 La funcion current. Se usa para obtener el
elemento actual de una matriz.
echo “Actual: “, current (variable);
 Funcion next mueve el puntero al proximo
elemento de la matriz
next(variable);
 La funcion prev desplaza el puntero al elemento
anterior de la matriz
prev(variable)
 La funcion end lleva el puntero al final de la
matriz
end(variable)
reset va al inicio de la matriz.
reset(variable)
JuanMartínez López 13
8
RETROALIMENTACION
JuanMartínez López 13
9
 TIENE UNA VARIABLE QUE ALMACENA EL NOMBRE Y UNA CLAVE CON
UN MINIMO DE 6 DIGITO. ADEMAS TIENE OTRA QUE ES CARGO.
AQUÍ DEBEMOS UTILIZAR LAS OPCIONES CASE Y LA DE IF PARA EL
CASO DE QUE EL CARGO ES IGUAL GERENTE IMPRIME UN LETRERO
CALIFICA , SI EL SUELDO DE ESTE GERENTE ES MAYOR DE 30000
PESOS ENTONCE EL IMPUESTO SOBRE LA RENTA SERA IGUAL A
SUELDO MENOS 30000 POR 4%
DE LO CONTARARIO NO APLICA DESCUENTO
SI EL CARGO ES MENSAJERO IMPRIME LETRERO EMPLEADO DE BAJO
NIVEL ADEMAS SI EL SUELDO ES MENOR DE 10000 TENDRA UN
AUMENTO DE 2000 PESOS
DE LO CONTRARIO UN AUMENTO DE 500 PESOS.
SI LA CLAVE ES MENOR DE 6 CARACTERES ENTONCE A LA CLAVE SE
CAMBIARA POR ¨PHPBASICO¨ DE LO CONTRARIO IMPRIME EL LETRO
QUE DIGA CLAVE ACEPTADA




 LA IMPRESION DE ESTA PARTE SERA LA SIGUIENTE. NOMBRE DEL
EMPLEADO, LA CLAVE DE ESTE Y EL SUELNO NETO .
2DA FASES
JuanMartínez López 14
0
 HACER UN BUCLE QUE LE IMPRIME EL
LETRO SOY UN WEB MASTER. 5 VECES
SI EL LETRERO TIENE UNA LONGITUD
DE MAYOR O IGUAL 10, SI ES MENOR
QUE SE IMPRIMA DOS VECES.
FASE 3
JuanMartínez López 14
1
 HACER UNA matriz QUE ALMACENES EL
LA VARIABLE EMPLEADO CON EL
NOMBRE CODIGOCOMO INDEX Y
SERSA IGUAL AL SUELDO.
LUEGO SELECCIONAR UN EMPLEADO DE
FORMA ALEATORIO
IMPRIMIR DE FORMA ORDENADA LA matriz
Y LUEGO IMPRIMIR EL VALOR
SELECCIONADO DE FORMA ALEATORIA.
SINTAXIS
JuanMartínez López 14
2
<?php
function Hiperlink () {
// Entre parentesis () podemos incluir valores que
// deba usar nuestra función. El uso de ()
// es siempre necesario.
// El código de la función entre llaves {}
}
Hiperlink();
?>
// esta linea llama la función
LA FUNCION
JuanMartínez López 14
3
 Una función de usuario en PHP no es mas
que una porción de código que podemos
llamar en cualquier momento
 Para definir una función debemos usar la
palabra reservada function. Para llamar la
función basta con invocar su nombre
OBSERVACIONES DE LA
FUNCION
JuanMartínez López 14
4
 PHP no distingue entre mayusculas y minusculas al
nombrar las funciones, asi que HiperLink sería lo
mismo que Hiperlink, aunque es buena práctica ser
consistente en la forma de escribir los nombres.
Como curiosidad, podrás observar que en los
mensajes de error, PHP siempre designa tus
funciones en minuscula.
Los parentesis permiten pasar valores a las
funciones (como veremos despues) y son siempre
necesarios, aunque no vayas a pasar valor alguno
EJEMPLO
JuanMartínez López 14
5
 <?php
function TradicionalHolaMundo (){
echo "hola mundo";
}
TradicionalHolaMundo(); // que sorpresa ! im
prime "hola mundo"
?>
El código que puedes incluir
en una función es cualquier
código php válido
funciones y parámetros
JuanMartínez López 14
6
 Podemos pasar a nuestras funciones valores para
que operen sobre ellos. PHP permite pasar a las
funciones variables, cadenas de texto, números o
arrays
Los datos pasados a la función pueden ser por valor
o por referencia. En el primer caso solo pasamos el
valor del dato, no su contenedor, de forma que
dicho dato (por ejemplo almacenado en una
variable) conserva su valor original fuera de la
función, sin verse afectado por los cambios que la
función pueda ejecutar. En cambio si pasamos el
valor por referencia, el dato original quedará
afectado por el resultado de la función:

JuanMartínez López 14
7
<?php
$msg = "Como estás ?";
function TradicionalHolaMundo ($msg)
{
$msg= "Hola Mundo !!".$msg;
echo $msg;
}
TradicionalHolaMundo ($msg); // vuelca "Hola Mundo !! Como estas ?
echo $msg; // vuelca "Como estás ?"
$msg = "Como estás ?";
function TradicionalHolaMundo (&$msg)
{
$msg= "Hola Mundo !!".$msg;
echo $msg;
//advierte que usamos &$
}
TradicionalHolaMundo ($msg); // $msg -> Hola Mundo !! Como estas ?
echo $msg;
?>
// vuelca "Hola Mundo !! Como estás ?"
Puedes tambien prever un valor por defecto para la función,
que se aplicará salvo que especifiques otro al llamarla:
JuanMartínez López 14
8
<?php
function TradicionalHolaMundo ($msg = "Hola como
estás") { ...}
TradicionalHolaMundo(); // Hola Mundo !! H
ola como estás ?
TradicionalHolaMundo("hasta luego");// Hola Mund
o !! hasta luego
TradicionalHolaMundo(""); // Hola Mundo !!
?>
 <?php
function TradicionalHolaMundo ($msg) {
return "Hola Mundo !!".$msg;
}
$blah = TradicionalHolaMundo ($msg);
?>
JuanMartínez López 14
9
Return
JuanMartínez López 15
0
 Si la función debe retornar algun valor al script,
debes indicarlo por medio de la expresión return. El
código existente en la función despues de return no
será ejecutado.
 En los sencillos ejemplos que hemos usado no
empleamos return ya que la unica instrucción de la
función es precisamente una orden echo. Pero
podría suceder que la función no tuviera por
finalidad volcar nada a pantalla, sino manipular un
valor para, por ejemplo, pasarselo a otrá función. En
tal caso usamos return.
ejemplo
JuanMartínez López 15
1
<?php
$blah = "http://www.ignside.net";
function hiperlink($CadenaTexto) {
$CadenaTexto = preg_replace("/(http://[0-9a-zA-Z-._/]+)/",
"<a href="1">1</a>", $CadenaTexto);
print $CadenaTexto;
}
hiperlink($blah); // devuelve la url como un enlace clickable
// <A href="http://www.ignside.net">http://www.ignsid
e.net</A>
?>
Como ya está bien de
TradicionalHolaMundo() vamos a ver una
función sencilla pero algo mas útil: la
función hiperlink() que buscará urls dentro
de una cadena de texto, convirtiendolas en
enlaces
opciones
JuanMartínez López 15
2
 La anterior función toma un parámetro y
busca en él, con preg_replace, la existencia
de una url correctamente escrita (http://....) y
si la encuentra construye un link que apunta
a esa direccion, usando la misma como texto
visible del enlace.
Manipulando con 2 parametros
JuanMartínez López 15
3


Podemos perfeccionarla un poco con dos parámetros:
<?php
$blah = "http://www.ignside.net";
function hiperlink($CadenaTexto, $textovisible) {
$CadenaTexto = preg_replace("/(http://[0-9a-zA-Z-._/]
+)/",
"<a href="1">$textovisible</a>", $CadenaTexto);
print $CadenaTexto;
}
hiperlink($blah, "pulsa aqui"); // devuelve
//<A href="http://www.ignside.net">pulsa aqu
i</A>
?>
¿ Desventajas ?
JuanMartínez López 15
4
 PHP consume mas recursos (y por tanto es
ligeramente mas lento) llamando y
ejecutando una función que ejecutando
código que encuentra en linea, embebido en
el script. Por eso no tiene sentido usar
funciones salvo que efectivamente vayas a
utilizar esa porción de código varias veces.
Los Formularios
JuanMartínez López 15
5
 Es el mecanismos por el cual podemos manipular
datos de forma ordenada dentro de una aplicación
web.
 El lenguaje de PHP proporciona una manera muy
sencillas para manejar los formularios.
 Los Formularios no forman parte de PHP, sino del
lenguaje estándar de Internet, HTML, pero como
éstos van a aparecer muchas veces durante el
curso, vamos a dedicar esta líneas . Lo que viene a
continuación es HTML y no PHP.
 Todo formulario comienza con la etiqueta
< ACTION="lo_que_sea.php"
METHOD="post/get"> .
 Con ACTION indicamos el script que va
procesar la información que recogemos en el
formulario, mientras que METHOD nos indica
si el usuario del formulario va ha enviar
datos (post) o recogerlos (get). La etiqueta
indica el final del formulario.
FORM
</FORM>
JuanMartínez López 15
6
Elementos de un formularios
 Cuadro de texto:
<input type="text" name="nombre" size="20" e">value="jos
 Cuadro de texto con barras de desplazamiento:
<textarea rows="5" name="descripcion" cols="20">Es de color
rojo</textarea>
 Casilla de verificación:
<input type="checkbox" name="cambiar" value="ON">
 Botón de opción:
<input type="radio" value="azul" checked name="color">
 Menú desplegable:
<select size=“1” class="codigo"><select size="1" name="dia">
<option selected value="lunes">lunes</option>
<option>martes</option>
<option value="miercoles">miercoles</option>
</select>
JuanMartínez López 15
7
 Boton de comando:
 <input type="submit" value="enviar"
name="enviar">
 Campo oculto:
 <input type="hidden" name="edad"
value="55">
Este último tipo de campo resulta
especialmente útil cuando que remos pasar
datos ocultos en un formulario.
JuanMartínez López 15
8
Elementos de un formularios
El method GET y el POST
JuanMartínez López 15
9
 GET Muestra las informaciones que estan
siendo enviada por un formulario en la barra
de direccion.
 Post. No muestra las informaciones que esta
siendo enviada en la barra de direccion.
Ejemplo de un formulario
JuanMartínez López 16
0
<form action=“amigo.php” METHOD= “GET”>
Su nombre:<input type=“text”
name=“nombre”<br>
Su apellido:<input type=“text”
name=“apellidos”<br>
<input type= submit value=“Enviar”>
</form>
JuanMartínez López 94
Ejemplo 2
<HTML>
<BODY>
<FORM METHOD="post" ACTION="lee.php">
<input type="hidden" name="edad" value="35">
<p>Tu nombre <input type="text" name="nombre" size="30"></p>
<p>Tu sistema favorito
<select size="1" name="sistema">
<option selected value="Linux">Linux</option>
<option value="Unix">Unix</option>
<option value="Macintosh">Macintosh</option>
<option value=&qmargin-left: 75"><option
value="Windows">Windows</option>
</select></p>
<p>¿Te gusta PHP ? <input type="checkbox" name=“programa"
value="ON"></p>
<p>¿Cual es tu sexo?</p>
<blockquote>
<p>Hombre<input type="radio" value="hombre" checked
name="sexo"></p>
<p>Mujer <input type="radio" name="sexo" value="mujer"></p>
Recibir datos de matrices
personalizadas
JuanMartínez López 16
2
 PHP permite organizar los datos que
obtenemos de un formulario ens propias
matrices personalizada
EJEMPLO
JuanMartínez López 16
3
<html>
<body>
<FORM METHOD="POST" ACTION="phpprueba.php">
Cual es tu nombre?
<INPUT NAME="texto[nombre]" Type="Text">
<br>
<br>
CUAL ES TU COLOR FAVORITO?
<INPUT NAME="texto[color]" Type="text">
<br>
<br>
<input type=submit Value=Enviar>
</form>
</body>
</html>
EJEMPLO 2
JuanMartínez López 16
4
<?php
echo "su nombre es...";
$text = $_POST['texto'];
echo $text['nombre'], "<br>";
?>
Su color Favorito es
<?php
$text = $_POST['texto'];
echo $text['color']. "<br>";
?>
Aplicaciones Web en una sola
Pagina
JuanMartínez López 16
5
 La mayoria de las aplicaciones de
formularios cuenta con dos pagina una que
recibe y la otra que envia. Es decir las
paginas de html que recopilaban los datos y
las de php que los recibian
 Pero si usamos los mismo script en la misma
pagina podemos ejecutar ambas opciones en
la misma pagina. Veamos
JuanMartínez López 99
ejemplo
<?PHP
if(isset($_POST["nombre"])){
?>
<h1>Uso de Cuadro de texto</h1>
<?php
echo $_POST["nombre"];
$clave = $_REQUEST[‘clave’];
print ($clave);
}
else {
?>
<FORM METHOD="POST">
Cual es tu Nombre?
<INPUT NAME="nombre" TYPE="TEXT">
Contraseña:
<INPUT TYPE="password" NAME="clave">
<BR><BR>
<INPUT TYPE=SUBMIT VALUE=Enviar>
</form>
<?php
}
?>
Funciones
JuanMartínez López 167
Empecemos con el ejemplo más difícil y el causante de que tuviera que
programar
estas funciones.
<SELECT>
Crear elementos de selección <select></select>
Con php es muy habitual trabajar con arrays, ya sea con datos que nos
proporcione una
consulta SQL o simples valores.
Veamos un ejemplo en el que queremos mostrar un <select> para que el
usuario
seleccione su rango de edad:
<select name=’edad’>
<option value=0>Seleccione</option>
<option value=1>Entre 0-18</option>
<option value=2>Entre 19-30</option>
<option value=3>Entre 31-50</option>
<option value=4>Más de 50</option>
<select/>
La función que nos salvará la vida
es:
JuanMartínez López 168
frm_select($name, $arr_txt, $arr_vals, $default='', $extra_tag='')
$name = Nombre del elemento del formulario
$arr_txt = Array con los textos a mostrar
http://www.distintiva.com/jose/_perf_form jose [arroba] distintiva
[dot] com
$arr_vals = Array con los valores asociados a cada texto
$default= [opcional] si se indica el valor aparecerá preseleccionado
dicha opción
$extra_tag= [opcional] por si necesitamos incluir información
adicional al select, como
por ejemplo $extra_tag=” class=cssazul ” o $extra_tag=”
onChange=alert()”
Ejemplo:
JuanMartínez López 169
$arr_txt=array(‘españa’, ‘portugal’, ‘francia’);
$arr_vals=array(‘ES’, ‘PT’, FR’);
<?=frm_select (‘paises’, $arr_txt, $arr_vals) ?>
De esta forma cualquier modificación sólo hay que hacerla en los
arrays sin alterar la
parte visual.
A veces es conveniente conservar el valor de un campo del
formulario entre llamadas o
posts del mismo por ejemplo cuando estamos validando entradas y
hay que volver al
formulario para que rellene algún campo requerido
Para hacer esto de forma sencilla
tan solo tenemos que usar el parámetro $default de la siguiente
forma.:
<?=frm_select (‘paises’, $arr_txt, $arr_vals, $_POST[‘paises’]) ?
>
(o $_GET dependiendo el método que usemos en nuestro
formulario)
<SELECT> (tipo lista con varios elementos visibles)
Funciona exactamente igual que el anterior pero en este caso
tenemos la típica lista de
selección con scroll mostrando X elementos.
La función es:
frm_list($name,$size, $arr_txt, $arr_vals, $default='',
$extra_tag='')
En este caso el nuevo parámetro es $size que indica cuántos
elementos serán
mostrados visiblemente en la lista. 829 317-0468 97-7559
JuanMartínez López 170
Otras funciones
JuanMartínez López 171
<SELECT> (tipo lista con varios elementos visibles y con
multiselección)
Igual que el ejemplo anterior pero permitimos que el usuario
seleccione uno o varios
elementos de la lista con el CTRL+Click o SHIFT+Click
La función es:
frm_list_multi($name, $size, $arr_txt, $arr_vals, $default='',
$extra_tag='')
... Y también tenemos funciones correspondientes para los demás
elementos de
formulario aprovechando la capacidad de mantener el valor entre
posts.
<Checkboxes>
JuanMartínez López 172
La función es:
frm_check($name, $ck_val, $var_in='', $extra_tag='')
$name= Nombre del campo
$ck_val= Valor que se enviará cuando esté seleccionado
$var_in=[opcional] Funciona como el $default y permitirá que se
muestre checkeado
Ejemplo:
Se muestra un checkbox que se mantiene seleccionado entre posts
del formulario
<?= frm_check(‘fumador’, ‘SI’, $_POST[‘fumador’])?>
<Radio>
JuanMartínez López 173
 En este caso para mostrar radiobuttons se
hace exactamente como el caso anterior
 pero con la siguiente función:
 frm_radio($name, $val, $var_in='',
$extra_tag=''
<INPUT>
JuanMartínez López 174
Permite mostrar cuadros de texto con las
ventajas que voy ofreciendo en todas las
funciones y para ello hay que usar:
frm_text($name, $val, $size, $max_length,
$extra_tag='')
$name = Nombre del campo
$val = Valor o texto que se mostrará (funciona
como el $default de las otras funciones)
$size = Tamaño del campo de texto
$max_length = Longitud máxima permitida
 PASSWORD
Contraseña: <INPUT TYPE="password"
JuanMartínez López 175
NAME="clave">
<?PHP
$clave = $_REQUEST[‘clave’];
print ($clave);
?>
<PASSWORD>
JuanMartínez López 176
 El caso es exactamente como el anterior
pero esta vez oculta el texto con asteriscos
 frm_password($name, $val, $size,
$max_length, $extra_tag='')
Ejercicios1 de formularios
 Hacer un formulario que contenga todos los controles y incluyendo
un control oculto que sea igual al nombre de programador.
JuanMartínez López 177
Enviar un Archivo a través de
un formularios.
JuanMartínez López 178
 HTML NOS PERMITEN CARGAR archivoS
EN EL SERVIDOR, Y PHP NOS AYUDARA
EN ESTA TAREA.
 PARA ENVIAR UN ARCHIVO AL
SERVIDOR, TENDREMOS QUE UTILIZAR
UN FORMULARIOS MULTIPLE
PASO PARA CREAR UN
FORMULARIO MULTIPLE
JuanMartínez López 179
 EL ATRIBUTO ENCTYPE DEL ELEMENTO HTML
<form>:
Sintaxis
<form
ENCTYPE=“multipart/form-data”
ACTION=“nombre.php” method=“POST”>
Enviar este archivo: <INPUT NAME=“archivo”
TYPE=“file”>
</form> Note que estamos llamando al control “archivo”
Sera el nombre por el cual accederemos al
aechivos que se envie.
La matriz $_FILES
JuanMartínez López 180
 Esta es una matriz super global, eso quierre
decir que puede ser usada en cualquier
parte del codigo..
 Cuando usamos controles de archivos nos
necesitamos las matrizes $_POST, $_GET Y
$_REQUEST
EJEMPLO
JuanMartínez López 181
<FORM ENCTYPE="multipart/form-data"
ACTION=“archivo2.php" METHOD="post">
<INPUT type="hidden" name="MAX_FILE_SIZE"
value="100000">
<p><b>Archivo a descargar<b><br>
<INPUT type="file" name="archivo" size="35"></p>
<p><INPUT type="submit" name="enviar"
value="Aceptar"></p>
</FORM>
Subida de archivos al servidor
php.ini
;;;;;;;;;;;;;;;;
; File Uploads ;
;;;;;;;;;;;;;;;;
; Whether to allow HTTP file uploads.
file_uploads = On
; Temporary directory for HTTP uploaded files
; system default if not specified).
;upload_tmp_dir =
(will use
; Maximum allowed size for uploaded files.
upload_max_filesize = 2M
formulario
<INPUT TYPE=”HIDDEN” NAME=”MAX_FILE_SIZE”
<INPUT TYPE=”FILE” NAME="archivo">
JuanMartínez López 182
VALUE='102400'>
Código de error asocJuiaanMdaortíneazlLóaperzchivo subido 116
Subida de archivos al servidor
<INPUT TYPE="HIDDEN" NAME="MAX_FILE_SIZE" VALUE="102400">
<INPUT TYPE="FILE" SIZE="44" NAME="imagen">
 La variable $_FILES contiene toda la información del archivo
subido:
$_FILES['imagen']['name']
Nombre original del archivo en la máquina cliente
$_FILES['imagen']['type']
Tipo mime del archivo. Por ejemplo, "image/gif"
$_FILES['imagen']['size']
Tamaño en bytes del archivo subido
$_FILES['imagen']['tmp_name']
Nombre del archivo temporal en el que se almacena
el archivo subido en el servidor
$_FILES['imagen’]['error']
Funciones de acceso a
archivos
JuanMartínez López 184
 En esta lección sólo vamos a las funciones
básicas, abrir (fopen), cerrar (fclose), leer
(fgets) y escribir (fputs). Estas cuatro nos
solventaran la mayoria de problemas (fputs).
Estas cuatro nos solventaran la mayoria de
problemas que nos surgan con respecto al
acceso a archivos.
fopen (archivo, modo)
JuanMartínez López 185
 Con esta función abrimos un archivo, bien
sea local o una dirección de internet (http:// o
ftp://).
 La función fopen nos devuelve un valor
numérico (indicador de archivo) de tipo
integer que nos ser virará para hacer
referencia al archivo abierto.
Con fopen podemos abrir un
archivo de los siguientes modos
JuanMartínez López 186
 r solo lectura
 r+ lectura y escritura
 w solo escritura. Sino existe el archivo lo crea, si
ya existe lo re-escribe
 w+ lectura y escritura. Sino existe el archivo lo
crea, si ya existe le re-escribe
 a solo lectura. Sino existe el archivo lo crea, si ya
existe empieza a escribir al final del archivo.
 a+ lectura y escritura. Sino existe el archivo lo crea,
si ya existe empieza a escribir al final del archivo.
Ejemplo de fopen()
JuanMartínez López 187
<?PHP
if ( ! fopen("http://www.ciberaula.com/", "r")) {
echo "El archivo no se puede abrirn";
exit;
}
?>
Abriendo un archivo
con el protocolo
hhtp.
Los modos r, r+ , w , w+ colocan el puntero de lectura/escritura a
principio del archivo, los modos a , a+ lo colocan al final.
fgets (indicador_archivo, longitud)
JuanMartínez López 188
 La función fgets nos devuelve una cadena con la longitud
especifica del archivo al que apunta el indicador de archivo.
<?PHP
$archivo = fopen("dlass="codigo">$archivo = fopen("data.txt" , "r");
if ($archivo) {
while (!feof($archivo)) {
$linea = fgets($archivo, 255);
echo $linea;
}
}
fclose ($archivo)
?>
La función feof devuelve TRUE si
puntero de lectura/escritura se
encuetra al final del archivo, y
FALSE en caso contrario.
fputs (indicador_archivo, cadena)
JuanMartínez López 189
 La función fputs escribe una cadena en el archivo indicado.
Para escribir en una archivo este debe haber sido previamente
abierto. La función fputs devuelve TRUE si se ha escrito con
éxito, en caso contrario devuelve FALSE.
<?PHP
$archivo = fopen("data.txt" , "w");
if ($archivo) {
fputs ($archivo, "Hola Mundo");
}
fclose ($archivo);
?>
file_exists (archivo)
 Esta función devuelve TRUE si el archivo
especificado existe, y FALSE en caso contrario.
<?PHP
if (file_exists("data.txt")) {
echo "El archivo existe";
} else {
echo "El archivo NO existe";
}
?>
JuanMartínez López 190
copy (origen, destino)
JuanMartínez López 191
 La función copy : copia un archivo de un lugar
(origen) a otro (destino), devuelve TRUE si la copia
a tenido éxito y FALSE en caso contrario.
<?PHP
if (copy("data.txt", "/tmp/data.txt")) {
echo "El archivo ha sido copiado con éxito";
} else {
echo "El archivo NO se copio" style="margin-left:
50">echo "El archivo NO se ha podido copiar";
}
?>
Validación de datos que se
envían en los formularios.
JuanMartínez López 192
 Programa ejemplo
TRABAJANDO CON CLASE Y
OBJETOS
JuanMartínez López 193
 LA POO se diseño para proyectos de
programacion grandes. Sin embargo si va a
seguir usando aplicaciones grandes en php es
aconsejable que domine la tecnica de OOP.
Que son los objetos
JuanMartínez López 194
 Es donde se agrupa un conjunto de
funciones también los datos que estas
funciones necesitaría
 Aglutinar las funciones y los datos nos
permitirá seccionar mucho mas los scripts.
Por ejemplo, un objeto podría controlar lo
que se muestra por pantalla, otra validar los
datos, otro se encargaría de la gestión de la
base de datos.
Creando una clase
JuanMartínez López 195
 Es un conjunto de variables y funciones en
termino de la POO, tambien propiedades y
metodos.
 Una clase es un tipo y generamos objetos de
ese tipo y lo almacenamos en variables de
PHP
 Sintaxis class estudiante{.......}
ejemplo
class carro
{
var $name;
Function set_name($text)
{
$this->name = $text;
}
Function get_name()
{
return $this->name;
}
}
$honda = new carro;
$honda->set_name(“accord”);
Echo “el modelo de su nuevo carro es”,$honda->get_name(), “.”;
?>
Creamos la clases
llamada carro
Funciones dentro de
una clase son los
métodos
Name es la variable interna
llamada en POO propiedad
New crea objeto de esta clase
JuanMartínez López 196
Ejemplo
La sentencia var
JuanMartínez López 197
 Esta sentencia se usa para de clarar las
variables interna de una clase.
Sintaxis
Class socio
{
var $nombre;
}
Nota para acceder a esta propieda
simplemente como nombre:
Esto ayudara a su proceso interno.
Ejemplo
JuanMartínez López 198
<?php
class my_class
{
var $value;
}
$a = new my_class;
$a->my_value = 5;
$b = $a;
$b->my_value = 10;
echo $a->my_value;
?>
Ejemplo de clase
class conectar{
var $cn;
var $res;
var $status;
function conectar(){
mysql_connect ("localhost","root","");
mysql_select_db ("carrito");
$this->status=true;
}
function Ejecutar_sql($sql){
if($this->status){
$this->res = mysql_query ($sql) or die ("SQL incorrecto : $sql");
return true;
}else{
return false;
}
}
}
?>
Aquí vemos como
podemos utilizar una
clases para
conectarnos a ua
base de datos y
realizar una consulta
JuanMartínez López 199
Los metodos set_name y
get_name
JuanMartínez López 200
 El metodo set_name:
se usa para especificar el nombre del objeto.
Tomando en cuenta el ejemplo de la diapositiva 127.
. Function set_name($text)
para acceder al nombre paso a set_name en la propiedad name,
usaremos una variable especial $this que apunta a la clase
actual, para eso usaremos operador flecha para`que haga
referencia a los datos de la propiedad.
$this->name =$text;
.
Como se crean los objetos
dentro de una clase.
JuanMartínez López 201
 La sentencia new se usa cuando se quiere
crear un objeto de una clase.
 Sintaxis
$civic= new carro;
$civic->set_name(“sedan”);
Con el operador -> podremos acceder tanto a los metodos de un objetos
como a su propiedad.
Los metodos de acceso
JuanMartínez López 202
 Se usa para especificar especificar los valores de la
propiedad , ya que podremos restringir el tipo de
datos almacenaremos en la propiedad.
 Ejemplo
Function set_name($text)
{
If (strlen($text) <= 50){
$this->name =$text;
}
}
Ejercicios
JuanMartínez López 203
 Haga una clase llamada celular donde se
creara un nuevo objeto de esta clase llamdo
motorola y su modelo sera V3.
La salida de este escript sera la siguiente.
su celular es motorola y es el modelo V3
Restringir acceso a la
propiedades y metodos
JuanMartínez López 204
 PHP posee una serie de modificadores de
acceso.
-public accesible para todos
-private accesible de la misma clase
- Public accesible de la misma clase y de la
clase derivadas de esas clase.
Nota.
Por defecto todos los metodos y propiedades se declaran como publicas lo
que implica que no tendremos restrinciones a la hora de acceder a ellos.
Ejemplo
<?php
class computadora
{
private $name;
fuction set_name($text)
($this->name = $text;}
fuction get_name()
{ return $this->name;}
}
$dell = new computadora;
$dell ->set name(“Inspiron”);
Echo “ el nombre de su nueva computadora del es”, $dell->name”
?>
Cuando quiera acceder a esta
propiedad como $dell->name
recibira un mensaje de error
JuanMartínez López 205
Inicializa los objetos
constructores
JuanMartínez López 206
 En php un objeto constructor es un metodo
especial declarado con la sintanxis
 nombre construct (son dos guiones bajo
seguido por la palabra reservada construct
 cuando creamos este objeto especial
debemos de crear una sintaxis especial para
pasarle informacion al constructor.
ejemplo
JuanMartínez López 207
<?php
Class animal
{ var $name;
function construct($text){
$this ->name =$text;
}
Function set_name($text)
}
Function get_name()
{
return $this->name;
}
}
$lion = new animal(“leo”);
Echo “El nuevo nombre de su leon es “, $lion->get_name();
?>
ejemplo2
JuanMartínez López 208
<?php
class base_class
{
var $var1;
function base_class ($value)
{
$this->var1 = $value;
}
function calc_pow ($exp)
{
return pow ($this->var1, $exp);
}
}
class new_class extends base_class
{
var $var2;
function new_class ($value)
{
$this->var2 = $value;
$this->var1 = $value * 10;
}
}
$obj = new new_class (10);
echo $obj->calc_pow (4);
?>
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
Tabla : usuario Tabla : accesos
20
9
id user pass
1 mikel 12321
2 ainhoa 32343
id user acceso
1 1 10/01/09
2 1 05/03/09
Accediendo a DB : MySQL
● MySQL : Gestionando mysql con phpmyadmin
– Crear/eliminar/editar ... BD, tablas, registros, usuarios ...
21
0
Accediendo a DB : MySQL
21
1
● MySQL : SLQ (Structured Query Language)
Consultas : Obteniendo datos de tablas●
– Obtener todos los datos de una tabla (tabla usuario)
SELECT * FROM usuario
– Obtener una columna de una tabla
SELECT nombre FROM usuario
– Obtener mas de un campo de una tabla
SELECT nombre,apellido,dni FROM usuario
134
Accediendo a DB : MySQL
● MySQL : SLQ (Structured Query Language)
Consultas : Obteniendo datos de tablas (II)●
– Condiciones
SELECT * FROM usuario
WHERE edad>18
– SELECT * FROM usuario
WHERE nombre = “ane”
– SELECT * FROM usuario
WHERE nombre LIKE “%ana%”
135
Accediendo a DB : MySQL
● MySQL : SLQ (Structured Query Language)
Consultas : Insertando datos en tablas●
– INSERT INTO usuario(nombre,pass) VALUES (“mikel”,”123”)
– INSERT INTO usuario (nombre) VALUES (“mikel”)
– INSERT INTO usuario(id,pass) VALUES (“1”,”123”)
136
Accediendo a DB : MySQL
● MySQL : SLQ (Structured Query Language)
Consultas : Actualizando datos de tablas●
– UPDATE usuario SET pass=”1010” WHERE nombre =”ane”
– UPDATE usuario SET pass=”0000”
WHERE nombre LIKE “a%”
– UPDATE usuario SET pass=”0000” AND nombre=”jon”
WHERE id=”1”
Accediendo a DB : MySQL
21
5
● MySQL : SLQ (Structured Query Language)
Consultas : Eliminando datos de tablas●
– DELETE FROM usuario WHERE id=”2”
– DELETE FROM usuario WHERE nombre LIKE “%a”
– DELETE FROM usuario WHERE pass =”” OR pass=”0000”
Accediendo a DB : MySQL
21
6
● Acceder al servidor de BD MySQL
Funciones mysql:●
– http://es.php.net/manual/es/ref.mysql.php
Crear , eliminar, modificar, obtener ...
BD, tablas, usuarios, privilegios ...
–
–
● Tipo recurso ( referencia a recurso externo )
mysql_connect($hostname,$usuario,$password)●
– devuelve un identificador de enlace o false
$hostname ~ host[:puerto]–
Accediendo a DB : MySQL
● Crear / Abrir la conexión
– mysql_connect ($hostname,$usuario,$password)
– Si no hay problemas devuelve el enlace
– El enlace se cerrara automáticamente al finalizar el
script o mediante la función mysql_close($link)
<?php
$con = mysql_connect(“localhost”,”user”,”pass”)
or die(“No se pudo abrir la conexión:” . mysql_error());
if($con){
echo “Conexión exitosa”;
}
?>
21
7
Accediendo a DB : MySQL
● Cerrar la conexión
– mysql_close ($link)
<?php
140
$con = mysql_connect(“localhost”,”user”,”pass”)
or die(“No se pudo abrir la conexión:”
.
mysql_error());
...
mysql_close($con);
?>
141
Accediendo a DB : MySQL
● Seleccionar BD
– mysql_select_db($dbname,[$link]);
– Devuelve true o false
<?php
$con = mysql_connect(“localhost”,”user”,”pass”)
or die(“No se pudo abrir la conexión:” . mysql_error());
if (mysql_select_db(“usuarios”,$con)){
...
}
else{
echo “no se pudo seleccionar la base de datos”);
}
mysql_close($con);
?>
Accediendo a DB : MySQL
22
0
● 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●
Accediendo a DB : MySQL
● Consultas sin retorno de valor
<?php
$con = mysql_connect(“localhost”,”user”,”pass”);
$SQL = “CREATE DATABASE prueba”;
if( mysql_query($SQL)){ echo “BD creada con exito”;}
$SQL = “CREATE TABLE prueba (user VARCHAR(10),pass VARCHAR(10))”;
if(mysql_query($SQL)){ echo “Tabla creada con exito”;}
$SQL= "INSERT INTO prueba(user,pass) VALUES('usuario1','pass1')";
if(mysql_query($SQL)){ echo “Se insertaron los datos con exito”;}
$SQL =”DELETE FROM prueba WHERE user='usuario1'”;
if(mysql_query($SQL)){ echo “Registro eliminado con exito”;}
mysql_close($con);
?> 22
1
Accediendo a DB : MySQL
22
2
● 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
●
●
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 * FROM prueba";
$RS=mysql_query($SQL);
while($fila=mysql_fetch_assoc($RS)){
echo “Usuario : ”.$fila['user'];
echo “Pass : ”.$fila['pass'];
}
?>
22
3
Accediendo a DB : MySQL
22
4
● Consultas con retorno de valor
– mysql_fetch_row($RS)
● $RS : El valor retornado por mysql_query
Devuelve una matriz numérica
Claves = enteros empezando por 0
●
●
Accediendo a DB : MySQL
● Consultas con retorno de valor
– mysql_fetch_row
<?php
$con = mysql_connect(“localhost”,”user”,”pass”);
mysql_select_db("prueba",$con);
...
$SQL = "SELECT * FROM prueba";
$RS=mysql_query($SQL);
while($fila=mysql_fetch_row($RS)){
foreach($fila as $clave=>$valor){
echo “$clave = $valor”;
}
}
?> 22
5
0 = usuario1
1 = pass1
0 = usuario2
1 = pass2
Accediendo a DB : MySQL
22
6
● Consultas con retorno de valor
– mysql_fetch_array ($RS,[$tipo])
● $RS : El valor retornado por mysql_query
Devuelve una matriz asociativa, numérica o ambas
Por defecto : ambas
$tipo : constante que puede tener los siguientes valores
●
●
●
–
–
–
MYSQL_ASSOC
MYSQL_NUM
MYSQL_BOTH
Accediendo a DB : MySQL
● Consultas con retorno de valor
– mysql_fetch_array
<?php
$con = mysql_connect(“localhost”,”user”,”pass”);
mysql_select_db("prueba",$con);
$SQL = "SELECT * FROM prueba";
$RS=mysql_query($SQL);
while($fila=mysql_fetch_array($RS)){
foreach($fila as $clave=>$valor){
echo “$clave = $valor”;
}
}
?>
0 = usuario1
name = usuario1
1 = pass1
pass = pass1
0 = usuario2
name = usuario2
1 = pass2
...
22
7
Accediendo a DB : MySQL
● Errores
– mysql_error ($link)
●
Devuelve el texto del mensaje de error de la última
operación MySQL
Si no ocurrió error : “” (cadena vacía)●
<?php
$con = mysql_connect(“localhost”,”user”,”pass”);
if(!mysql_select_db("pruebaaaa",$con)){
echo mysql_error();
}
?>
Unknown database 'pruebaaaa'
22
8
Basar una clase en otra
(Herencia)
JuanMartínez López 229
 La Herencia es el metodo que nos permite
escribir todos metodos de una clase
existente a una clase nueva.
 Al usar usar la herencias,propiedades de la
clase base tambien perteneceran al conjunto
de metodos y clases derivadas de ella
 Luego podremos personalizar las clases
derivadas agregando los metodos y
propiedades especifico para esa clase
Planteamiento
JuanMartínez López 230
 Tenemos una clase llamada Vehiculo que
tiene implementado todo tipo de metodo para
cualquier tipo de tarea relacionada como:
color, arrancar, acelerar, girar y parar. Ahora
queremos crear otras class que sean tipos
de vehiculos: jeepeta, guagua, motores y
otros.mas
ejemplo
JuanMartínez López 231
<?php
class $vehiculo
{
var $carro;
Function set_name($text){
$this->carro=$text;
}
Function get_name(){
Return $this->carro;
}
}
class honda extends vehiculo {
var $carro;
Fuction alquilado() {
echo “! “, $this->carro, “ esta alquilado <br>”;
}
}
Echo “Su nuevo carro honda...<br>”;
$civic = new honda;
$civic->set_name(“Civic 2003”);
$civic->alquilado ();
?>
Esta cláusula se utiliza para derivar una
clase desde otra.
Indicamos la clase va heredar,
indicando de que clase va heredaremos
Sobrecargar metodos
JuanMartínez López 232
 Esto ocurre si queremos derivar una clase
nueva desde una clase base y necesitamos
usar un metodo en la nueva clase con el
mismo nombre que uno de los metodos de la
clase base.
 Porque el metodo de la clase base, y los
objeto de la nueva clase utilizaran el nuevo
metodo en lugar del precedente de la clase
base.
Ejemplo
JuanMartínez López 233
<?php
class animal
{
var $nombre; function
set_name($text)
{
$this->nombre =$text;
}
function get_name()
{
return $this->nombre;
}
}
class Leon extends animal
{
var $name;
function rugir()
{
echo "! ",$this->name, "esta rugiendo <br>";
}
function set_name($text)
{
$this->name = strtoupper($text);
}
}
echo " Creando su nuevo felino...<br>";
$leon = new leon;
$leon->set_name ("kiko ");
$leon->rugir();
?>
Ejercicio
Que imprime este script
<?php
class a
{
var $c=5; function
a ($pass)
{
$this->c = $pass;
}
function print_data()
{
echo $this->$c;
}
}
$a = new a(10);
$a->print_data();
?>
JuanMartínez López 234
Que imprime este programa
JuanMartínez López 235
<?php
error_reporting(E_ALL);
class a
{
var $c;
function a()
{
$this->c = 10;
}
}
class b extends a
{
function print_a()
{
echo $this->c;
}
}
$b = new b;
$b->print_a();
?>
Ejercicio
JuanMartínez López 236
 Cree una clase llamada computadora esta
tendra una variable llamada labtop
 A la clase computadora le sacara una clases
llamada estatu
 En la clase statu tendra una variable llamda
labtop y una funcion llamada estatu donde tu
imprime que la labtop esta reparada.
 Imprime el letrero “su computadora labtop
dell inspiron esta reparada.
Las Cookies
JuanMartínez López 237
 Las Cookies son un mecanismo que sirve
para almacenar datos en el navegador del
usuario remoto, para así poder identificar al
usuario cuando vuelva
 Se pueden poner cookies usando la función
setcookies().
 Las Cookies son parte de la cabecera HTTP,
por tanto la función setcookie() debe ser
llamada antes de que se produzca cualquier
salida al navegador
sintaxis
JuanMartínez López 238
 setcookie(nombre,valor,expiracion,ruta,dominio,segura)
Ejemplo
<setcookie(“message”, “sin problema.”);
?>
<html>
<head><title> genera una cookie</title>
<body>
<h1>generar una cookie </h1>
se ha generado una cooke! Mire en
<A HREF=“cook.php”>cook.php</a> ahora
</center>
</body>
</html>
Parametro de una cookie
JuanMartínez López 239
 Nombre el nombre de una cookie
 Valor – valor de la cookie. Este valor se
almacenara en el ordenador de cliente. (no
es prudente almacenar informacion
importante.
 Expiracion- el tiempo en que expirara una
cookie.(el tiempo se expresa en segundo)
 Ruta – la ruta en el servidor donde estara
disponible la cookie
 Dominio- el dominio para el que la cookie es
valida.
 Segura – indica que la cookie se trasmitira a
traves de una conexion segura HTTPS.
Cuando tiene el valor 1, la cookie solo se
enviara en que caso de que exista una
conexion de esa caracteristicas. El valor por
defecto es cero.(0).
JuanMartínez López 240
Leer una Cookies
JuanMartínez López 241
 Despue de general una cookies podemos
acceder a ella en un momento posterior
acudiendo a la matriz $_COOKIES
 SINTAXIS
$_COOKIE [“message”].
ejemplo
JuanMartínez López 242
La cookie dice:
<?php
if (isset($_COOKIE[“message”])){
echo $_COOKIE[“message”];
}
?>
Los nombres de las cookie
JuanMartínez López 243
 Tambien se pueden declarar como nombre
de matrices y estaran disponible como
matrices en nuestro scripts de php.
Por ejemplo. setcookie(“cookie[uno]”,
“Sin”); setcookie(“cookie[dos]”,
“Problemas”); setcookie(“cookie[tres]”,
“hoy.”);
Continuacion
JuanMartínez López 244
 Ahora que se genero esta cookies, las
leeremos la proximas vez que el navegador
nos envien los datos de esta forma:
If (isset($_COOKIE[“cookie”]))
{
Foreach($_COOKIE[“cookie”] as value) {
echo “$value <br>”;
}
}
Periodo de expiracion de las
cookie
JuanMartínez López 245
 Este parametro es usado para determinar
que tiempo existira una cookie en el
ordenador de un usuario.
 La hora almacenada en este parametro esta
en formato de UNIX en segundo.
Ejemplo
<?php
setcookie(“micookie”, $value, time()+3600);
?>
Ejemplo
JuanMartínez López 246
 <?php
setcookie(“message”, “no tendra problema en 10 dias.”, time()
+60*60*24*10);
?>
<html>
<head><title>configura una cookie</title></head>
<body>
<h1>una cookie</h1>
! La cookie expirara en 10 dias, miren
<A HREF=“cook.php”>cook.php</a>
Ahora
</body>
</html>
Eliminar una cookie
 Para eliminar una cookie solo basta con
establecer su valor a “ ” y llamar a setcookie
con los mismos parametros que genero
dicha cookies.
 Sintaxis
<?php
setcookie (“message”, “ “);
?>
Es recomendado asegurarnos de
que la fecha de expiracion se ha cumplido
JuanMartínez López 247
Ejemplo
 <?php
setcookie(“message”,” “,time() – 3600);
?>
<html>
<head><title>eliminar cookie</title></head>
<body>
<center>
<h1>eliminar una cookie</h1>
la cookie se ha eliminado. Mire en
<a href=“cook.php”>cook.php</a>
</center>
</body>
</html>
Cuando Carguemos la
pagina de nuevo, el script
cook.php ya no sera capaz
de encontrar la cookie
JuanMartínez López 248
Tabla completa
JuanMartínez López 249
Nombre
SMTP
Default
"localhos
t"
Descripción
Windows only: The DNS
name or IP address of the
SMTP server
Windows only: The SMTP port
number. Available since PHP
4.3
Windows only: Specifies the
"from" address to be used in
email sent from PHP
Unix systems only: Specifies
where the sendmail program
can be found (usually
/usr/sbin/sendmail or
/usr/lib/sendmail)
editable
PHP_INI_ALL
smtp_port "25" PHP_INI_ALL
sendmail_fro
m
NULL PHP_INI_ALL
sendmail_pat
h
NULL PHP_INI_SYST
EM
Sesiones
25
0
● Mecanismo para preservar datos a lo largo de
accesos posteriores
Almacena información en el servidor accesible
a través de diferentes scripts
La información se guarda en variables de
sesión
●
●
Sesiones
25
1
● Iniciar sesión
– session_start() : antes de cualquier etiqueta
html
● Crear variable de sesión
– $_SESSION ['nombre'] = $valor;
● Recuperar variable de sesión
– $variable = $_SESSION ['nombre'];
Sesiones
<?php
session_start();
if(usuarioValido($usuario)){
$_SESSION['valido']=true;
}
....
?>
<?php
session_start();
if(!empty($_SESSION['valido']
...
}
else{
25
2
and $_SESSION['valido']==true)){
header(“Location : login.php?error=true”);
}
?>
Sesiones
25
3
● Funciones
– session_start : inicia la sesión
– session_destroy : destruye los datos de sesión
– 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]
Formularios HTML
25
4
Proceso:
•El cliente pide una página HTML que
contiene un formulario
• Lo rellena y envía los datos.
•La petición se hace a un script PHP que los
recibe, los procesa y genera una página
HTML que se envía al cliente.
Formularios HTML
El formulario puede ser como el siguiente
<html><body>
<form action="procesar.php" method="post">
Nombre: <input type="text" name="nombre" />
Edad: <input type="text" name="edad" />
<input type="submit" />
</form>
</body></html>
formulario.html 50
Formularios HTML
El script que recibe y procesa los datos:
<html><body>
Hola
<?php
echo $_POST["nombre"];
?>
Tienes
<?php
echo $_POST["edad"];
?>
años.
</body></html>
procesar.php 51
Ejercicio: formularios
25
7
+ Crea un formulario en un archivo HTML que envíe los datos
introducidos a un script PHP que reciba los datos y los muestre.
+ Escribir los datos de cada envío en un archivo de texto (cada envío
en una línea nueva).
+ Probar el funcionamiento:
http://127.0.0.1/formulario.html
La función $_GET
25
8
Se usa para recoger valore enviados usando
method=“get”
Al enviar los datos, se ven en la URL:
http://www.servidor.com/procesar.php?nombre=Pepe
Hay un límite máximo de 100 caracteres
La función $_POST
25
9
Se usa para recoger valore enviados usando
method=“post”
El envío de los datos es invisible:
http://www.servidor.com/procesar.php
No hay límite en la cantidad de datos
Cookies
26
0
Resolver el problema de la falta de estado en la
navegación a través de las páginas web.
Almacenar información que queda registrada en el
navegador, permitiendo identificarlo después.
El manejo de cookies en PHP se realiza mediante el
uso de la función setcookie()
Cookies
26
1
La función define una cookie que es enviada
junto con el resto de la información de la
cabecera.
Deben ser enviadas antes de cualquier etiqueta
de HTML, por lo tanto deberemos realizar la
llamada a estas funciones antes de cualquier
etiqueta <HTML> o <HEAD>
Esta es una restricción de las cookies, no de
PHP.
Cookies. Ejemplo (I)
Primer paso: desde un formulario enviamos información a
un script que la recibirá y establecerá la cookie
<html><body>
Introduzca su
nombre:
<FORM ACTION="paso2.php"
METHOD="GET">
<INPUT TYPE="text"
NAME="nombre"><BR>
<INPUT TYPE="submit" VALUE="Enviar">
</FORM>
</body></html> paso1.html 57
Php basico
Php basico
Php basico
Php basico
Php basico
Php basico
Php basico
Php basico
Php basico
Php basico
Php basico
Php basico
Php basico
Php basico
Php basico
Php basico
Php basico
Php basico
Php basico
Php basico
Php basico
Php basico
Php basico
Php basico
Php basico
Php basico
Php basico

Más contenido relacionado

La actualidad más candente

Estructuras condicionales
Estructuras condicionalesEstructuras condicionales
Estructuras condicionalesAndreina Trejo
 
09 Conjunto de Instrucciones de los Atmega
09 Conjunto de Instrucciones  de los Atmega09 Conjunto de Instrucciones  de los Atmega
09 Conjunto de Instrucciones de los AtmegaJaime E. Velarde
 
Como realizar una red lan básica con packet tracer
Como realizar una red lan básica con packet tracerComo realizar una red lan básica con packet tracer
Como realizar una red lan básica con packet tracerJenny Lophezz
 
Sistemas operativos monopuesto
Sistemas operativos monopuestoSistemas operativos monopuesto
Sistemas operativos monopuestoI LG
 
2.5 planificación del procesador, niveles objetivos y criterios de planificac...
2.5 planificación del procesador, niveles objetivos y criterios de planificac...2.5 planificación del procesador, niveles objetivos y criterios de planificac...
2.5 planificación del procesador, niveles objetivos y criterios de planificac...lupita zume
 
04 Servidores ws2019.ppt
04 Servidores ws2019.ppt04 Servidores ws2019.ppt
04 Servidores ws2019.pptJuanaReategui
 
Alfabetos-Lenguajes y Automatas 1
Alfabetos-Lenguajes y Automatas 1Alfabetos-Lenguajes y Automatas 1
Alfabetos-Lenguajes y Automatas 1Osiris Mirerus
 
Prácticas de-comandos-basicos-de-la-consola-del-cmd
Prácticas de-comandos-basicos-de-la-consola-del-cmdPrácticas de-comandos-basicos-de-la-consola-del-cmd
Prácticas de-comandos-basicos-de-la-consola-del-cmdEva Verduzco
 
Clasificación de las metodologías de desarrollo de software
Clasificación de las metodologías de desarrollo de softwareClasificación de las metodologías de desarrollo de software
Clasificación de las metodologías de desarrollo de softwareEliset Gonzales Uceda
 
Servidores, tipos de servidores
Servidores, tipos de servidoresServidores, tipos de servidores
Servidores, tipos de servidoresEnya Loboguerrero
 
Enrutamiento estatico-con-gns3
Enrutamiento estatico-con-gns3Enrutamiento estatico-con-gns3
Enrutamiento estatico-con-gns3Javierandres64
 
ANSI TIA/EIA 568 B
ANSI TIA/EIA 568 BANSI TIA/EIA 568 B
ANSI TIA/EIA 568 Blpajaro
 
Linux ud2 - comandos gestion archivos
Linux   ud2 - comandos gestion archivosLinux   ud2 - comandos gestion archivos
Linux ud2 - comandos gestion archivosJavier Muñoz
 

La actualidad más candente (20)

SERVIDORES DE INTERNET
SERVIDORES DE INTERNETSERVIDORES DE INTERNET
SERVIDORES DE INTERNET
 
Estructuras condicionales
Estructuras condicionalesEstructuras condicionales
Estructuras condicionales
 
Introduccion a python 3
Introduccion a python 3Introduccion a python 3
Introduccion a python 3
 
Interrupciones
InterrupcionesInterrupciones
Interrupciones
 
09 Conjunto de Instrucciones de los Atmega
09 Conjunto de Instrucciones  de los Atmega09 Conjunto de Instrucciones  de los Atmega
09 Conjunto de Instrucciones de los Atmega
 
Como realizar una red lan básica con packet tracer
Como realizar una red lan básica con packet tracerComo realizar una red lan básica con packet tracer
Como realizar una red lan básica con packet tracer
 
Código intermedio
Código intermedioCódigo intermedio
Código intermedio
 
Sistemas operativos monopuesto
Sistemas operativos monopuestoSistemas operativos monopuesto
Sistemas operativos monopuesto
 
2.5 planificación del procesador, niveles objetivos y criterios de planificac...
2.5 planificación del procesador, niveles objetivos y criterios de planificac...2.5 planificación del procesador, niveles objetivos y criterios de planificac...
2.5 planificación del procesador, niveles objetivos y criterios de planificac...
 
04 Servidores ws2019.ppt
04 Servidores ws2019.ppt04 Servidores ws2019.ppt
04 Servidores ws2019.ppt
 
Practicas MS DOS
Practicas MS DOSPracticas MS DOS
Practicas MS DOS
 
Alfabetos-Lenguajes y Automatas 1
Alfabetos-Lenguajes y Automatas 1Alfabetos-Lenguajes y Automatas 1
Alfabetos-Lenguajes y Automatas 1
 
Prácticas de-comandos-basicos-de-la-consola-del-cmd
Prácticas de-comandos-basicos-de-la-consola-del-cmdPrácticas de-comandos-basicos-de-la-consola-del-cmd
Prácticas de-comandos-basicos-de-la-consola-del-cmd
 
Entrada/Salida de Sistema Operativo
Entrada/Salida de Sistema OperativoEntrada/Salida de Sistema Operativo
Entrada/Salida de Sistema Operativo
 
Clasificación de las metodologías de desarrollo de software
Clasificación de las metodologías de desarrollo de softwareClasificación de las metodologías de desarrollo de software
Clasificación de las metodologías de desarrollo de software
 
Servidores, tipos de servidores
Servidores, tipos de servidoresServidores, tipos de servidores
Servidores, tipos de servidores
 
Enrutamiento estatico-con-gns3
Enrutamiento estatico-con-gns3Enrutamiento estatico-con-gns3
Enrutamiento estatico-con-gns3
 
COMO CREAR UNA CONEXION DE LAN DIRECTA
COMO CREAR UNA CONEXION DE LAN DIRECTACOMO CREAR UNA CONEXION DE LAN DIRECTA
COMO CREAR UNA CONEXION DE LAN DIRECTA
 
ANSI TIA/EIA 568 B
ANSI TIA/EIA 568 BANSI TIA/EIA 568 B
ANSI TIA/EIA 568 B
 
Linux ud2 - comandos gestion archivos
Linux   ud2 - comandos gestion archivosLinux   ud2 - comandos gestion archivos
Linux ud2 - comandos gestion archivos
 

Similar a Php basico (20)

Curso Php
Curso PhpCurso Php
Curso Php
 
Introducción a PHP - Programador PHP - UGR
Introducción a PHP - Programador PHP - UGRIntroducción a PHP - Programador PHP - UGR
Introducción a PHP - Programador PHP - UGR
 
33 php
33 php33 php
33 php
 
Php basico y avanzado
Php basico y avanzadoPhp basico y avanzado
Php basico y avanzado
 
PHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdf
PHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdfPHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdf
PHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdf
 
Php!
Php!Php!
Php!
 
Programacion en php
Programacion en phpProgramacion en php
Programacion en php
 
3144
31443144
3144
 
Php
PhpPhp
Php
 
MAnual de php básico
MAnual de php básicoMAnual de php básico
MAnual de php básico
 
Apuntes php
Apuntes phpApuntes php
Apuntes php
 
Programacion en php atavez de ejemplos
Programacion en php atavez de ejemplosProgramacion en php atavez de ejemplos
Programacion en php atavez de ejemplos
 
Apuntes php
Apuntes phpApuntes php
Apuntes php
 
Php 6 y Mysql
Php 6 y MysqlPhp 6 y Mysql
Php 6 y Mysql
 
Php
PhpPhp
Php
 
Php1
Php1Php1
Php1
 
Introducción a Php basico
Introducción a Php basicoIntroducción a Php basico
Introducción a Php basico
 
Guia programacionwebbasicophp
Guia programacionwebbasicophpGuia programacionwebbasicophp
Guia programacionwebbasicophp
 
Apuntes php
Apuntes phpApuntes php
Apuntes php
 
Programacion en php a traves de ejemplos
Programacion en php a traves de ejemplosProgramacion en php a traves de ejemplos
Programacion en php a traves de ejemplos
 

Más de liceo panamericano centro

Aproximación de conceptos para ubicar una estrategia tecnológica
Aproximación de conceptos para ubicar una estrategia tecnológicaAproximación de conceptos para ubicar una estrategia tecnológica
Aproximación de conceptos para ubicar una estrategia tecnológicaliceo panamericano centro
 

Más de liceo panamericano centro (20)

RECURSOS DIGITALES
RECURSOS DIGITALESRECURSOS DIGITALES
RECURSOS DIGITALES
 
Recursos digitales ok 1
Recursos digitales ok 1Recursos digitales ok 1
Recursos digitales ok 1
 
Recursos digitales
Recursos digitalesRecursos digitales
Recursos digitales
 
Ejemplo para prezzi
Ejemplo para prezziEjemplo para prezzi
Ejemplo para prezzi
 
Introduccion a las TIC
Introduccion a las TICIntroduccion a las TIC
Introduccion a las TIC
 
Aproximación de conceptos para ubicar una estrategia tecnológica
Aproximación de conceptos para ubicar una estrategia tecnológicaAproximación de conceptos para ubicar una estrategia tecnológica
Aproximación de conceptos para ubicar una estrategia tecnológica
 
Framework.Net
Framework.NetFramework.Net
Framework.Net
 
Entorno de Visual Basic 2010
Entorno de Visual Basic 2010Entorno de Visual Basic 2010
Entorno de Visual Basic 2010
 
Conceptos de algoritmos
Conceptos de algoritmosConceptos de algoritmos
Conceptos de algoritmos
 
Guias didacticas rbc
Guias didacticas rbcGuias didacticas rbc
Guias didacticas rbc
 
Diapositiva de rbc patricia
Diapositiva de rbc patriciaDiapositiva de rbc patricia
Diapositiva de rbc patricia
 
La evaluación
La evaluaciónLa evaluación
La evaluación
 
Claves para la educación inclusiva
Claves para la educación inclusivaClaves para la educación inclusiva
Claves para la educación inclusiva
 
Adecuaciones curriculares
Adecuaciones curricularesAdecuaciones curriculares
Adecuaciones curriculares
 
Mejor educación para todos 2009
Mejor educación para todos 2009Mejor educación para todos 2009
Mejor educación para todos 2009
 
Informe educación para todos 2008
Informe educación para todos 2008Informe educación para todos 2008
Informe educación para todos 2008
 
Garren lumpkin
Garren lumpkinGarren lumpkin
Garren lumpkin
 
Educación y diversidad cultural
Educación y diversidad culturalEducación y diversidad cultural
Educación y diversidad cultural
 
Ambientes favorables
Ambientes favorablesAmbientes favorables
Ambientes favorables
 
Guia ciudad protectora
Guia ciudad protectoraGuia ciudad protectora
Guia ciudad protectora
 

Último

LA OVEJITA QUE VINO A CENAR CUENTO INFANTIL.pdf
LA OVEJITA QUE VINO A CENAR CUENTO INFANTIL.pdfLA OVEJITA QUE VINO A CENAR CUENTO INFANTIL.pdf
LA OVEJITA QUE VINO A CENAR CUENTO INFANTIL.pdfNataliaMalky1
 
La evolucion de la especie humana-primero de secundaria
La evolucion de la especie humana-primero de secundariaLa evolucion de la especie humana-primero de secundaria
La evolucion de la especie humana-primero de secundariamarco carlos cuyo
 
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxSINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxlclcarmen
 
Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024IES Vicent Andres Estelles
 
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024gharce
 
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdf
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdfBIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdf
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdfCESARMALAGA4
 
Fundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdfFundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdfsamyarrocha1
 
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdf
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdfFisiologia.Articular. 3 Kapandji.6a.Ed.pdf
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdfcoloncopias5
 
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...JAVIER SOLIS NOYOLA
 
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARONARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFAROJosé Luis Palma
 
Tarea 5-Selección de herramientas digitales-Carol Eraso.pdf
Tarea 5-Selección de herramientas digitales-Carol Eraso.pdfTarea 5-Selección de herramientas digitales-Carol Eraso.pdf
Tarea 5-Selección de herramientas digitales-Carol Eraso.pdfCarol Andrea Eraso Guerrero
 
TEST DE RAVEN es un test conocido para la personalidad.pdf
TEST DE RAVEN es un test conocido para la personalidad.pdfTEST DE RAVEN es un test conocido para la personalidad.pdf
TEST DE RAVEN es un test conocido para la personalidad.pdfDannyTola1
 
ÉTICA, NATURALEZA Y SOCIEDADES_3RO_3ER TRIMESTRE.pdf
ÉTICA, NATURALEZA Y SOCIEDADES_3RO_3ER TRIMESTRE.pdfÉTICA, NATURALEZA Y SOCIEDADES_3RO_3ER TRIMESTRE.pdf
ÉTICA, NATURALEZA Y SOCIEDADES_3RO_3ER TRIMESTRE.pdfluisantoniocruzcorte1
 
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptxLINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptxdanalikcruz2000
 
Instrucciones para la aplicacion de la PAA-2024b - (Mayo 2024)
Instrucciones para la aplicacion de la PAA-2024b - (Mayo 2024)Instrucciones para la aplicacion de la PAA-2024b - (Mayo 2024)
Instrucciones para la aplicacion de la PAA-2024b - (Mayo 2024)veganet
 

Último (20)

LA OVEJITA QUE VINO A CENAR CUENTO INFANTIL.pdf
LA OVEJITA QUE VINO A CENAR CUENTO INFANTIL.pdfLA OVEJITA QUE VINO A CENAR CUENTO INFANTIL.pdf
LA OVEJITA QUE VINO A CENAR CUENTO INFANTIL.pdf
 
La evolucion de la especie humana-primero de secundaria
La evolucion de la especie humana-primero de secundariaLa evolucion de la especie humana-primero de secundaria
La evolucion de la especie humana-primero de secundaria
 
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxSINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
 
Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024
 
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
 
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdf
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdfBIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdf
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdf
 
Fundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdfFundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdf
 
Sesión La luz brilla en la oscuridad.pdf
Sesión  La luz brilla en la oscuridad.pdfSesión  La luz brilla en la oscuridad.pdf
Sesión La luz brilla en la oscuridad.pdf
 
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdf
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdfFisiologia.Articular. 3 Kapandji.6a.Ed.pdf
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdf
 
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
 
Unidad 3 | Teorías de la Comunicación | MCDI
Unidad 3 | Teorías de la Comunicación | MCDIUnidad 3 | Teorías de la Comunicación | MCDI
Unidad 3 | Teorías de la Comunicación | MCDI
 
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARONARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
 
Tarea 5-Selección de herramientas digitales-Carol Eraso.pdf
Tarea 5-Selección de herramientas digitales-Carol Eraso.pdfTarea 5-Selección de herramientas digitales-Carol Eraso.pdf
Tarea 5-Selección de herramientas digitales-Carol Eraso.pdf
 
PPTX: La luz brilla en la oscuridad.pptx
PPTX: La luz brilla en la oscuridad.pptxPPTX: La luz brilla en la oscuridad.pptx
PPTX: La luz brilla en la oscuridad.pptx
 
VISITA À PROTEÇÃO CIVIL _
VISITA À PROTEÇÃO CIVIL                  _VISITA À PROTEÇÃO CIVIL                  _
VISITA À PROTEÇÃO CIVIL _
 
TEST DE RAVEN es un test conocido para la personalidad.pdf
TEST DE RAVEN es un test conocido para la personalidad.pdfTEST DE RAVEN es un test conocido para la personalidad.pdf
TEST DE RAVEN es un test conocido para la personalidad.pdf
 
Earth Day Everyday 2024 54th anniversary
Earth Day Everyday 2024 54th anniversaryEarth Day Everyday 2024 54th anniversary
Earth Day Everyday 2024 54th anniversary
 
ÉTICA, NATURALEZA Y SOCIEDADES_3RO_3ER TRIMESTRE.pdf
ÉTICA, NATURALEZA Y SOCIEDADES_3RO_3ER TRIMESTRE.pdfÉTICA, NATURALEZA Y SOCIEDADES_3RO_3ER TRIMESTRE.pdf
ÉTICA, NATURALEZA Y SOCIEDADES_3RO_3ER TRIMESTRE.pdf
 
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptxLINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
 
Instrucciones para la aplicacion de la PAA-2024b - (Mayo 2024)
Instrucciones para la aplicacion de la PAA-2024b - (Mayo 2024)Instrucciones para la aplicacion de la PAA-2024b - (Mayo 2024)
Instrucciones para la aplicacion de la PAA-2024b - (Mayo 2024)
 

Php basico

  • 1. PHP BASICO Paolo Mercado Gómez Ingeniero de Sistemas
  • 2. objetivos JuanMartínez López 2  Conoce la estructura básica de PHP  Crea aplicaciones simples  Confecciona formulario y lo lee por código PHP  Instala y Configura el servidor apache, Y PHP
  • 3. ¿Qué es PHP? JuanMartínez López 3  PHP (acrónimo de "PHP: Hypertext Preprocessor") es un lenguaje de "código abierto" interpretado, de alto nivel, incrustado en páginas HTML y ejecutado en el servidor.
  • 4. Introducción 4 ● ¿Que es PHP? – Lenguaje de programación de alto nivel – Empotrado en páginas HTML – Ejecutado en servidor – Software libre
  • 5. Introducción (II) 5 ● ¿Que puedo hacer con PHP? – Scripts del lado del servidor – Scripts en linea de comandos – Aplicaciones con interfaz gráfica PHP-GTK
  • 6. Versiones de PHP JuanMartínez López 6  PHP/FI  PHP/FI 2.0  PHP 3  PHP 4  PHP 5
  • 7. Requerimiento para Instalar PHP JuanMartínez López 7  Servidor web (apache, IIS, otros)  Appserver  Foxserv  Wamp, map y lamp  Instalación  Localhost o 127.0.0.1
  • 8. ¿Qué características tiene PHP? 8 Versiones para la mayoría de los S.O. Soporta la mayoría de los servidores web Tipos de programación: – Procedimental – Orientada a objetos Generación de múltiples formatos (HTML, XML, PDF, imágenes, ...)
  • 9. Múltiples extensiones 9 Bases de datos: - Dbase - Hyperwave - IBM DB2 - Direct MS-SQL - MySQL - ODBC - Oracle - PostgreSQL Protocolos: - LDAP - IMAP - SNMP - NNTP - POP3 - HTTP
  • 10. Scripts del lado del servidor 1 0 ● Servidor BD LDAP ... / 1 HTML + PHP Procesa PHP Genera HTML Cliente
  • 11. Scripts del lado del servidor 1 1 ● Servidor Web : Apache2 Servidor BD: MySQL c: HTML + PHP Procesa PHP Genera HTML Navegador (Firefox)
  • 12. ● Requisitos – PHP5 – Servidor Web : apache2 – Servidor BD : mysql – Editor : netbeans Todo en 1 : XAMPP (Apache + MySQL + PHP) Netbeans ● ● ¡¡¡ Software libre !!! Requisitos
  • 13. ● Instalación en windows – XAMPP : http://www.apachefriends.org/es/xampp.html – Installer : Instalación por defecto : C:xampp Raiz de documentos : c:xampphtdocs Configuración php : c:xamppapachebinphp.ini Configuración apache : C:xamppapacheconfhttpd.conf Configuración mysql : C:xamppmysqlbinmy.cnf – – – – ● Navegador : http://localhost ● MySQL : http://localhost/phpmyadmin Instalación en windows
  • 14. 9 ● Editor de scripts php ● – Editor de texto plano IDE (Entorno de desarrollo integrado)– ● Editor Resaltado de sintaxis Plantillas html Debuger Proyectos ... ● ● ● ● ● Instalación en windows (II)
  • 15. Primer proyecto php 1 5 ● – Archivo → Proyecto nuevo Categoría → PHP Proyectos → PHP application Project Name → Nombre_del_proyecto Sources folder → C:xampphtdocsNombre_del_proyecto Run as → Local web site Project URL → http://localhost/Nombre_del_proyecto – – – – – –
  • 16. EJEMPLO  <html> <head> <title>Prueba </title> </head> <body> <?php echo “Bienvenido al curso de PHP básico!"; ?> </body> </html> JuanMartínez López 1 6
  • 17. El primer script 7 <html> <head> <title>primer script</title> </head> <body> <?php echo "<p>Hola mundo</p>"; ?> <p>Más contenido HTML</p> </body> </html> de fin Etiqueta de inicio Orden a ejecutar Etiqueta
  • 18. Ejercicio: probar el primer script 1 8 + Crea un documento de texto con extensión .php en el espacio web de tu servidor. + Copia el siguiente contenido. + Accede desde el navegador a este script alojado en tu servidor http://127.0.0.1/hola.php <html> <body> <?php echo "<p>Hola mundo</p>"; ?> </body> </html>
  • 19. Sintaxis básica 19 Separación de instrucciones con ; La etiqueta de fin ?> también equivale a fin de instrucción Comentarios: // ... /*...*/
  • 20. Insertar código PHP 20 <?php echo “Hola Mundo” ?> <? echo “Hola Mundo” ?> <script language="php"> echo “Hola Mundo” </script> Las tres son equivalentes
  • 21. Sintaxis Básica (I) 2 1 ● Código PHP empotrado en documentos HTML Instrucciones entre etiquetas: – <?php ... ?> – <script language=”php”> ... </script> – <? ... ?> – <% ... %> recomendado : <?php .... ?> – XHTML – XML ● ●
  • 22. Sintaxis Básica (II) 2 2 ● 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>Título de la página</title> </head> <body> <?php echo "<p>Estas usando:".$_SERVER['HTTP_USER_AGENT']."</p>"; ?> </body> </html>
  • 23. Sintaxis Básica (III) 2 3 ● Scripts PHP : – Serie de sentencias / instrucciones – Ejecutadas secuenciálmente – Datos en variables – Estructuras de control – Funciones – Clases (POO)
  • 24. 17 Sintaxis Básica (IV) ● Los espacios/tabulaciones/saltos de linea entre las instrucciones, no afectan al comportamiento – Las siguientes instrucciones tienen el mismo resultado: <?php echo “hola mundo” ;?> <?php echo “hola mundo”; ?> <?php echo “hola mundo”; ?> <?php echo “hola mundo”; ?>
  • 25. 18 Sintaxis Básica (V) ● Las instrucciones siempre se finalizan con punto y coma <?php echo “<p>hola mundo</p>”; echo “<p>Esto es una prueba</p>”; ?> <?php echo “<p>hola mundo</p>”;echo “<p>Esto es una prueba</p>”; ?> <?php echo “<p>hola mundo</p>”; echo “<p>Esto es una prueba</p>”; ?>
  • 26. 19 Sintaxis Básica (VI) ● Comentarios : Texto que no se ejecuta – Linea : // <?php //Esta linea no se tiene en cuenta echo “<p>hola mundo</p>”;//Este comentario tampoco echo “<p>Esto es una prueba</p>”; ?> – Bloque: /* ... */ <?php /*Esta linea no se tiene en cuenta esta tampoco tampoco esta/* /* No se puede anidar /* bloques de comentarios*/ */ ?> Estos comentarios producirían un error
  • 27. Variables JuanMartínez López 2 7  Una variable es un contenedor de información, en el que podemos meter números enteros, números decimales, caracteres  En PHP todas las variables comienzan con el símbolo del dólar $  Ejemplo  $nombre, $_nombre, $nombre_completo
  • 28. 20 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 mayúsculas/minúsculas – El nombre de la variable : ● Empezar con letra o _ (guión bajo) Contener : letras números _● <?php $cont=1; $_cont=1; $nombre_usuario=”mikel” $PESO22_=”102g” ?> <?php $1Usuario = “mikel”; $usuario-2 = “ainara”; $número = 12; $cont 1 = 0; ?> CORRECTO INCORRECTO
  • 29. clave gx-240itladell JuanMartínez López 10 Ejemplo de uso de variable  <html> <head> <title>Ejemplo de PHP</title> </head> <body> <?php $a = 1; $b = 3.34; $c = "Hola Mundo"; echo $a,"<br>",$b,"<br>",$c; ?> </body> </html>   Usuario gx-240 Gx-240 inapdell
  • 30. 22 Variables ● 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 ejecución 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) ?>
  • 31. 23 Variables ● Para forzar variables –settype($variable,”tipo”) –Moldear variables (casting) Mostrar tipo variable –var_dump($variable); Mostrar contenido variable – print_r($variable) – echo – printf ● ●
  • 32. 24 Variables ● Mostrar contenido variables : ejemplos <?php $cont = 123; echo $cont; 123 $mensaje =”Página en construcción”; echo $mensaje; Página en construcción echo $cont; echo $mensaje; 123Página en construcción ?>
  • 33. Variables ● Mostrar contenido variables : Saltos de linea <?php $cont = 123; $mensaje =”Página en construcción”; echo $cont; echo $mensaje; ?> Fuente HTML : 123Página en construcción Navegador: 123Página en construcción 3 3
  • 34. Variables ● Mostrar contenido variables : Saltos de linea (II) <?php $cont = 123; $mensaje =”Página en construcción”; echo $cont; echo “<br/>”; echo $mensaje; ?> Fuente HTML : 123<br/>Página en construcción Navegador: 123 Página en construcción 3 4
  • 35. Variables ● Mostrar contenido variables : Saltos de linea (III) <?php $cont = 123; $mensaje =”Página en construcción”; echo $cont; echo “n”; echo $mensaje; ?> Fuente HTML : 123 Página en construcción Navegador: 123Página en construcción 3 5
  • 37. Ejemplo JuanMartínez López 37 html> <head> <title>Ejemplo de PHP</title> </head> <body> <?php $a = 8; $b = 3; echo $a + $b,"<br>"; echo $a - $b,"<br>"; echo $a * $b,"<br>"; echo $a / $b,"<br>"; $a++; echo $a,"<br>"; $b--; echo $b,"<br>"; ?> </body> </html>
  • 38. Practica 2 JuanMartínez López 38  TOMADO EN CUENTA QUE DOMINA LAS OPERACIONES ARITMETICA REALIZA EL SIGUIENTE PROGRAMA.  CALCULAR TU EDAD EN LOS SIGUINETES RENGLONES - POR MES, SEMAMA, DIAS, HORA , MINUTOS Y SEGUNDO.  DEBE GRABAR EL ARCHIVO CON EL NOMBRE DE calculo.php
  • 40. Operadores de Asignación JuanMartínez López 40  El operador básico de asignación es "=". A primera vista, usted podría pensar en él como "es igual a". No lo haga. Lo que quiere decir en realidad es que el operando de la izquierda recibe el valor de la expresión a la derecha (es decir, "se define a").  El valor de una expresión de asignación es el valor que se asigna. Es decir, el valor de "$a = 3" es 3. Esto le permite hacer una que otra cosa curiosa:
  • 41. Ejemplo de Comparación JuanMartínez López 41 <html> <head> <title>Ejemplo de PHP</title> </head> <body> <?php $a = 8; $b = 3; $c = 3; echo $a == $b,"<br>"; echo $a != $b,"<br>"; echo $a < $b,"<br>"; echo $a > $b,"<br>"; echo $a >= $c,"<br>"; echo $b <= $c,"<br>"; ?> </body> </html>
  • 42. Operadores de Control de Errores JuanMartínez López 42  PHP ofrece soporte para un operador de control de errores: el signo de arroba (@). Cuando es colocado al comienzo de una expresión en PHP, cualquier mensaje de error que pudiera generarse a causa de esa expresión será ignorado.
  • 43. ejemplo JuanMartínez López 43  <?php /* Error intencional de archivo */ $mi_archivo = @file ('archivo_que_no_existe') or die ("La apertura de archivo ha fallado: el error fue '$php_errormsg'"); // esto funciona con cualquier expresion, no solo con funciones: $valor = @$cache[$llave]; // no producira una anotacion si el indice $llave no existe. ?>
  • 44. JuanMartínez López 20 Lógicos  Los operadores lógicos son usados para evaluar varias comparaciones, combinando los posibles valores de estas
  • 45. Ejemplo JuanMartínez López 45  <html> <head> <title>Ejemplo de PHP</title> </head> <body> <?php $a = 8; $b = 3; $c = 3; echo ($a == $b) && ($c > $b),"<br>"; echo ($a == $b) || ($b == $c),"<br>"; echo !($b <= $c),"<br>"; ?> </body> </html>
  • 46. Operadores de Incremento/Decremento PHP ofrece soporte de operadores de pre- y post-incremento y decremento, estilo-C. JuanMartínez López 46
  • 47. Datos escalares. Valores numéricos 47 Podemos trabajar de forma similar a C/C++ <html><body> <?php $num = 7; $cont = 9; $suma = $num + $cont; echo "<p>SUMA = $suma</p>"; ?> </body></html>
  • 48. Ejercicio: probar el script anterior 48 + Crea un documento de texto con extensión .php en el espacio web de tu servidor. + Copia el siguiente contenido. + Accede desde el navegador a este script http://127.0.0.1/suma.php <html><body> <?php $num = 7; $cont = 9; $suma = $num + $cont; echo "<p>SUMA = $suma</p>"; ?> </body></html>
  • 49. 31 Tipos ● Tipos – Escalares ● Enteros Coma flotante Cadenas Booleanos ● ● ● – Compuestos ● Matrices Objetos● – Null – Resource
  • 50. 32 Tipos : Enteros ● Enteros (Integer) – Números enteros del conjunto Z = {...,-2,1,0,1,2,...} – Tamaño 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)
  • 51. 33 Tipos : Enteros (II) ● Enteros (Integer) Declarando variables de enteros: <?php $cont = 123;// Un número decimal $cont = -123;// Un número decimal negativo $cont = 0123;// Un número octal $cont = 0x1A;// Un número hexadecimal $edadMinima = 18; ?> Desbordamiento de enteros : <?php $numeroGrande = 2147483647; var_dump($numeroGrande);// Devuelve : int(2147483647) $numeroGrande = 2147483648; var_dump($numeroGrande);// Devuelve : float(2147483647) ?>
  • 52. 34 Tipos : Reales ● Números de coma flotante (Float) – Números reales – También conocidos como doble o real – Tamaño depende de la plataforma – Usual : ~1.8e308 <?php $a = 1.234; $b = 1.2e3; $c = 7E-10; ?>
  • 53. 35 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 ?>
  • 54. 36 Operadores aritméticos ● Podemos realizar operaciones aritméticas – El operador ' / ' devuelve un valor flotante a menos que los dos operandos sean enteros y los números sean divisibles sin residuos Operacion Operador Ejemplo suma + $total = $precio + $iva; resta - $oferta = $total - $descuento; multiplicacion * $iva = $precio*0.16; division / $media = $suma / $total; módulo (resto) % $resto = $total % 5; negación - $a = 10*-$b;
  • 55. Operadores aritméticos (II) ● El orden de ejecución : – – – Izquierda a derecha – Paréntesis : orden de ejecución <?php ?> 5 5 echo (8 % 3 * 5); // 10 echo (8 * 3 % 5); // 4 echo (5 * 8 % 3); // 1 echo (5 % 8 * 3); // 15 echo 8%(3*5); // 8 echo 8*(3%5); //24 echo 5 *( 8 % 3); //10 echo 5 %( 8 * 3); // 5 echo ((($a+($b-$c))/$d) % 3); //paréntesis de aperture = paréntesis de cierre * / % + -
  • 56. Operadores aritméticos (III) ● Ejemplos : <?php $a = 10; $b = 30 + $a; echo $b *0.6; $c = (($a * 40) - $b) / 2; $pie = 10; $altura = 25; $superficie = ($pie*$altura)/2; ?> 5 6
  • 57. Operadores aritméticos (IV) ● Operadores de incremento/decremento : <?php $a = 10; $a++; echo $a; //11 $a--; echo $a; // 10 ?> 3 9 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.
  • 58. Tipos : Cadenas 4 9 ● Cadenas (String) – Secuencia de caracteres – Antes de PHP 6 : un carácter -> un byte – 256 tipos de caracteres diferentes – Diferentes maneras de especificar – Caracteres de escape – No hay limite de tamaño
  • 59. 41 Tipos : Cadenas ● Cadenas (String) : Definición de cadenas – Comillas simples : ' – Imprimir comilla simple: ● ' – Para imprimir barra invertida ● <?php echo 'Esto es una cadena'; $c = 'Una cadena en una variable'; echo 'Imprime una cadena con saltos'; ?>
  • 60. Tipos : Cadenas 6 0 ● Cadenas (String) : Definición de cadenas – Comillas dobles : “Esto es una cadena” – Caracteres escapados ● n : Imprime una linea nueva ● t : Imprime una tabulación horizontal : Imprime una barra invertida● ● $ : Imprime un signo de dólar ” : Imprime una comilla doble● – Los nombres de las variables serán expandidos
  • 61. Tipos : Cadenas ● Cadenas : Comillas dobles <?php $nombre = “esti”; echo ”Frase con n tres n saltos de linea.n”; Frase con tres saltos de linea. $articulo = “tFrase tabuladanSin tabular”; echo $articulo; Frase tabulada Sin Tabular echo ”Ha seleccionado ”5” 'articulos' “; Ha seleccionado “5” 'articulos' “n” != “<br/>” ?> 6 1
  • 62. Tipos : Cadenas ● Cadenas : Expansión de variables – Las variables son interpretadas <?php $nombre = “ainhoa”; echo ”Bienvenid@ $nombre”; // Imprime Bienvenid@ ainhoa $articulo = “camiseta”; $cantidad = 5; echo ”Ha seleccionado $cantidad $articulos “; // Incorrecto echo ”Ha seleccionado $cantidad ${articulo}s “; // Correcto echo ”Ha seleccionado $cantidad {$articulo}s “; // Correcto echo ”Ha seleccionado $cantidad $articulo's “; // Correcto ?> 6 2
  • 63. 45 Tipos : Cadenas ● Cadenas : Heredoc – Definir cadenas largas – Uso similar a comillas dobles – Caracteres de escape – Expansión de variables <?php $cadena = <<<FIN Ejemplo de una cadena que se extiende por varias líneas usando la sintaxis heredoc. FIN; ?>
  • 64. <?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 : Heredoc – Expansión de variables
  • 65. Tipos : Cadenas ● Cadenas : Acceso a caracteres – Indices [ 0 .. longitud_cadena -1] <?php $cadena = “esto es una prueba”; echo $cadena; esto es una prueba echo $cadena[0]; // Imprime el primer caracter e echo $cadena[6]; // Imprime el 7 caracter s $cadena[0]='E'; echo $cadena; Esto es una prueba 47?>
  • 66. Operadores de cadena ● ● Asignación sobre concatenación ' .= ' Concatenación ' . ' <?php $cadena = “<label class='datos'>”.$nombre.” “.$apellido”.”</labe>; echo $cadena; <label class='datos'>Esti Goikoetxea</label> //Html : Esti Goikoetxea ?> <?php $cadena = “<label class='; ... $cadena.=”datos”; ... $cadena.=”'>”.$nombre.” “.$apellido”.”</label>; ... ?> 48
  • 67. 49 Tipos : Booleanos ● Booleanos : – 2 valores : true o false || TRUE o FALSE ● 0,0.0, “” , '',”0”, null,array vacio = false Cualquier otro valor = true● <?php var_dump((bool) ""); // bool(false) var_dump((bool) var_dump((bool) var_dump((bool) var_dump((bool) var_dump((bool) var_dump((bool) var_dump((bool) 1); -2); "foo"); 2.3e5); array(12)); array()); "false"); // // // // // // // bool(true ) bool(true ) bool(true ) bool(true ) bool(true
  • 68. Operadores de comparación ● Las expresiones de comparación siempre devuelven un valor boolean <?php 6 8 var_dump($a>$b); var_dump($a<$b); var_dump($a>$c); var_dump($b==$c); var_dump($b===$c); var_dump($b!=$c); var_dump($b!==$c); var_dump($b<>$c); var_dump($a>=$b); ?> //bool(true) //bool(false) //bool(true) //bool(true) //bool(false) //bool(false) //bool(true) //bool(false) //bool(true) $a = 5; $b = 0; $c = "0";
  • 69. Operadores de comparación 6 9 ● Operadores Operacion Nombre Resultados $a == $b Igual TRUE si $a es igual a $b. $a === $b Idéntico TRUE si $a es igual a $b, y son del mismo tipo. $a != $b Diferente TRUE si $a no es igual a $b. $a <> $b Diferente TRUE si $a no es igual a $b. $a !== $b No idénticos TRUE si $a no es igual a $b.TRUE si $a no es igual a $b, o si no son del mismo tipo. $a < $b Menor que TRUE si $a es escrictamente menor que $b. $a > $b Mayor que TRUE si $a es estrictamente mayor que $b. $a <= $b Menor o igual que TRUE si $a es menor o igual que $b. $a >= $b Mayor o igual que TRUE si $a es mayor o igual que $b.
  • 70. Operadores lógicos 7 0 ● Operadores Operacion Nombre Resultados $a and $b Y TRUE si tanto $a como $b sonTRUE. $a or $b O TRUE si cualquiera de $a o $b es TRUE. $a xor $b XOR TRUE si $a o $b esTRUE, pero no ambos. ! $a No TRUE si $a no esTRUE. $a && $b Y TRUE si tanto $a como $b sonTRUE. $a || $b O TRUE si cualquiera de $a o $b es TRUE.
  • 71. Tipos : Array 7 1 ● Matrices (Array) – Serie de pares de clave/valor (con un orden) – No puede haber claves repetidas – Multidimensionales – Por defecto : claves numéricas 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
  • 72. Tipos : Array ● Matrices (Array) : Definir array – Podemos definir/crear arrays de diferentes maneras <?php $laborables = array(“lunes”,”martes”,”miércoles”,”jueves”,”viernes”); $laborables = array(0=>”lunes”,1=>”martes”,2=>”miércoles”, 3=>”jueves”,4=>”viernes”); ?> – De las dos maneras tendríamos la siguiente estructura (¡en una sola variable!) 7 2 Índice 0 1 2 3 4 Valor “lunes” “martes” “miércoles” “jueves” “viernes”
  • 73. Tipos : Array ● Matrices (Array) : Definir array – Podemos especificar los índices directamente – Los índices no tiene por que ser consecutivos <?php $festivos[0]=”sábado”; $festivos[1]=”domingo”; ?> 7 3 Índice 0 1 Valor “sábado” “domingo”
  • 74. Tipos : Array ● Matrices (Array) : Definir array – Los índices numéricos no se reordenan – Aunque disponemos de herramientas para hacerlo <?php $usuario[0]=”ainhoa”; $usuario[2]=”ane”; $usuario[1]=”iñaki”; ?> 7 4 Índice 0 2 1 Valor “ainhoa” “ane” “iñaki”
  • 75. Tipos : Array ● Matrices (Array) : Añadir elementos al array – Podemos añadir elementos al array sin especificar el índice <?php $estaciones[0]=”invierno”; $estaciones[1]=”primavera”; $estaciones[]=”verano”; $estaciones[]=”otoño”; ?> – De esta manera se añadirán al final del array y su indice será el mayor indice del array incrementado en uno 7 5 Índice 0 1 2 3 Valor “invierno” “primavera” “verano” “otoño”
  • 76. Tipos : Array ● Matrices (Array) : Acceder a los valores $laborables = array(“lunes”,”martes”,”miércoles”,”jueves”,”viernes”); echo $laborables; Array echo $laborables[2]; miércoles $estaciones[0]=”invierno”; $estaciones[1]=”primavera”; $estaciones[]=”verano”; $estaciones[]=”otoño”; print_r($estaciones); Array ( [0] => invierno [1] => primavera [2] => verano [3] => otoño ) 7 6
  • 77. Tipos : Array ● Matrices (Array) : Array asociativo – Los índices no tienen por que ser numéricos<?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 ... ) ?> 7 7
  • 78. Tipos : Array ● Matrices (Array) : Array asociativo – Generalmente con BD => Asociativos <?php echo “<tr><td>Nombre:</td><td>” . $fila['nombre'] . ”</td></tr>”; echo “<tr><td>Apellido:</td><td>” . $fila['apellido'] . ”</td></tr>”; echo “<tr><td>Dni:</td><td>” . $fila['dni'] . ”</td></tr>”; ?> 7 8 Nombre Ainara Apelido Etxeberria Dni 99999999K
  • 79. Tipos : Array ● Matrices (Array) : Array multidimensional <?php $apuntados = array( “enero”=>array(“mikel”,”ainhoa”,”ane”), ”febrero”=>array(“ainara”,”eneko”), .... ,”diciembre”=>0); ?> 7 9 Índice “enero” “febrero” .... “diciembre” Valor “mikel “ainara” “ainhoa” “eneko” “ane”
  • 80. 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 ?> 8 0
  • 81. Tipos : Array ● Matrices (Array) : Array multidimensional <?php ... echo “<pre>”; print_r ($apuntados); echo “</pre>”; Array ( [enero] => Array ( [0] => mikel [1] => ainhoa [2] => ane ) [febrero] => Array ( [0] => ainara .... [diciembre] => 0 )?> 8 1
  • 82. Operadores de matrices 8 2 ● Operadores Operacion Nombre Resultados $a + $b Unión Unión de $a y $b. $a == $b Igualdad TRUE si $a y $b tienen las mismas parejas llave/valor. $a === $b Identidad TRUE si $a y $b tienen las mismas parejas llave/valor en el mismo orden y de los mismos tipos. $a!=$b No-igualdad TRUE si $a no es igual a $b. $a <> $b No-igualdad TRUE si $a no es igual a $b. $a !== $b No-identidad TRUE si $a no es idéntico a $b.
  • 83. Tipos : NULL ● Variable que no tiene valor Posibles valor : null || NULL● <?php $var =null; ?> 8 3
  • 84. Tipos : Resource 8 4 ● 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); .... ● ● ●
  • 85. 66 Constantes ● Definición 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 ?>
  • 86. Estructuras de control 86 De cuando en cuando, debemos ejecutar diferentes porciones de código en función de ciertas condiciones. En estos casos debemos usar las sentencias condicionales. Para ejecutar diferentes porciones de código de forma repetida, en lugar de replicar varias veces el mismo código, debemos usar las sentencias de tipo bucle.
  • 87. JuanMartínez López 87  Las sentencias condicionales nos permiten ejecutar o no unas ciertas instrucciones dependiendo del resultado de evaluar una condición. Las más frecuentes son la instrucción if y la instrucción switch.  Sentencia if ... else Estructuras de control : IF
  • 88. 68 Estructuras de control : IF ● Permite la ejecución condicional de sentencias Si la condición se cumple en tiempo de ejecución : se ejecuta un bloque de código predeterminado ● ● Las tabulaciones no son necesarias pero si recomendables para la legibilidad el código <?php if (expr) sentencia ?>
  • 89. Estructuras de control : IF ● expr : “cualquier cosa que tiene un valor” <?php $a = 5; ?> – Los literales son expresiones – '5' es una expresión con el valor 5 – Las variables son expresiones – $a es una expresión con el valor 5 6 9
  • 90. 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 ) echo “a es mayor que cero”; ?> – $a > 0 es una expresión con valor TRUE 7 9
  • 91. Estructuras de control : IF ● expr se evalúa a su valor condicional (boolean) – Si la expresión se evalúa como true se ejecuta la sentencia – Si la expresión se evalúa como false no se ejecuta la sentencia <?php 9 1 $a = 10; if ($a > print 0) "a es mayor que 0"; if ($a) print “a es diferente a 0”; ?>
  • 92. Estructuras de control condicional 92 <html> <body> <?php $d=date("D"); if ($d=="Fri") { echo "Buen finde!"; } ?> </body> </html> <html><body> <?php $d=date("D"); if ($d=="Fri"){ echo "Buen finde!"; }else{ echo "Buenos dias!"; } ?> </body></html>
  • 93. Ejemplo JuanMartínez López 93  <html> <head> <title>Ejemplo de PHP</title> </head> <body> <?php $a = 8; $b = 3; if ($a < $b) { echo "a es menor que b"; } else { echo "a no es menor que b"; } ?> </body> </html>
  • 94. Ejemplo JuanMartínez López 94 <html> <body> <?php $d=date("D"); if ($d=="Fri") { echo "Hello!<br />"; echo "Have a nice weekend!"; echo "See you on Monday!"; } ?> </body> </html>
  • 96. Practica 3. JuanMartínez López 96 Vamos a crear un programa donde podamos hacer la siguiente condición. Donde si el valor numérico es mayor de 20 y menor de 30, imprime un letrero edad de productividad Si la edad es mayor de 30 y menor de 50, imprime un letrero indicando edad rica Si es mayor de 50 Edad de los contrario no califica.
  • 97. elseif JuanMartínez López 97  como su nombre sugiere, es una combinación de if y else. Como else, extiende una sentencia if para ejecutar una sentencia diferente en caso de que la expresión if original se evalúa como FALSE. No obstante, a diferencia de else, ejecutará esa expresión alternativa solamente si la expresión condicional elseif se evalúa como TRUE. Por ejemplo, el siguiente código mostraría a es mayor que b, a es igual a b o a es menor que b:
  • 98. Ejemplo JuanMartínez López 98  <?php if ($a > $b) { echo "a es mayor que b"; } elseif ($a == $b) { echo "a es igual que b"; } else { echo "a es mayor que b"; } ?>
  • 99. Ejemplo JuanMartínez López 99 <html> <body> <?php $d=date("D"); if ($d=="Fri") echo "Have a nice weekend!"; elseif ($d=="Sun") echo "Have a nice Sunday!"; else echo "Have a nice day!"; ?> </body> </html>
  • 100. La Sentencia Switch  podemos ejecutar unas u otras instrucciones dependiendo del valor de una variable JuanMartínez López 10 0
  • 101. Ejemplo del Swict JuanMartínez López 10 1 <html> <body> <?php switch ($x) { case 1: echo "Number 1"; break; case 2: echo "Number 2"; break; case 3: echo "Number 3"; break; default: echo "No number between 1 and 3"; } ?> </body> </html>
  • 102. Ejemplo JuanMartínez López 10 2  <html> <head> <title>Ejemplo de PHP</title> </head> <body> <?php $posicion = "arriba"; switch($posicion) { case "arriba": // Bloque 1 echo "La variable contiene"; echo " el valor arriba"; break; case "abajo": // Bloque 2 echo "La variable contiene"; echo " el valor abajo"; break; default: // Bloque 3 echo "La variable contiene otro valor"; echo " distinto de arriba y abajo"; } ?> </body> </html>
  • 103. Sentencia while JuanMartínez López 10 3  repetir la ejecución de un conjunto de instrucciones mientras se cumpla una condición.  Mientras la condición sea cierta se reiterará la ejecución de las instrucciones que están dentro del while.  Crea un loop hasta que la condicion se cumpla.
  • 104. Sintaxis de While JuanMartínez López 10 4  <?php while (condición) { intrucciones a ejecutar. } ?>
  • 105. Ejemplo 1 de while JuanMartínez López 10 5 <html> <body> <?php $i=1; while($i<=5) { echo "The number is " . $i . "<br />"; $i++; } ?> </body> </html>
  • 106. Ejemplo 1 de while JuanMartínez López 10 6 <html> <body> <?php $i=10; while($i>=1) { echo "The number is " . $i . "<br />"; $i=$i - 1 } ?> </body> </html>
  • 107. Ejemplo 2 de While JuanMartínez López 10 7 <html> <head> <title>Ejemplo de PHP</title> </head> <body> Inicio<BR> <?php $i=0; while ($i<10) { echo "El valor de i es ", $i,"<br>"; $i++; } ?> Final<BR> </body> </html>
  • 108. Do.. while JuanMartínez López 10 8  Los bucles do..while son muy similares a los bucles while, excepto que las condiciones se comprueban al final de cada iteración en vez de al principio, es decir, que esta sentencia primero se ejecuta y luego evalúa.
  • 109. Ejemplo JuanMartínez López 10 9 <?php $i = 1; do { echo $i; $i++; } while ($i< 15); ?> Crea un bucle de los numeros del 1 al 14. <?php $i = 0; do { print $i; } while ($i>0); ?> Este ejemplo solo se ejecutara una sola vez
  • 110. For  Los bucles for son los bucles más complejos en PHP. Se comportan como su contrapartida en C. La sintaxis de un bucle for es.  for ($i = 1; $i <= 10; $i++) Se define condición Incremento JuanMartínez López 11 0
  • 111. Ejemplos JuanMartínez López 11 1  <html> <head> <title>Ejemplo de PHP</title> </head> <body> Parte de HTML normal. <BR> <?php echo "Parte de PHP<br>"; for($i=0;$i<10;$i++) { echo "Linea ".$i."<br>"; } ?> </body> </html>
  • 112. Array JuanMartínez López 11 2  array -- Crear una matriz  Devuelve una matriz con los parámetros que se le pasan. A dichos parámetros se les puede dar un índice usando el operador =>.  Descripción  array array ( mixed ...)
  • 113. Ejemplos JuanMartínez López 11 3  $frutas = array ( "frutas" => array("a"=>"naranja", "b"=>"plátano", "c"=>"manzana"), "números" => array(1, 2, 3, 4, 5, 6), "hoyos" => array("primero", 5 => "segundo", "tercero") );
  • 114. foreach JuanMartínez López 11 4  tal como perl y algunos otros lenguajes. Esto simplemente da un modo fácil de iterar sobre matrices.  funciona solamente con matrices y devolverá un error si se intenta utilizar con otro tipo de datos ó variables no inicializadas Nota: foreach no soporta la caracteristica de suprimir mensajes de error con '@'.
  • 115. 48puntero interno del array se avanzaJueannMaurtínneaz López unidad (así en el siguiente paso, se estará Sintaxis de foreach foreach(expresion_array as $key => $value) sentencia La segunda manera hace lo mismo, salvo que la clave del elemento actual será asignada a la variable $key en cada iteración La primera forma recorre el array dado por expresion_array. En cada iteración, el valor del elemento actual se asigna a $value y el  foreach(expresion_array as $value) sentencia 
  • 116. ejemplo JuanMartínez López 11 6  <?php $arr = array("one", "two", "three"); reset ($arr); while (list(, $valor) = each ($arr)) { echo "Valor:”, $valor<br>n"; } foreach ($arr as $valor) { echo “Valor:”, $valor<br>n"; } ?>
  • 117. DEFINE JuanMartínez López 11 7   Define una constante con nombre, que es similar a una variable. Descripción int define ( string name, mixed value [, int case_insensitive]) . EJEMPLO <?php define("CONSTANT", "HOLA php."); echo CONSTANT; // outputs "HOLA PHP.“ ?>
  • 118. Constante JuanMartínez López 11 8  Las constantes no tienen un símbolo dólar '$' precediéndolas;  Las constantes son accesibles desde cualquier lugar sin tener en cuenta las reglas de ámbito de las variables.  Las constantes no pueden ser redefinidas o iniciadas una vez que han sido establecidas, y  Las constantes sólo pueden evaluar valores escalares
  • 119. MANEJANDO CADENAS DE CARCTERES EN PHP JuanMartínez López 11 9  Dado el uso del lenguaje PHP el tratamiento de cadenas es muy importante, existen bastantes funciones para el manejo de cadenas, a continuación explicaremos las más usadas.
  • 120.  strlen(cadena). Nos devuelve el número de carácteres de una cadena.  split(separador,cadena). Divide una cadena en varias usando un carácter separador.  sprintf(cadena de formato, var1, var2...). Formatea una cadena de texto al igual que printf pero el resultado es devuelto como una cadena.  substr(cadena, inicio, longitud). Devuelve una subcadena de otra, empezando por inicio y de longitud.  $email=juan5654@gmail.com  Split(@,email) JuanMartínez López 12 0
  • 121.  chop(cadena). Elimina los saltos de línea y los espacios finales de una cadena.  strpos(cadena1, cadena2). Busca la cadena2 dentro de cadena1 indicándonos la posición en la que se encuentra.  str_replace(cadena1, cadena2, texto). Reemplaza la cadena1 por la cadena2 en el texto. JuanMartínez López 12 1
  • 122. EJEMPLO JuanMartínez López 12 2  <html> <head> <title>Ejemplo de PHP</title> </head> <body> <?php echo strlen("12345"),"<br>"; $palabras=split(" ","Esto es una prueba"); for($i=0;$palabras[$i];$i++) echo $palabras[$i],"<br>"; $resultado=sprintf("8x5 = %d <br>",8*5); echo $resultado,"<br>"; echo substr("Devuelve una subcadena de otra",9,3),"<br><br>"; if (chop("Cadena nn ") == "Cadena") echo "Iguales<br><br>"; echo strpos("Busca la palabra dentro de la frase", "palabra"),"<br><br>"; echo str_replace("verde","rojo","Un pez de color verde, como verde es la hierba."),"<br>"; ?> </body> </html>
  • 123. Ejemplos de matrices JuanMartínez López 12 3  <?php $carro [0] = “cepillo”; $carro [1] = “BMW”; $carro [2]= “Toyota”; for ($index = 0; $index <count($carro); $index++) { Echo $carro[$index],”<br>”; } ?>
  • 124.   JuanMartínez López 12 4 Tabla de contenidos array_change_key_case -- Devuelve una matriz con todas las claves de las cadenas convertidas a mayúsculas o minúsculas array_chunk -- Divide una matriz en segmentos array_combine -- Crea una nueva matriz, usando una matriz para las claves y otra para sus valores array_count_values -- Cuenta todos los valores de una matriz array_diff_assoc -- Comprueba las diferencias entre matrices teniendo en cuenta los índices array_diff_key -- Calcula la diferencia de matrices usando las llaves para la comparación array_diff_uassoc -- Computa la diferencia entre matrices con un chequeo adicional de índices, el cual es realizado por una llamada de retorno entregada por el usuario array_diff_ukey -- Calcula la diferencia de matrices usando callback function on the keys for comparison array_diff -- Comprueba las diferencias entre matrices        
  • 125.  JuanMartínez López 12 5 array_map -- Aplica la llamada de retorno especificada a los elementos de las matrices dadas array_merge_recursive -- Une dos o más matrices recursivamente array_merge -- Combina dos o más matrices    array_multisort -- Ordena múltiples matrices, o matrices multi- dimensionales array_pad -- Rellena una matriz con un valor hasta el tamaño especificado array_pop -- Extrae el último elemento de la matriz array_product -- Calcula el producto de valores en una matriz array_push -- Inserta uno o más elementos al final de la matriz array_rand -- Selecciona una o más entradas aleatorias de una matriz array_reduce -- Reduce iterativamente una matriz a un solo valor usando una función llamada de retorno array_reverse -- Devuelve una matriz con los elementos en orden inverso       
  • 126.   JuanMartínez López 12 6 de retorno array_udiff -- Computa la diferencia entre matrices, usando una llamada de retorno para la comparación de datos array_uintersect_assoc -- Calcula la intersección de matrices con chequeo adicional de ídices, comparando los datos por una función del usuario array_uintersect_uassoc -- Calcula la intersección de matrices con chequeo adicional de índices, compara los datos y los índices por una función del usuario array_uintersect -- Calcula la interseccón de matrices, compara los datos con una función del usuario array_unique -- Remueve valores duplicados de una matriz array_unshift -- Introduce uno o más elementos al principio de la matriz array_values -- Devuelve todos los valores de una matriz      
  • 127.  JuanMartínez López 12 7 each -- Devuelve el siguiente par clave/valor de una matriz y avanza el apuntador end -- Mueve el puntero interno de una tabla al último elemento extract -- Importa variables a la tabla de símbolos desde una matriz in_array -- Revisa si un valor existe en una matriz         key -- Obtiene una clave de una matriz asociativa krsort -- Ordena una matriz por clave en orden inverso ksort -- Ordena una matriz por clave list -- Asigna variables como si fueran una matriz natcasesort -- Ordena una matriz usando un algoritmo de "orden natural" sin distinguir mayúsculas de minúsculas natsort -- Ordena una matriz usando un algoritmo de "orden natural" next -- Avanza el puntero interno de una matriz  
  • 128.  pos -- Alias de current()  prev -- Rebobina el puntero interno de una matriz  range -- Crea una matriz que contiene un rango de elementos  reset -- Fija el puntero interno de una matriz a su primer elemento  rsort -- Ordena una matriz en orden inverso  shuffle -- Mezcla una matriz  sizeof -- Alias of count() JuanMartínez López 12 8
  • 129.  JuanMartínez López 12 9 array_search -- Busca un valor determinado en una matriz y devuelve la clave correspondiente en caso de éxito array_shift -- Extrae un elemento del comienzo de la matriz array_slice -- Extrae una porción de la matriz array_splice -- Suprime una porción de la matriz y la sustituye por otra cosa array_sum -- Calcula la suma de los valores en una matriz array_udiff_assoc -- Computa la diferencia entre matrices con un chequeo de índices adicional, comparando los datos con una llamada de retorno array_udiff_uassoc -- Computa la diferencia entre matrices con un chequeo de índices adicional, comparando los datos y los índices con una llamada      
  • 130.   JuanMartínez López 13 0 array_fill -- Llena una matriz con valores array_filter -- Filtra elementos de una matriz mediante una función "callback" array_flip -- Intercambia los valores de una matriz con sus índices array_intersect_assoc -- Calcula la intersección de matrices verificando que también coincidan los índices array_intersect_key -- Calcula la intersección de matrices usando las llaves para la comparación array_intersect_uassoc -- Calcula la intersección de matrices con chequeo de índices adicional por una función de usuario array_intersect_ukey -- Calcula la intersecció de matrices usando una función de usuario para la comparación de los índices array_intersect -- Calcula la intersección de matrices array_key_exists -- Comprueba si el índice o clave dada existe en la matriz array_keys -- Devuelve todas las claves de una matriz        
  • 131.  sort -- Ordena una matriz  uasort -- Ordena una matriz mediante una función de comparación definida por el usuario y mantiene la asociación de índices  uksort -- Ordena una matriz por claves mediante una función definida por el usuario  usort -- Ordena una matriz por sus valores usando una función de comparación definida por el usuario JuanMartínez López 13 1
  • 132.  JuanMartínez López 13 2 array_walk_recursive -- Aplicar una función de usuario recursivamente a cada miembro de una matriz array_walk -- Aplica una función del usuario a cada elemento de una matriz. array -- Crear una matriz arsort -- Ordena una matriz en orden inverso y mantiene la asociación de índices asort -- Ordena una matriz y mantiene la asociación de índices compact -- Crea una matriz que contiene variables y sus valores count -- Cuenta los elementos de una matriz o propiedades de un objeto current -- Devuelve el elemento actual de una matriz       
  • 133. Comando para trabajar en matrices JuanMartínez López 13 3 Unset  Se usa para eliminar un elemento de la matriz o la matriz entera Sintaxis  Unset($matriz[3]) (este borra el elemento cuyo indice es igual a 3).  Unset ($matriz) este opcion elimina la matriz completa.
  • 134. Otro ejemplo de matrices JuanMartínez López 13 4  <?php $carro = array (“Toyota”, “suzuky”,”volvo”); print_r($carro); sort($carro); echo “<hr>”; print _r($carro); ?>
  • 135. <?php $fruta[0] = "pina"; $fruta[1] = "manzana"; $fruta[2] = "coco"; $fruta[3] = "mango"; for ($index = 0; $index < count($fruta); $index++) { echo $fruta[$index], "<br>"; } echo "<hr>"; print_r($fruta); echo "<hr>"; // sacando un numero aleatorio de una matriz $n= array_rand($fruta); echo $n; echo "<hr>"; // ordenando una matriz sort ($fruta); print_r($fruta); echo "<hr>"; $carro["nuevo"] = "toyota"; $carro["usado"] = "honda civic"; $carro["chocado"]= "bmw"; $carro["alquilado"]= "murano"; print_r($carro); $c= array_rand($carro); echo "<br>"; echo $c; ?> JuanMartínez López 13 5
  • 136. ejercicio JuanMartínez López 13 6 Tener dos matriz una de estudiantes y la otra de premio. Se sacara u n estudantes de forma aleatoria y luego se sacara el premio de forma aleatoria. Recuerde que la cantidad de estudiantes son Y la cantidadad de premio sera. La salida por pantalla sera de la sgts. Forma el nombre del ganador KKKKK y el premio es ppppppp Luego imprimir todos los concursantes en orden alfabetico y luego
  • 137. Recorriendo una matriz JuanMartínez López 13 7  La funcion current. Se usa para obtener el elemento actual de una matriz. echo “Actual: “, current (variable);  Funcion next mueve el puntero al proximo elemento de la matriz next(variable);  La funcion prev desplaza el puntero al elemento anterior de la matriz prev(variable)
  • 138.  La funcion end lleva el puntero al final de la matriz end(variable) reset va al inicio de la matriz. reset(variable) JuanMartínez López 13 8
  • 139. RETROALIMENTACION JuanMartínez López 13 9  TIENE UNA VARIABLE QUE ALMACENA EL NOMBRE Y UNA CLAVE CON UN MINIMO DE 6 DIGITO. ADEMAS TIENE OTRA QUE ES CARGO. AQUÍ DEBEMOS UTILIZAR LAS OPCIONES CASE Y LA DE IF PARA EL CASO DE QUE EL CARGO ES IGUAL GERENTE IMPRIME UN LETRERO CALIFICA , SI EL SUELDO DE ESTE GERENTE ES MAYOR DE 30000 PESOS ENTONCE EL IMPUESTO SOBRE LA RENTA SERA IGUAL A SUELDO MENOS 30000 POR 4% DE LO CONTARARIO NO APLICA DESCUENTO SI EL CARGO ES MENSAJERO IMPRIME LETRERO EMPLEADO DE BAJO NIVEL ADEMAS SI EL SUELDO ES MENOR DE 10000 TENDRA UN AUMENTO DE 2000 PESOS DE LO CONTRARIO UN AUMENTO DE 500 PESOS. SI LA CLAVE ES MENOR DE 6 CARACTERES ENTONCE A LA CLAVE SE CAMBIARA POR ¨PHPBASICO¨ DE LO CONTRARIO IMPRIME EL LETRO QUE DIGA CLAVE ACEPTADA      LA IMPRESION DE ESTA PARTE SERA LA SIGUIENTE. NOMBRE DEL EMPLEADO, LA CLAVE DE ESTE Y EL SUELNO NETO .
  • 140. 2DA FASES JuanMartínez López 14 0  HACER UN BUCLE QUE LE IMPRIME EL LETRO SOY UN WEB MASTER. 5 VECES SI EL LETRERO TIENE UNA LONGITUD DE MAYOR O IGUAL 10, SI ES MENOR QUE SE IMPRIMA DOS VECES.
  • 141. FASE 3 JuanMartínez López 14 1  HACER UNA matriz QUE ALMACENES EL LA VARIABLE EMPLEADO CON EL NOMBRE CODIGOCOMO INDEX Y SERSA IGUAL AL SUELDO. LUEGO SELECCIONAR UN EMPLEADO DE FORMA ALEATORIO IMPRIMIR DE FORMA ORDENADA LA matriz Y LUEGO IMPRIMIR EL VALOR SELECCIONADO DE FORMA ALEATORIA.
  • 142. SINTAXIS JuanMartínez López 14 2 <?php function Hiperlink () { // Entre parentesis () podemos incluir valores que // deba usar nuestra función. El uso de () // es siempre necesario. // El código de la función entre llaves {} } Hiperlink(); ?> // esta linea llama la función
  • 143. LA FUNCION JuanMartínez López 14 3  Una función de usuario en PHP no es mas que una porción de código que podemos llamar en cualquier momento  Para definir una función debemos usar la palabra reservada function. Para llamar la función basta con invocar su nombre
  • 144. OBSERVACIONES DE LA FUNCION JuanMartínez López 14 4  PHP no distingue entre mayusculas y minusculas al nombrar las funciones, asi que HiperLink sería lo mismo que Hiperlink, aunque es buena práctica ser consistente en la forma de escribir los nombres. Como curiosidad, podrás observar que en los mensajes de error, PHP siempre designa tus funciones en minuscula. Los parentesis permiten pasar valores a las funciones (como veremos despues) y son siempre necesarios, aunque no vayas a pasar valor alguno
  • 145. EJEMPLO JuanMartínez López 14 5  <?php function TradicionalHolaMundo (){ echo "hola mundo"; } TradicionalHolaMundo(); // que sorpresa ! im prime "hola mundo" ?> El código que puedes incluir en una función es cualquier código php válido
  • 146. funciones y parámetros JuanMartínez López 14 6  Podemos pasar a nuestras funciones valores para que operen sobre ellos. PHP permite pasar a las funciones variables, cadenas de texto, números o arrays Los datos pasados a la función pueden ser por valor o por referencia. En el primer caso solo pasamos el valor del dato, no su contenedor, de forma que dicho dato (por ejemplo almacenado en una variable) conserva su valor original fuera de la función, sin verse afectado por los cambios que la función pueda ejecutar. En cambio si pasamos el valor por referencia, el dato original quedará afectado por el resultado de la función:
  • 147.  JuanMartínez López 14 7 <?php $msg = "Como estás ?"; function TradicionalHolaMundo ($msg) { $msg= "Hola Mundo !!".$msg; echo $msg; } TradicionalHolaMundo ($msg); // vuelca "Hola Mundo !! Como estas ? echo $msg; // vuelca "Como estás ?" $msg = "Como estás ?"; function TradicionalHolaMundo (&$msg) { $msg= "Hola Mundo !!".$msg; echo $msg; //advierte que usamos &$ } TradicionalHolaMundo ($msg); // $msg -> Hola Mundo !! Como estas ? echo $msg; ?> // vuelca "Hola Mundo !! Como estás ?"
  • 148. Puedes tambien prever un valor por defecto para la función, que se aplicará salvo que especifiques otro al llamarla: JuanMartínez López 14 8 <?php function TradicionalHolaMundo ($msg = "Hola como estás") { ...} TradicionalHolaMundo(); // Hola Mundo !! H ola como estás ? TradicionalHolaMundo("hasta luego");// Hola Mund o !! hasta luego TradicionalHolaMundo(""); // Hola Mundo !! ?>
  • 149.  <?php function TradicionalHolaMundo ($msg) { return "Hola Mundo !!".$msg; } $blah = TradicionalHolaMundo ($msg); ?> JuanMartínez López 14 9
  • 150. Return JuanMartínez López 15 0  Si la función debe retornar algun valor al script, debes indicarlo por medio de la expresión return. El código existente en la función despues de return no será ejecutado.  En los sencillos ejemplos que hemos usado no empleamos return ya que la unica instrucción de la función es precisamente una orden echo. Pero podría suceder que la función no tuviera por finalidad volcar nada a pantalla, sino manipular un valor para, por ejemplo, pasarselo a otrá función. En tal caso usamos return.
  • 151. ejemplo JuanMartínez López 15 1 <?php $blah = "http://www.ignside.net"; function hiperlink($CadenaTexto) { $CadenaTexto = preg_replace("/(http://[0-9a-zA-Z-._/]+)/", "<a href="1">1</a>", $CadenaTexto); print $CadenaTexto; } hiperlink($blah); // devuelve la url como un enlace clickable // <A href="http://www.ignside.net">http://www.ignsid e.net</A> ?> Como ya está bien de TradicionalHolaMundo() vamos a ver una función sencilla pero algo mas útil: la función hiperlink() que buscará urls dentro de una cadena de texto, convirtiendolas en enlaces
  • 152. opciones JuanMartínez López 15 2  La anterior función toma un parámetro y busca en él, con preg_replace, la existencia de una url correctamente escrita (http://....) y si la encuentra construye un link que apunta a esa direccion, usando la misma como texto visible del enlace.
  • 153. Manipulando con 2 parametros JuanMartínez López 15 3   Podemos perfeccionarla un poco con dos parámetros: <?php $blah = "http://www.ignside.net"; function hiperlink($CadenaTexto, $textovisible) { $CadenaTexto = preg_replace("/(http://[0-9a-zA-Z-._/] +)/", "<a href="1">$textovisible</a>", $CadenaTexto); print $CadenaTexto; } hiperlink($blah, "pulsa aqui"); // devuelve //<A href="http://www.ignside.net">pulsa aqu i</A> ?>
  • 154. ¿ Desventajas ? JuanMartínez López 15 4  PHP consume mas recursos (y por tanto es ligeramente mas lento) llamando y ejecutando una función que ejecutando código que encuentra en linea, embebido en el script. Por eso no tiene sentido usar funciones salvo que efectivamente vayas a utilizar esa porción de código varias veces.
  • 155. Los Formularios JuanMartínez López 15 5  Es el mecanismos por el cual podemos manipular datos de forma ordenada dentro de una aplicación web.  El lenguaje de PHP proporciona una manera muy sencillas para manejar los formularios.  Los Formularios no forman parte de PHP, sino del lenguaje estándar de Internet, HTML, pero como éstos van a aparecer muchas veces durante el curso, vamos a dedicar esta líneas . Lo que viene a continuación es HTML y no PHP.
  • 156.  Todo formulario comienza con la etiqueta < ACTION="lo_que_sea.php" METHOD="post/get"> .  Con ACTION indicamos el script que va procesar la información que recogemos en el formulario, mientras que METHOD nos indica si el usuario del formulario va ha enviar datos (post) o recogerlos (get). La etiqueta indica el final del formulario. FORM </FORM> JuanMartínez López 15 6
  • 157. Elementos de un formularios  Cuadro de texto: <input type="text" name="nombre" size="20" e">value="jos  Cuadro de texto con barras de desplazamiento: <textarea rows="5" name="descripcion" cols="20">Es de color rojo</textarea>  Casilla de verificación: <input type="checkbox" name="cambiar" value="ON">  Botón de opción: <input type="radio" value="azul" checked name="color">  Menú desplegable: <select size=“1” class="codigo"><select size="1" name="dia"> <option selected value="lunes">lunes</option> <option>martes</option> <option value="miercoles">miercoles</option> </select> JuanMartínez López 15 7
  • 158.  Boton de comando:  <input type="submit" value="enviar" name="enviar">  Campo oculto:  <input type="hidden" name="edad" value="55"> Este último tipo de campo resulta especialmente útil cuando que remos pasar datos ocultos en un formulario. JuanMartínez López 15 8 Elementos de un formularios
  • 159. El method GET y el POST JuanMartínez López 15 9  GET Muestra las informaciones que estan siendo enviada por un formulario en la barra de direccion.  Post. No muestra las informaciones que esta siendo enviada en la barra de direccion.
  • 160. Ejemplo de un formulario JuanMartínez López 16 0 <form action=“amigo.php” METHOD= “GET”> Su nombre:<input type=“text” name=“nombre”<br> Su apellido:<input type=“text” name=“apellidos”<br> <input type= submit value=“Enviar”> </form>
  • 161. JuanMartínez López 94 Ejemplo 2 <HTML> <BODY> <FORM METHOD="post" ACTION="lee.php"> <input type="hidden" name="edad" value="35"> <p>Tu nombre <input type="text" name="nombre" size="30"></p> <p>Tu sistema favorito <select size="1" name="sistema"> <option selected value="Linux">Linux</option> <option value="Unix">Unix</option> <option value="Macintosh">Macintosh</option> <option value=&qmargin-left: 75"><option value="Windows">Windows</option> </select></p> <p>¿Te gusta PHP ? <input type="checkbox" name=“programa" value="ON"></p> <p>¿Cual es tu sexo?</p> <blockquote> <p>Hombre<input type="radio" value="hombre" checked name="sexo"></p> <p>Mujer <input type="radio" name="sexo" value="mujer"></p>
  • 162. Recibir datos de matrices personalizadas JuanMartínez López 16 2  PHP permite organizar los datos que obtenemos de un formulario ens propias matrices personalizada
  • 163. EJEMPLO JuanMartínez López 16 3 <html> <body> <FORM METHOD="POST" ACTION="phpprueba.php"> Cual es tu nombre? <INPUT NAME="texto[nombre]" Type="Text"> <br> <br> CUAL ES TU COLOR FAVORITO? <INPUT NAME="texto[color]" Type="text"> <br> <br> <input type=submit Value=Enviar> </form> </body> </html>
  • 164. EJEMPLO 2 JuanMartínez López 16 4 <?php echo "su nombre es..."; $text = $_POST['texto']; echo $text['nombre'], "<br>"; ?> Su color Favorito es <?php $text = $_POST['texto']; echo $text['color']. "<br>"; ?>
  • 165. Aplicaciones Web en una sola Pagina JuanMartínez López 16 5  La mayoria de las aplicaciones de formularios cuenta con dos pagina una que recibe y la otra que envia. Es decir las paginas de html que recopilaban los datos y las de php que los recibian  Pero si usamos los mismo script en la misma pagina podemos ejecutar ambas opciones en la misma pagina. Veamos
  • 166. JuanMartínez López 99 ejemplo <?PHP if(isset($_POST["nombre"])){ ?> <h1>Uso de Cuadro de texto</h1> <?php echo $_POST["nombre"]; $clave = $_REQUEST[‘clave’]; print ($clave); } else { ?> <FORM METHOD="POST"> Cual es tu Nombre? <INPUT NAME="nombre" TYPE="TEXT"> Contraseña: <INPUT TYPE="password" NAME="clave"> <BR><BR> <INPUT TYPE=SUBMIT VALUE=Enviar> </form> <?php } ?>
  • 167. Funciones JuanMartínez López 167 Empecemos con el ejemplo más difícil y el causante de que tuviera que programar estas funciones. <SELECT> Crear elementos de selección <select></select> Con php es muy habitual trabajar con arrays, ya sea con datos que nos proporcione una consulta SQL o simples valores. Veamos un ejemplo en el que queremos mostrar un <select> para que el usuario seleccione su rango de edad: <select name=’edad’> <option value=0>Seleccione</option> <option value=1>Entre 0-18</option> <option value=2>Entre 19-30</option> <option value=3>Entre 31-50</option> <option value=4>Más de 50</option> <select/>
  • 168. La función que nos salvará la vida es: JuanMartínez López 168 frm_select($name, $arr_txt, $arr_vals, $default='', $extra_tag='') $name = Nombre del elemento del formulario $arr_txt = Array con los textos a mostrar http://www.distintiva.com/jose/_perf_form jose [arroba] distintiva [dot] com $arr_vals = Array con los valores asociados a cada texto $default= [opcional] si se indica el valor aparecerá preseleccionado dicha opción $extra_tag= [opcional] por si necesitamos incluir información adicional al select, como por ejemplo $extra_tag=” class=cssazul ” o $extra_tag=” onChange=alert()”
  • 169. Ejemplo: JuanMartínez López 169 $arr_txt=array(‘españa’, ‘portugal’, ‘francia’); $arr_vals=array(‘ES’, ‘PT’, FR’); <?=frm_select (‘paises’, $arr_txt, $arr_vals) ?> De esta forma cualquier modificación sólo hay que hacerla en los arrays sin alterar la parte visual. A veces es conveniente conservar el valor de un campo del formulario entre llamadas o posts del mismo por ejemplo cuando estamos validando entradas y hay que volver al formulario para que rellene algún campo requerido
  • 170. Para hacer esto de forma sencilla tan solo tenemos que usar el parámetro $default de la siguiente forma.: <?=frm_select (‘paises’, $arr_txt, $arr_vals, $_POST[‘paises’]) ? > (o $_GET dependiendo el método que usemos en nuestro formulario) <SELECT> (tipo lista con varios elementos visibles) Funciona exactamente igual que el anterior pero en este caso tenemos la típica lista de selección con scroll mostrando X elementos. La función es: frm_list($name,$size, $arr_txt, $arr_vals, $default='', $extra_tag='') En este caso el nuevo parámetro es $size que indica cuántos elementos serán mostrados visiblemente en la lista. 829 317-0468 97-7559 JuanMartínez López 170
  • 171. Otras funciones JuanMartínez López 171 <SELECT> (tipo lista con varios elementos visibles y con multiselección) Igual que el ejemplo anterior pero permitimos que el usuario seleccione uno o varios elementos de la lista con el CTRL+Click o SHIFT+Click La función es: frm_list_multi($name, $size, $arr_txt, $arr_vals, $default='', $extra_tag='') ... Y también tenemos funciones correspondientes para los demás elementos de formulario aprovechando la capacidad de mantener el valor entre posts.
  • 172. <Checkboxes> JuanMartínez López 172 La función es: frm_check($name, $ck_val, $var_in='', $extra_tag='') $name= Nombre del campo $ck_val= Valor que se enviará cuando esté seleccionado $var_in=[opcional] Funciona como el $default y permitirá que se muestre checkeado Ejemplo: Se muestra un checkbox que se mantiene seleccionado entre posts del formulario <?= frm_check(‘fumador’, ‘SI’, $_POST[‘fumador’])?>
  • 173. <Radio> JuanMartínez López 173  En este caso para mostrar radiobuttons se hace exactamente como el caso anterior  pero con la siguiente función:  frm_radio($name, $val, $var_in='', $extra_tag=''
  • 174. <INPUT> JuanMartínez López 174 Permite mostrar cuadros de texto con las ventajas que voy ofreciendo en todas las funciones y para ello hay que usar: frm_text($name, $val, $size, $max_length, $extra_tag='') $name = Nombre del campo $val = Valor o texto que se mostrará (funciona como el $default de las otras funciones) $size = Tamaño del campo de texto $max_length = Longitud máxima permitida
  • 175.  PASSWORD Contraseña: <INPUT TYPE="password" JuanMartínez López 175 NAME="clave"> <?PHP $clave = $_REQUEST[‘clave’]; print ($clave); ?>
  • 176. <PASSWORD> JuanMartínez López 176  El caso es exactamente como el anterior pero esta vez oculta el texto con asteriscos  frm_password($name, $val, $size, $max_length, $extra_tag='')
  • 177. Ejercicios1 de formularios  Hacer un formulario que contenga todos los controles y incluyendo un control oculto que sea igual al nombre de programador. JuanMartínez López 177
  • 178. Enviar un Archivo a través de un formularios. JuanMartínez López 178  HTML NOS PERMITEN CARGAR archivoS EN EL SERVIDOR, Y PHP NOS AYUDARA EN ESTA TAREA.  PARA ENVIAR UN ARCHIVO AL SERVIDOR, TENDREMOS QUE UTILIZAR UN FORMULARIOS MULTIPLE
  • 179. PASO PARA CREAR UN FORMULARIO MULTIPLE JuanMartínez López 179  EL ATRIBUTO ENCTYPE DEL ELEMENTO HTML <form>: Sintaxis <form ENCTYPE=“multipart/form-data” ACTION=“nombre.php” method=“POST”> Enviar este archivo: <INPUT NAME=“archivo” TYPE=“file”> </form> Note que estamos llamando al control “archivo” Sera el nombre por el cual accederemos al aechivos que se envie.
  • 180. La matriz $_FILES JuanMartínez López 180  Esta es una matriz super global, eso quierre decir que puede ser usada en cualquier parte del codigo..  Cuando usamos controles de archivos nos necesitamos las matrizes $_POST, $_GET Y $_REQUEST
  • 181. EJEMPLO JuanMartínez López 181 <FORM ENCTYPE="multipart/form-data" ACTION=“archivo2.php" METHOD="post"> <INPUT type="hidden" name="MAX_FILE_SIZE" value="100000"> <p><b>Archivo a descargar<b><br> <INPUT type="file" name="archivo" size="35"></p> <p><INPUT type="submit" name="enviar" value="Aceptar"></p> </FORM>
  • 182. Subida de archivos al servidor php.ini ;;;;;;;;;;;;;;;; ; File Uploads ; ;;;;;;;;;;;;;;;; ; Whether to allow HTTP file uploads. file_uploads = On ; Temporary directory for HTTP uploaded files ; system default if not specified). ;upload_tmp_dir = (will use ; Maximum allowed size for uploaded files. upload_max_filesize = 2M formulario <INPUT TYPE=”HIDDEN” NAME=”MAX_FILE_SIZE” <INPUT TYPE=”FILE” NAME="archivo"> JuanMartínez López 182 VALUE='102400'>
  • 183. Código de error asocJuiaanMdaortíneazlLóaperzchivo subido 116 Subida de archivos al servidor <INPUT TYPE="HIDDEN" NAME="MAX_FILE_SIZE" VALUE="102400"> <INPUT TYPE="FILE" SIZE="44" NAME="imagen">  La variable $_FILES contiene toda la información del archivo subido: $_FILES['imagen']['name'] Nombre original del archivo en la máquina cliente $_FILES['imagen']['type'] Tipo mime del archivo. Por ejemplo, "image/gif" $_FILES['imagen']['size'] Tamaño en bytes del archivo subido $_FILES['imagen']['tmp_name'] Nombre del archivo temporal en el que se almacena el archivo subido en el servidor $_FILES['imagen’]['error']
  • 184. Funciones de acceso a archivos JuanMartínez López 184  En esta lección sólo vamos a las funciones básicas, abrir (fopen), cerrar (fclose), leer (fgets) y escribir (fputs). Estas cuatro nos solventaran la mayoria de problemas (fputs). Estas cuatro nos solventaran la mayoria de problemas que nos surgan con respecto al acceso a archivos.
  • 185. fopen (archivo, modo) JuanMartínez López 185  Con esta función abrimos un archivo, bien sea local o una dirección de internet (http:// o ftp://).  La función fopen nos devuelve un valor numérico (indicador de archivo) de tipo integer que nos ser virará para hacer referencia al archivo abierto.
  • 186. Con fopen podemos abrir un archivo de los siguientes modos JuanMartínez López 186  r solo lectura  r+ lectura y escritura  w solo escritura. Sino existe el archivo lo crea, si ya existe lo re-escribe  w+ lectura y escritura. Sino existe el archivo lo crea, si ya existe le re-escribe  a solo lectura. Sino existe el archivo lo crea, si ya existe empieza a escribir al final del archivo.  a+ lectura y escritura. Sino existe el archivo lo crea, si ya existe empieza a escribir al final del archivo.
  • 187. Ejemplo de fopen() JuanMartínez López 187 <?PHP if ( ! fopen("http://www.ciberaula.com/", "r")) { echo "El archivo no se puede abrirn"; exit; } ?> Abriendo un archivo con el protocolo hhtp. Los modos r, r+ , w , w+ colocan el puntero de lectura/escritura a principio del archivo, los modos a , a+ lo colocan al final.
  • 188. fgets (indicador_archivo, longitud) JuanMartínez López 188  La función fgets nos devuelve una cadena con la longitud especifica del archivo al que apunta el indicador de archivo. <?PHP $archivo = fopen("dlass="codigo">$archivo = fopen("data.txt" , "r"); if ($archivo) { while (!feof($archivo)) { $linea = fgets($archivo, 255); echo $linea; } } fclose ($archivo) ?> La función feof devuelve TRUE si puntero de lectura/escritura se encuetra al final del archivo, y FALSE en caso contrario.
  • 189. fputs (indicador_archivo, cadena) JuanMartínez López 189  La función fputs escribe una cadena en el archivo indicado. Para escribir en una archivo este debe haber sido previamente abierto. La función fputs devuelve TRUE si se ha escrito con éxito, en caso contrario devuelve FALSE. <?PHP $archivo = fopen("data.txt" , "w"); if ($archivo) { fputs ($archivo, "Hola Mundo"); } fclose ($archivo); ?>
  • 190. file_exists (archivo)  Esta función devuelve TRUE si el archivo especificado existe, y FALSE en caso contrario. <?PHP if (file_exists("data.txt")) { echo "El archivo existe"; } else { echo "El archivo NO existe"; } ?> JuanMartínez López 190
  • 191. copy (origen, destino) JuanMartínez López 191  La función copy : copia un archivo de un lugar (origen) a otro (destino), devuelve TRUE si la copia a tenido éxito y FALSE en caso contrario. <?PHP if (copy("data.txt", "/tmp/data.txt")) { echo "El archivo ha sido copiado con éxito"; } else { echo "El archivo NO se copio" style="margin-left: 50">echo "El archivo NO se ha podido copiar"; } ?>
  • 192. Validación de datos que se envían en los formularios. JuanMartínez López 192  Programa ejemplo
  • 193. TRABAJANDO CON CLASE Y OBJETOS JuanMartínez López 193  LA POO se diseño para proyectos de programacion grandes. Sin embargo si va a seguir usando aplicaciones grandes en php es aconsejable que domine la tecnica de OOP.
  • 194. Que son los objetos JuanMartínez López 194  Es donde se agrupa un conjunto de funciones también los datos que estas funciones necesitaría  Aglutinar las funciones y los datos nos permitirá seccionar mucho mas los scripts. Por ejemplo, un objeto podría controlar lo que se muestra por pantalla, otra validar los datos, otro se encargaría de la gestión de la base de datos.
  • 195. Creando una clase JuanMartínez López 195  Es un conjunto de variables y funciones en termino de la POO, tambien propiedades y metodos.  Una clase es un tipo y generamos objetos de ese tipo y lo almacenamos en variables de PHP  Sintaxis class estudiante{.......}
  • 196. ejemplo class carro { var $name; Function set_name($text) { $this->name = $text; } Function get_name() { return $this->name; } } $honda = new carro; $honda->set_name(“accord”); Echo “el modelo de su nuevo carro es”,$honda->get_name(), “.”; ?> Creamos la clases llamada carro Funciones dentro de una clase son los métodos Name es la variable interna llamada en POO propiedad New crea objeto de esta clase JuanMartínez López 196 Ejemplo
  • 197. La sentencia var JuanMartínez López 197  Esta sentencia se usa para de clarar las variables interna de una clase. Sintaxis Class socio { var $nombre; } Nota para acceder a esta propieda simplemente como nombre: Esto ayudara a su proceso interno.
  • 198. Ejemplo JuanMartínez López 198 <?php class my_class { var $value; } $a = new my_class; $a->my_value = 5; $b = $a; $b->my_value = 10; echo $a->my_value; ?>
  • 199. Ejemplo de clase class conectar{ var $cn; var $res; var $status; function conectar(){ mysql_connect ("localhost","root",""); mysql_select_db ("carrito"); $this->status=true; } function Ejecutar_sql($sql){ if($this->status){ $this->res = mysql_query ($sql) or die ("SQL incorrecto : $sql"); return true; }else{ return false; } } } ?> Aquí vemos como podemos utilizar una clases para conectarnos a ua base de datos y realizar una consulta JuanMartínez López 199
  • 200. Los metodos set_name y get_name JuanMartínez López 200  El metodo set_name: se usa para especificar el nombre del objeto. Tomando en cuenta el ejemplo de la diapositiva 127. . Function set_name($text) para acceder al nombre paso a set_name en la propiedad name, usaremos una variable especial $this que apunta a la clase actual, para eso usaremos operador flecha para`que haga referencia a los datos de la propiedad. $this->name =$text; .
  • 201. Como se crean los objetos dentro de una clase. JuanMartínez López 201  La sentencia new se usa cuando se quiere crear un objeto de una clase.  Sintaxis $civic= new carro; $civic->set_name(“sedan”); Con el operador -> podremos acceder tanto a los metodos de un objetos como a su propiedad.
  • 202. Los metodos de acceso JuanMartínez López 202  Se usa para especificar especificar los valores de la propiedad , ya que podremos restringir el tipo de datos almacenaremos en la propiedad.  Ejemplo Function set_name($text) { If (strlen($text) <= 50){ $this->name =$text; } }
  • 203. Ejercicios JuanMartínez López 203  Haga una clase llamada celular donde se creara un nuevo objeto de esta clase llamdo motorola y su modelo sera V3. La salida de este escript sera la siguiente. su celular es motorola y es el modelo V3
  • 204. Restringir acceso a la propiedades y metodos JuanMartínez López 204  PHP posee una serie de modificadores de acceso. -public accesible para todos -private accesible de la misma clase - Public accesible de la misma clase y de la clase derivadas de esas clase. Nota. Por defecto todos los metodos y propiedades se declaran como publicas lo que implica que no tendremos restrinciones a la hora de acceder a ellos.
  • 205. Ejemplo <?php class computadora { private $name; fuction set_name($text) ($this->name = $text;} fuction get_name() { return $this->name;} } $dell = new computadora; $dell ->set name(“Inspiron”); Echo “ el nombre de su nueva computadora del es”, $dell->name” ?> Cuando quiera acceder a esta propiedad como $dell->name recibira un mensaje de error JuanMartínez López 205
  • 206. Inicializa los objetos constructores JuanMartínez López 206  En php un objeto constructor es un metodo especial declarado con la sintanxis  nombre construct (son dos guiones bajo seguido por la palabra reservada construct  cuando creamos este objeto especial debemos de crear una sintaxis especial para pasarle informacion al constructor.
  • 207. ejemplo JuanMartínez López 207 <?php Class animal { var $name; function construct($text){ $this ->name =$text; } Function set_name($text) } Function get_name() { return $this->name; } } $lion = new animal(“leo”); Echo “El nuevo nombre de su leon es “, $lion->get_name(); ?>
  • 208. ejemplo2 JuanMartínez López 208 <?php class base_class { var $var1; function base_class ($value) { $this->var1 = $value; } function calc_pow ($exp) { return pow ($this->var1, $exp); } } class new_class extends base_class { var $var2; function new_class ($value) { $this->var2 = $value; $this->var1 = $value * 10; } } $obj = new new_class (10); echo $obj->calc_pow (4); ?>
  • 209. 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 Tabla : usuario Tabla : accesos 20 9 id user pass 1 mikel 12321 2 ainhoa 32343 id user acceso 1 1 10/01/09 2 1 05/03/09
  • 210. Accediendo a DB : MySQL ● MySQL : Gestionando mysql con phpmyadmin – Crear/eliminar/editar ... BD, tablas, registros, usuarios ... 21 0
  • 211. Accediendo a DB : MySQL 21 1 ● MySQL : SLQ (Structured Query Language) Consultas : Obteniendo datos de tablas● – Obtener todos los datos de una tabla (tabla usuario) SELECT * FROM usuario – Obtener una columna de una tabla SELECT nombre FROM usuario – Obtener mas de un campo de una tabla SELECT nombre,apellido,dni FROM usuario
  • 212. 134 Accediendo a DB : MySQL ● MySQL : SLQ (Structured Query Language) Consultas : Obteniendo datos de tablas (II)● – Condiciones SELECT * FROM usuario WHERE edad>18 – SELECT * FROM usuario WHERE nombre = “ane” – SELECT * FROM usuario WHERE nombre LIKE “%ana%”
  • 213. 135 Accediendo a DB : MySQL ● MySQL : SLQ (Structured Query Language) Consultas : Insertando datos en tablas● – INSERT INTO usuario(nombre,pass) VALUES (“mikel”,”123”) – INSERT INTO usuario (nombre) VALUES (“mikel”) – INSERT INTO usuario(id,pass) VALUES (“1”,”123”)
  • 214. 136 Accediendo a DB : MySQL ● MySQL : SLQ (Structured Query Language) Consultas : Actualizando datos de tablas● – UPDATE usuario SET pass=”1010” WHERE nombre =”ane” – UPDATE usuario SET pass=”0000” WHERE nombre LIKE “a%” – UPDATE usuario SET pass=”0000” AND nombre=”jon” WHERE id=”1”
  • 215. Accediendo a DB : MySQL 21 5 ● MySQL : SLQ (Structured Query Language) Consultas : Eliminando datos de tablas● – DELETE FROM usuario WHERE id=”2” – DELETE FROM usuario WHERE nombre LIKE “%a” – DELETE FROM usuario WHERE pass =”” OR pass=”0000”
  • 216. Accediendo a DB : MySQL 21 6 ● Acceder al servidor de BD MySQL Funciones mysql:● – http://es.php.net/manual/es/ref.mysql.php Crear , eliminar, modificar, obtener ... BD, tablas, usuarios, privilegios ... – – ● Tipo recurso ( referencia a recurso externo ) mysql_connect($hostname,$usuario,$password)● – devuelve un identificador de enlace o false $hostname ~ host[:puerto]–
  • 217. Accediendo a DB : MySQL ● Crear / Abrir la conexión – mysql_connect ($hostname,$usuario,$password) – Si no hay problemas devuelve el enlace – El enlace se cerrara automáticamente al finalizar el script o mediante la función mysql_close($link) <?php $con = mysql_connect(“localhost”,”user”,”pass”) or die(“No se pudo abrir la conexión:” . mysql_error()); if($con){ echo “Conexión exitosa”; } ?> 21 7
  • 218. Accediendo a DB : MySQL ● Cerrar la conexión – mysql_close ($link) <?php 140 $con = mysql_connect(“localhost”,”user”,”pass”) or die(“No se pudo abrir la conexión:” . mysql_error()); ... mysql_close($con); ?>
  • 219. 141 Accediendo a DB : MySQL ● Seleccionar BD – mysql_select_db($dbname,[$link]); – Devuelve true o false <?php $con = mysql_connect(“localhost”,”user”,”pass”) or die(“No se pudo abrir la conexión:” . mysql_error()); if (mysql_select_db(“usuarios”,$con)){ ... } else{ echo “no se pudo seleccionar la base de datos”); } mysql_close($con); ?>
  • 220. Accediendo a DB : MySQL 22 0 ● 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●
  • 221. Accediendo a DB : MySQL ● Consultas sin retorno de valor <?php $con = mysql_connect(“localhost”,”user”,”pass”); $SQL = “CREATE DATABASE prueba”; if( mysql_query($SQL)){ echo “BD creada con exito”;} $SQL = “CREATE TABLE prueba (user VARCHAR(10),pass VARCHAR(10))”; if(mysql_query($SQL)){ echo “Tabla creada con exito”;} $SQL= "INSERT INTO prueba(user,pass) VALUES('usuario1','pass1')"; if(mysql_query($SQL)){ echo “Se insertaron los datos con exito”;} $SQL =”DELETE FROM prueba WHERE user='usuario1'”; if(mysql_query($SQL)){ echo “Registro eliminado con exito”;} mysql_close($con); ?> 22 1
  • 222. Accediendo a DB : MySQL 22 2 ● 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 ● ●
  • 223. 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 * FROM prueba"; $RS=mysql_query($SQL); while($fila=mysql_fetch_assoc($RS)){ echo “Usuario : ”.$fila['user']; echo “Pass : ”.$fila['pass']; } ?> 22 3
  • 224. Accediendo a DB : MySQL 22 4 ● Consultas con retorno de valor – mysql_fetch_row($RS) ● $RS : El valor retornado por mysql_query Devuelve una matriz numérica Claves = enteros empezando por 0 ● ●
  • 225. Accediendo a DB : MySQL ● Consultas con retorno de valor – mysql_fetch_row <?php $con = mysql_connect(“localhost”,”user”,”pass”); mysql_select_db("prueba",$con); ... $SQL = "SELECT * FROM prueba"; $RS=mysql_query($SQL); while($fila=mysql_fetch_row($RS)){ foreach($fila as $clave=>$valor){ echo “$clave = $valor”; } } ?> 22 5 0 = usuario1 1 = pass1 0 = usuario2 1 = pass2
  • 226. Accediendo a DB : MySQL 22 6 ● Consultas con retorno de valor – mysql_fetch_array ($RS,[$tipo]) ● $RS : El valor retornado por mysql_query Devuelve una matriz asociativa, numérica o ambas Por defecto : ambas $tipo : constante que puede tener los siguientes valores ● ● ● – – – MYSQL_ASSOC MYSQL_NUM MYSQL_BOTH
  • 227. Accediendo a DB : MySQL ● Consultas con retorno de valor – mysql_fetch_array <?php $con = mysql_connect(“localhost”,”user”,”pass”); mysql_select_db("prueba",$con); $SQL = "SELECT * FROM prueba"; $RS=mysql_query($SQL); while($fila=mysql_fetch_array($RS)){ foreach($fila as $clave=>$valor){ echo “$clave = $valor”; } } ?> 0 = usuario1 name = usuario1 1 = pass1 pass = pass1 0 = usuario2 name = usuario2 1 = pass2 ... 22 7
  • 228. Accediendo a DB : MySQL ● Errores – mysql_error ($link) ● Devuelve el texto del mensaje de error de la última operación MySQL Si no ocurrió error : “” (cadena vacía)● <?php $con = mysql_connect(“localhost”,”user”,”pass”); if(!mysql_select_db("pruebaaaa",$con)){ echo mysql_error(); } ?> Unknown database 'pruebaaaa' 22 8
  • 229. Basar una clase en otra (Herencia) JuanMartínez López 229  La Herencia es el metodo que nos permite escribir todos metodos de una clase existente a una clase nueva.  Al usar usar la herencias,propiedades de la clase base tambien perteneceran al conjunto de metodos y clases derivadas de ella  Luego podremos personalizar las clases derivadas agregando los metodos y propiedades especifico para esa clase
  • 230. Planteamiento JuanMartínez López 230  Tenemos una clase llamada Vehiculo que tiene implementado todo tipo de metodo para cualquier tipo de tarea relacionada como: color, arrancar, acelerar, girar y parar. Ahora queremos crear otras class que sean tipos de vehiculos: jeepeta, guagua, motores y otros.mas
  • 231. ejemplo JuanMartínez López 231 <?php class $vehiculo { var $carro; Function set_name($text){ $this->carro=$text; } Function get_name(){ Return $this->carro; } } class honda extends vehiculo { var $carro; Fuction alquilado() { echo “! “, $this->carro, “ esta alquilado <br>”; } } Echo “Su nuevo carro honda...<br>”; $civic = new honda; $civic->set_name(“Civic 2003”); $civic->alquilado (); ?> Esta cláusula se utiliza para derivar una clase desde otra. Indicamos la clase va heredar, indicando de que clase va heredaremos
  • 232. Sobrecargar metodos JuanMartínez López 232  Esto ocurre si queremos derivar una clase nueva desde una clase base y necesitamos usar un metodo en la nueva clase con el mismo nombre que uno de los metodos de la clase base.  Porque el metodo de la clase base, y los objeto de la nueva clase utilizaran el nuevo metodo en lugar del precedente de la clase base.
  • 233. Ejemplo JuanMartínez López 233 <?php class animal { var $nombre; function set_name($text) { $this->nombre =$text; } function get_name() { return $this->nombre; } } class Leon extends animal { var $name; function rugir() { echo "! ",$this->name, "esta rugiendo <br>"; } function set_name($text) { $this->name = strtoupper($text); } } echo " Creando su nuevo felino...<br>"; $leon = new leon; $leon->set_name ("kiko "); $leon->rugir(); ?>
  • 234. Ejercicio Que imprime este script <?php class a { var $c=5; function a ($pass) { $this->c = $pass; } function print_data() { echo $this->$c; } } $a = new a(10); $a->print_data(); ?> JuanMartínez López 234
  • 235. Que imprime este programa JuanMartínez López 235 <?php error_reporting(E_ALL); class a { var $c; function a() { $this->c = 10; } } class b extends a { function print_a() { echo $this->c; } } $b = new b; $b->print_a(); ?>
  • 236. Ejercicio JuanMartínez López 236  Cree una clase llamada computadora esta tendra una variable llamada labtop  A la clase computadora le sacara una clases llamada estatu  En la clase statu tendra una variable llamda labtop y una funcion llamada estatu donde tu imprime que la labtop esta reparada.  Imprime el letrero “su computadora labtop dell inspiron esta reparada.
  • 237. Las Cookies JuanMartínez López 237  Las Cookies son un mecanismo que sirve para almacenar datos en el navegador del usuario remoto, para así poder identificar al usuario cuando vuelva  Se pueden poner cookies usando la función setcookies().  Las Cookies son parte de la cabecera HTTP, por tanto la función setcookie() debe ser llamada antes de que se produzca cualquier salida al navegador
  • 238. sintaxis JuanMartínez López 238  setcookie(nombre,valor,expiracion,ruta,dominio,segura) Ejemplo <setcookie(“message”, “sin problema.”); ?> <html> <head><title> genera una cookie</title> <body> <h1>generar una cookie </h1> se ha generado una cooke! Mire en <A HREF=“cook.php”>cook.php</a> ahora </center> </body> </html>
  • 239. Parametro de una cookie JuanMartínez López 239  Nombre el nombre de una cookie  Valor – valor de la cookie. Este valor se almacenara en el ordenador de cliente. (no es prudente almacenar informacion importante.  Expiracion- el tiempo en que expirara una cookie.(el tiempo se expresa en segundo)  Ruta – la ruta en el servidor donde estara disponible la cookie
  • 240.  Dominio- el dominio para el que la cookie es valida.  Segura – indica que la cookie se trasmitira a traves de una conexion segura HTTPS. Cuando tiene el valor 1, la cookie solo se enviara en que caso de que exista una conexion de esa caracteristicas. El valor por defecto es cero.(0). JuanMartínez López 240
  • 241. Leer una Cookies JuanMartínez López 241  Despue de general una cookies podemos acceder a ella en un momento posterior acudiendo a la matriz $_COOKIES  SINTAXIS $_COOKIE [“message”].
  • 242. ejemplo JuanMartínez López 242 La cookie dice: <?php if (isset($_COOKIE[“message”])){ echo $_COOKIE[“message”]; } ?>
  • 243. Los nombres de las cookie JuanMartínez López 243  Tambien se pueden declarar como nombre de matrices y estaran disponible como matrices en nuestro scripts de php. Por ejemplo. setcookie(“cookie[uno]”, “Sin”); setcookie(“cookie[dos]”, “Problemas”); setcookie(“cookie[tres]”, “hoy.”);
  • 244. Continuacion JuanMartínez López 244  Ahora que se genero esta cookies, las leeremos la proximas vez que el navegador nos envien los datos de esta forma: If (isset($_COOKIE[“cookie”])) { Foreach($_COOKIE[“cookie”] as value) { echo “$value <br>”; } }
  • 245. Periodo de expiracion de las cookie JuanMartínez López 245  Este parametro es usado para determinar que tiempo existira una cookie en el ordenador de un usuario.  La hora almacenada en este parametro esta en formato de UNIX en segundo. Ejemplo <?php setcookie(“micookie”, $value, time()+3600); ?>
  • 246. Ejemplo JuanMartínez López 246  <?php setcookie(“message”, “no tendra problema en 10 dias.”, time() +60*60*24*10); ?> <html> <head><title>configura una cookie</title></head> <body> <h1>una cookie</h1> ! La cookie expirara en 10 dias, miren <A HREF=“cook.php”>cook.php</a> Ahora </body> </html>
  • 247. Eliminar una cookie  Para eliminar una cookie solo basta con establecer su valor a “ ” y llamar a setcookie con los mismos parametros que genero dicha cookies.  Sintaxis <?php setcookie (“message”, “ “); ?> Es recomendado asegurarnos de que la fecha de expiracion se ha cumplido JuanMartínez López 247
  • 248. Ejemplo  <?php setcookie(“message”,” “,time() – 3600); ?> <html> <head><title>eliminar cookie</title></head> <body> <center> <h1>eliminar una cookie</h1> la cookie se ha eliminado. Mire en <a href=“cook.php”>cook.php</a> </center> </body> </html> Cuando Carguemos la pagina de nuevo, el script cook.php ya no sera capaz de encontrar la cookie JuanMartínez López 248
  • 249. Tabla completa JuanMartínez López 249 Nombre SMTP Default "localhos t" Descripción Windows only: The DNS name or IP address of the SMTP server Windows only: The SMTP port number. Available since PHP 4.3 Windows only: Specifies the "from" address to be used in email sent from PHP Unix systems only: Specifies where the sendmail program can be found (usually /usr/sbin/sendmail or /usr/lib/sendmail) editable PHP_INI_ALL smtp_port "25" PHP_INI_ALL sendmail_fro m NULL PHP_INI_ALL sendmail_pat h NULL PHP_INI_SYST EM
  • 250. Sesiones 25 0 ● Mecanismo para preservar datos a lo largo de accesos posteriores Almacena información en el servidor accesible a través de diferentes scripts La información se guarda en variables de sesión ● ●
  • 251. Sesiones 25 1 ● Iniciar sesión – session_start() : antes de cualquier etiqueta html ● Crear variable de sesión – $_SESSION ['nombre'] = $valor; ● Recuperar variable de sesión – $variable = $_SESSION ['nombre'];
  • 253. Sesiones 25 3 ● Funciones – session_start : inicia la sesión – session_destroy : destruye los datos de sesión – 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]
  • 254. Formularios HTML 25 4 Proceso: •El cliente pide una página HTML que contiene un formulario • Lo rellena y envía los datos. •La petición se hace a un script PHP que los recibe, los procesa y genera una página HTML que se envía al cliente.
  • 255. Formularios HTML El formulario puede ser como el siguiente <html><body> <form action="procesar.php" method="post"> Nombre: <input type="text" name="nombre" /> Edad: <input type="text" name="edad" /> <input type="submit" /> </form> </body></html> formulario.html 50
  • 256. Formularios HTML El script que recibe y procesa los datos: <html><body> Hola <?php echo $_POST["nombre"]; ?> Tienes <?php echo $_POST["edad"]; ?> años. </body></html> procesar.php 51
  • 257. Ejercicio: formularios 25 7 + Crea un formulario en un archivo HTML que envíe los datos introducidos a un script PHP que reciba los datos y los muestre. + Escribir los datos de cada envío en un archivo de texto (cada envío en una línea nueva). + Probar el funcionamiento: http://127.0.0.1/formulario.html
  • 258. La función $_GET 25 8 Se usa para recoger valore enviados usando method=“get” Al enviar los datos, se ven en la URL: http://www.servidor.com/procesar.php?nombre=Pepe Hay un límite máximo de 100 caracteres
  • 259. La función $_POST 25 9 Se usa para recoger valore enviados usando method=“post” El envío de los datos es invisible: http://www.servidor.com/procesar.php No hay límite en la cantidad de datos
  • 260. Cookies 26 0 Resolver el problema de la falta de estado en la navegación a través de las páginas web. Almacenar información que queda registrada en el navegador, permitiendo identificarlo después. El manejo de cookies en PHP se realiza mediante el uso de la función setcookie()
  • 261. Cookies 26 1 La función define una cookie que es enviada junto con el resto de la información de la cabecera. Deben ser enviadas antes de cualquier etiqueta de HTML, por lo tanto deberemos realizar la llamada a estas funciones antes de cualquier etiqueta <HTML> o <HEAD> Esta es una restricción de las cookies, no de PHP.
  • 262. Cookies. Ejemplo (I) Primer paso: desde un formulario enviamos información a un script que la recibirá y establecerá la cookie <html><body> Introduzca su nombre: <FORM ACTION="paso2.php" METHOD="GET"> <INPUT TYPE="text" NAME="nombre"><BR> <INPUT TYPE="submit" VALUE="Enviar"> </FORM> </body></html> paso1.html 57