Especialista Web J9 Php

Preview:

DESCRIPTION

Jornada sobre PHP

Citation preview

Especialista en desarrollo de aplicaciones web

JORNADA 9

ramos valcárcel, daviddavid@uvigo.es

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ásicaecho “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á inicializadaif (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 darif ($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

Por ejemplo, si tenemos un array con n elementos:<?

$vector = array(    "uno" => 1,    "dos" => 2,    "tres" => 3,    "diecisiete" => 17 ); foreach($vector as $indice => $valor) {    echo "$vector[$indice] => $valor.n"; } ?> 

PHP Funciones importantes

include (“archivo”)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 webSe utiliza al comienzo de un fichero HTML

exitFinaliza 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. $sentido[1]="ver";$sentido[2]="tocar";$sentido[3]="oir";$sentido[4]="gustar";$sentido[5]="oler";

Acceso a una posiciónecho ($sentido[1]); //devuelve “ver”

Creación de una matriz$sentidos= array(‘ver‘,‘tocar‘,‘oír’);$sentidos= array(1=>‘ver‘,2=>‘tocar‘,3=>‘oír‘);

PHP Matrices/Arrays

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.

PHP<?php

$hora = time();echo ($hora);echo "<br>";// muestra “1241110230 "

$hora = getdate(time());echo( $hora["mday"] . "/" . $hora["mon"] . "/" . $hora["year"] ); echo "<br>";//muestra “30/4/2009”

echo($hora["hours"] .":”. $hora["minutes"] .":”. $hora["seconds"] ); //muestra 18:50:30

?>

PHP Manejo ficheros

fopen ( archivo, modo): abre un fichero o URL (lectura/escritura/añadir…)$fp = fopen(’info.txt’, ’r’);

fclose ( int): Cierra un fichero abiertofclose ($fp);

copy(‘archivo.txt',‘directorio'): Copiar un archivo

if(copy('datos.txt',‘copia/datos.bak' )) {

echo "el fichero se copio con éxito.<br>"; } else echo "el fichero no se copio .<br>";

Unlink: Borra un fichero

unlink('datos.txt');

mkdir: crea un directorio rmdir: borra un directorio is_dir: dice si es un directorio is_file: dice si es un fichero

PHP Manejo ficheros

<? //Abrimos el fichero en modo de escritura $DescriptorFichero = fopen("datos.txt","w");

//Escribimos la primera línea dentro de él $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álidosif ($_POST["usuario"]=="usuario" && $_POST["contrasena"]=="123"){

//usuario y contraseña válidos

session_start();$_SESSION["autenticado"]= "SI";

// mayor seguridad almacenando ssesion_id()$_SESSION[“id_misesion"]= session_id();

header ("Location: aplicacion.php");

}else {

//si no existe se va a login.phpheader("Location: login.php?errorusuario=si");

}

?>

PHP Sesiones (seguridad.php)

<?php

//Inicio la sesiónsession_start();

//COMPRUEBA QUE EL USUARIO ESTA AUTENTICADOif ($_SESSION["autenticado"] != "SI") {

//si no existe, va a la página de autenticacionheader("Location: login.php");

//salimos de este scriptexit();}

?>

Este código lo incluimos en todas las páginas que requieran validación

PHP Conexión a BBDD

mysql_connect($hostname,$user,$password)

//cierre de conexión

mysql_close($conexion);

Ejemplo

<?php $servidor="localhost"; $login=“usuario": $password=“contraseña";

$db=“basededatos” $conexion=mysql_connect($servidor,$login,$password);

mysql_select_db($db, $conexion);

mysql_close($conexion);?>

PHP Sentencia BBDD

$result = mysql_query($query);

Ejemplo

$query="SELECT * FROM tabla";

$result=mysql_query($query,$conexion);

$numrows=mysql_num_rows($result);

while ($datos=mysql_fetch_array($result)){echo $datos["Nombre"], " - ", $datos["Direccion"] ,"<BR>" ;}echo "Numero de registros $numrows<br>";

Recommended