Especialista en desarrollo de aplicaciones web JORNADA 9 ramos valcárcel, david [email_address]
PHP
PHP Hipertext Preprocessor
Inicialmente en 1994: Personal Home Page
Lenguaje Open Source
Basado en C y C++
Multiplataforma (GNU/Linux, Windows, Mac) Independiente del Sistema Operativo Portable
Muy bien documentado http://www.php.net/
PHP
Usado en mas de 20 millones de dominios
PHP
Es un lenguaje de scripts que se ejecuta del lado del servidor
Los scripts PHP están incrustados en los documentos html
El servidor los interpreta (procesa) y ejecuta antes de enviar las páginas al cliente
El cliente no ve el código PHP, sólo el código que produce
Estructura similar a ASP, JSP, CGI…
Muy estandarizado en el uso con Apache y MySQL
PHP
PHP
Primer ejemplo con php
<html>
<head>
<title>PHP – Hello World</title>
</head>
<body>
<?php
echo "Hello World!";
?>
</body>
</html>
PHP
Los script php se colocan entre
<?php //apertura
?> //cierre
La mayoría de las instrucciones finalizan con “;”
Sentencia básica
echo “texto a mostrar”;
Comentarios con
// Una sola línea
/* Varias líneas */
PHP
Las variables se identifican con “$”
Los nombres de las variables no pueden comenzar con números ni con caracteres especiales
//correcto //incorrecto
$mi_variable $_mivariable
$2variable
La variable toma el tipo de dato del valor que se le asigne
Tipos de datos: int, float, double, string, array, object
PHP
Ejemplo
<?php
$un_bool = TRUE; // un valor booleano
$un_str = "foo"; // una cadena
$un_int = 12; // un entero
echo gettype($un_bool); // imprime: boolean
// Si este valor es un entero, incrementarlo en cuatro
if (is_int($un_int)) $un_int += 4;
?>
PHP
Es posible concatenar variables (strings) con el operador “.”
<?php
$mensaje1 = 'Hola';
$mensaje2 = 'mundo!';
echo $mensaje1.' '.$mensaje2;
?>
Con la función “unset()” podemos quitar el valor de una variable
$var = "pepe";
unset($var); // Ahora no tiene valor (NULL)
La función “isset()” nos indica si una variable está inicializada
if (isset($var)){
echo 'Tiene valor';
}
PHP
Condicionales: IF
if (<condición>) {código si se cumple la condición} else {código si no se cumple la condición}
Ejemplo
<?php $i = 6; if ($i < 10)
{ echo "menor de 10";
}else { echo "mayor de 10"; }
?>
PHP
<HTML> <HEAD> <TITLE>Detector de Lengua</TITLE> </HEAD> <BODY> <? //definimos variables $espanol="Hola"; $ingles="Hello"; //Leemos del navegador su lengua oficial $idioma=substr($HTTP_ACCEPT_LANGUAGE,0,2); //Formulamos las posibilidades que se pueden dar if ($idioma == "es“) {
echo "$espanol";
} else echo "$ingles“; ?>
</BODY>
</HTML>
PHP
Condicionales: SWITCH
switch (<expresión>) { case <valor 1>: //código para valor 1 break; case <valor 2>: //código para valor 2 break; ...
case <valor n>: //código para valor n break;
default: // código por defecto break; }
PHP
Ejemplo
<?php
$variable=2;
switch($variable) {
case 1: echo '$Variable es igual a 1.';
break;
case 2: echo '$Variable es igual a 2.';
break;
case 3: echo '$Variable es igual a 3.';
break;
default: echo '$Variable no igual ' . 'a 1, 2 o 3.'; }
?>
PHP
Bucles: While
Se ejecuta al código mientras se cumpla una condición
while (<condicion>) {
//Código a ejecutar
}
Ejemplo
$a = 1;
while ( $a < 10) {
echo "<p>El número actual es $a</p>";
$a++;
}
PHP
Bucles: Do While
Se ejecuta al código mientras se cumpla una condición
Al menos se ejecuta una vez
do {
//Código a ejecutar
} while (<condicion>)
Ejemplo
$a = 0;
do
{
$a++;
echo ('<p>El número es '.$a.'</p>');
}
while ( $a < 10);
PHP
Bucles: For
Se ejecuta al código mientras se cumpla una condición
for (inicialización; condición; actualización) { //código
}
Ejemplo
for ($i=1;$i<=100;$i++) { echo “$i <br>”; }
PHP
Bucles: Foreach
Se ejecuta un determinado código por cada uno de los elementos de una colección
Llama al archivo para incrustar el código en la página. Puede ejecutarse o no al estar dentro de un condicional
require(“archivo”)
Llama al archivo para incrustar el código en la página. Este código se ejecuta siempre
A partir de la versión PHP 4.0.2 y posteriores esto cambia y ambas construcciones se comportan exactamente de la misma manera, con la única diferencia:
include solo da una advertencia, y sigue ejecutando el código
require produce un error y interrumpe la ejecución.
header(“Location: paginaweb”)
Redirecciona dinámicamente las página web
Se utiliza al comienzo de un fichero HTML
exit
Finaliza la ejecución del código
PHP
Ejemplo include
vars.php
<?php
$color = 'verde';
$fruta = 'manzana';
?>
test.php
<?php
echo "Una $fruta $color"; // Una
include 'vars.php';
echo "Una $fruta $color"; // Una manzana verde
?>
PHP
Matrices/Arrays
Es un tipo de dato, que contiene un conjunto de valores referenciados con un índice.
Podemos crear elementos de una matriz sobre la marcha:
$matriz[7] = "Texto de la posición 7";
// si no especificamos un índice, se inserta en la siguiente posición
$matriz[] = "Esto iría en la posición 8";
Podemos eliminar elementos, o la matriz entera con "unset()“
$matriz = array(3 => 'Oso', 5 => 'Lagarto');
unset($matriz[3]); // No hay nada en la posición 3
unset($matriz); // No hay nada en la matriz
PHP
Funciones
function <nombre_función> ($param1, $param2, ...)
{
//código función
return <resultado>;
}
Ejemplos
function negrita($texto) {
return '<b>'.$texto.'</b>';
}
echo 'Quiero '.negrita(‘destacar').' lo '.negrita('importante');
function sumar($num1,$num2){ $ suma=$ num1 +$num2 echo $num1."+".$num2."=".$suma; }
sumar(5,6)
PHP
Existen muchas bibliotecas de funciones en PHP
Algunos ejemplos:
Funciones de manipulación de cadenas
Funciones de fecha y hora
Funciones de arrays
Funciones de ficheros
Funciones matemáticas
Funciones de bases de datos
Funciones de red
Algunas bibliotecas requieren la instalación de componentes adicionales
http://es2.php.net/manual/es/
PHP
Manejo de cadenas
chop(cadena): Devuelve la cadena de caracteres con los caracteres de blanco y nueva línea eliminados
trim(cadena): Elimina los blancos que aparecen a izquierda y derecha de la cadena de caracteres
str_repeat(caracter,numero_veces): Repite un caracter el numero de veces indicado
strtolower(cadena): Pasa toda la cadena a letras minúsculas
strtoupper(cadena): Pasa toda la cadena a letras mayúsculas
ucfirst(cadena): Pasa a mayúscula el primer caracter de una cadena
str_replace(subcadena1,subcadena2,cadena): Sustituye una palabra por otra dentro de una cadena
strtr(cadena,originales,traducidos): Traduce ciertos caracteres .Ejemplo: $persona=strt($persona,"áéíóú","a,e,i,o,u"); de esta forma cambiaría todas las vocales con acento por vocales sin acento.
substr_replace(cadena,nueva,comienzo,longitud): Sustituye una porción del contenido de una cadena
PHP
<?php
echo strlen("12345"),"<br>";
// devuelve 5
$palabras=split(" ","Esto es una prueba");
for($i=0;$palabras[$i];$i++)
echo $palabras[$i],"<br>";
// devuelve cada palabra en una fila
echo substr("Devuelve una subcadena de otra",9,3),"<br><br>";
// devuelve “ una ”
echo strpos("Busca la palabra en la frase", "palabra“);
// devuelve 9
echo str_replace("verde","rojo","verde que te quiero verde .");
// devuelve “ rojo que te quiero rojo ”;
?>
PHP
Manejo de fecha y hora
date: permite dar formato a una hora/fecha
getdate: devuelve un array con los elementos
“ seconds” = segundos “minutes” = minutos “hours” = horas “mday” = día del mes “wday” = día del mes en número “mon” = número del mes “year” = año “yday” = número de día del año, por ejemplo “125” “weekday” = día de la semana en letra (ingles), por ejemplo “Monday” “month” = mes en letra (ingles), por ejemplo “November”
time: Devuelve la fecha actual en formato timestamp de UNIX. Este formato es un número (int) que indica el número de segundos transcurridos desde las 00:00:00 del día 1 de enero de 1970 GMT.
$string1 = "Esta es la primera línea de texto";
fputs($DescriptorFichero,$string1);
//Escribimos la segunda línea de texto
$string2 = "Y esta es la segunda línea de texto";
fputs($DescriptorFichero,$string2);
//Cerramos el fichero
fclose($DescriptorFichero);
?>
PHP
Excepciones
Permiten el control de errores
Ejemplo
function division($dividendo, $divisor) {
if($divisor==0)
throw new Exception(‘Division entre cero!',0);
return $dividendo/$divisor;
}
try {
echo division(15,0);
} catch(Exception $e) {
echo “se ha producido un error: “. $e->getMessage();
}
PHP
Recuperar valores de formularios
Un formulario puede enviarse con el método "get" o "post"
Se usa $_GET y $_POST
Ejemplo: recuperar variables pasadas por URL
<html>
<body>
<?php
foreach ($_GET as $nombre => $param)
{
?>
<p><?=$nombre.': '.$param?></p>
<?
}
?>
</body>
</html>
PHP
Ejemplo
Formulario
<html> <head> <title>Ejemplo de PHP</title> </head> <body> <FORM ACTION="procesa2.phtml" METHOD=" POST/GET "> Introduzca su nombre:<INPUT TYPE="text" NAME="nombre"><BR> Introduzca sus apellidos:<INPUT TYPE="text" NAME="apellidos"><BR> <INPUT TYPE="submit" VALUE="Enviar"> </FORM> </body>
</html>
Recuperar datos
<html> <head> <title>Ejemplo de PHP</title> </head> <body> El nombre por GET: <?php echo $_GET['nombre']," ",$_GET['apellidos'] ?><br> El nombre por POST: <?php echo $_POST['nombre']," ",$_POST['apellidos'] ?> </body>
</html>
PHP
Sesiones
Las sesiones básicamente son variables globales que nos permiten almacenar datos que necesiten volver a ser usados en otros accesos a la pagina
Usadas entre otras cosas en la validación de usuarios
1º.- Se crea el formulario de validación (login.php)
2º.- Se comprueba la validez del usuario (autenticacion.php)
3º.- Se crea la sesión y se da acceso al usuario o se deniega el mismo
PHP
PHP
Sesiones (autenticacion.php)
<?php
//vemos si el usuario y contraseña son válidos if ($_POST["usuario"]=="usuario" && $_POST["contrasena"]=="123"){ //usuario y contraseña válidos
0 comments
Post a comment