Está en la página 1de 16

Tema 5.

PHP
Contenido 1. Introduccin 2. Fundamentos de PHP - Tipos bsicos y variables - Operadores - Estructuras de Control - Arrays - Fechas - Funciones - Clases 3. Variables predefinidas en PHP - Parmetros enviados en la peticin - Cookies - Sesiones 4. Conexin con bases de datos

Introduccin

Caractersticas de PHP

PHP - (acr nimo de "PHP: Hypertext Preprocessor") es un lenguaje de script del lado del servidor. Cdigo incluido dentro de un documento xHTML (XML) que aade dinamismo a una pgina web esttica. Open Source (c digo libre) Funcionamiento

El navegador del cliente solicita el documento PHP. Llega la solicitud al servidor que localiza el documento, lanza el intrprete de PHP y ejecuta el c digo. Como resultado de la ejecucin se genera un documento xHTML y el servidor transfiere este documento al cliente que lo muestra en el navegador.

I. T. Informtica de Gestin

Universidad de Huelva

Programacin en Internet

Introduccin

Caractersticas de PHP

Inclusin en el c digo xHTML - <?php ?> - <? ?> </script> <html> <head> <title>Ejemplo de PHP</title> </head> <body> <h1>Mi Primer Ejemplo</h1> <?php // Ejemplo2 echo <p>Hola Mundo</p>; ?> </body> </html>
Universidad de Huelva Programacin en Internet

- <script languaje="php">

Ejemplos <?php // Ejemplo1 phpinfo(); ?>

La funcin echo devuelve la cadena pasada por parmetros. Esta funcin es muy limitada, es posible usar la funcin printf , igual que C. printf(cadena, vars)
I. T. Informtica de Gestin

Tema 5. PHP
Contenido 1. Introduccin 2. Fundamentos de PHP - Tipos bsicos y variables - Operadores - Estructuras de Control - Arrays - Fechas - Funciones - Clases 3. Variables predefinidas en PHP - Parmetros enviados en la peticin - Cookies - Sesiones 4. Conexin con bases de datos

Fundamentos de PHP

Tipos de Datos

Enteros (int, long, numeric) N meros enteros positivos y negativos Real (float, double, real, numeric) N meros decimales o de coma flotante Boolean (bool) True o False Cadena (string) Cadenas de texto Array (array) Tipo especial de coleccin de valores Objetos (object) Tipo especial de dato

Variables
No es necesario declararlas y no tiene un tipo determinado Comienzan con el signo dlar ($) <?php // Ejemplo3 $a = 1; $b = 3.34; $c = "Hola Mundo"; echo $a . <br> . $b . <br> . $c; ?>

NOTA: Funciones tpicas is_xxxx(variable) : True / False Donde xxxx tipo de dato. P.ej. is_double gettype(variable) : Devuelve tipo settype(variable,'tipoVariable'): Cambia el tipo de la variable.
(Tambin se usa casting)
Programacin en Internet

Constantes: define(nombre, valor);


Universidad de Huelva

I. T. Informtica de Gestin

Fundamentos de PHP

Operadores
Aritmticos Lgicos Comparacin

Asignacin: Igual ( = ) Concatenacin: Punto ( . )

I. T. Informtica de Gestin

Universidad de Huelva

Programacin en Internet

Fundamentos de PHP

Estructuras de Control

If-else Switch While Do-while For Foreach Continue Break


<?php $a = array("uno", "dos", "tres"); foreach ($a as $v) { echo "<p>Valor: $v</p>"; } foreach( $a as $k => $v ) { echo "Indice: $k; Valor: $v <br>"; } ?>
Universidad de Huelva Programacin en Internet

I. T. Informtica de Gestin

Fundamentos de PHP

Estructuras de Control

Ejemplo

<?php $a = array (Uno', Dos', Tres', 'next', Cuatro', Cinco', 'stop', Seis'); foreach ($a as $val) { if ($val == 'stop') { break; } if ($val == 'next') { continue; } echo "$val<br>\n"; } ?>

Resultado Uno Dos Tres Cuatro Cinco

[se salta el valor next] [El bucle finaliza con el valor stop]

I. T. Informtica de Gestin

Universidad de Huelva

Programacin en Internet

Fundamentos de PHP

Arrays

Lista de variables estructurada no necesariamente del mismo tipo. Indexados (comienzan en 0) Asociativos Declaracin

clave $a[Uno] = primero; $a[Dos] = segundo; $a = array(Uno'=>primero',Dos'=>segundo'); $a[Uno ] $a[Dos]

De forma implicita $a[ ] = primero; $a[ ] = segundo; Mediante el constructor array $a = array (primero, segundo); $a[0] $a[1] for($i=0; $i<max; $i++) echo $a[$i]

Utilizacin

foreach( $a as $dato) echo $dato while ($dato = each($a)) { echo $dato[0]; // clave. Uno, Dos echo $dato[1]; // valor: primero,
Programacin en Internet

La funcin each( array ) devuelve una matriz con dos posiciones, en 0 almacena la clave o ndice y en 1 el valor.
I. T. Informtica de Gestin

Universidad de Huelva

Fundamentos de PHP

Arrays: Principales funciones

[ m s informacin en http://www.php.net/manual/es/ref.array.php ]

Recorrido reset( array ) : Se posiciona en el primer elemento end( array ) : Se posiciona en el ltimo elemento next( array ) : Se posiciona en el siguiente elemento prev( array ) : Se posiciona en el elemento anterior current( array ) : Devuelve el contenido de la posicin actual o false cont ( array ) : Devuelve el nmero de elementos. Similar es sizeof ( array ) Otras funciones array_push(matriz,variable1,variableN): Aade elementos al final del array array_unshift(matriz,variable1,variableN): Aade elementos al principio del array array_shift(matriz) : Elimina el primer elemento de la matriz array_pop(matriz) : Elimina el ltimo elemento de la matriz

sort(matriz) : Ordenacin ascendente (matriz indexada) rsort(matriz) : Ordenacin descendente (matriz indexada) asort(matriz) : Ordenacin ascendente por valor (matriz asociativa) arsort(matriz): Ordenacin descendente por valor (matriz asociativa) ksort(matriz) : Ordenacin ascendente por clave (matriz asociativa) krsort(matriz) : Ordenacin descendente por clave (matriz asociativa)
I. T. Informtica de Gestin Universidad de Huelva Programacin en Internet

Fundamentos de PHP

Cadenas
Una cadena es una secuencia de caracteres comprendidos entre: - Comillas simples ' - Comillas dobles " " esto es una cadena: $i esto es otra cadena: $i

Principales funciones echo cadena : imprime la cadena printf(cadena_formato, valores) : imprime la cadena sustituyendo los valores strlen(cadena) : Devuelve el nmero de caracteres de la cadena. substr(cadena, inicio, longitud). Devuelve una subcadena de otra, empezando por inicio y de longitud longitud. chop(cadena). Elimina los saltos de lnea y los espacios finales de una cadena. strpos(cadena1, cadena2). Busca cadena2 en cadena1 devolviendo en ndice. str_replace(cadena1, cadena2, texto). Cambia cadena1 por cadena2 en el texto. ltrim(cadena), rtrim(cadena) y trim(cadena) : Elimina los espacios en blanco strtolower(cadena) : Convierte la cadena a minsculas strtoupper(cadena); Convierte la cadena a maysculas
Universidad de Huelva Programacin en Internet

I. T. Informtica de Gestin

Fundamentos de PHP

Fechas: PHP permite el manejo de fechas y horas.


getdate() : Devuelve un array asociativo con la informacin de la fecha y hora. ndices: hours, minutes, seconds, mday, wday, weekday, mon, month, year, yday Esta funcin acepta un parmetro que indica los segundos desde 01/01/1970 time() : Devuelve el nmero de segundos transcurridos desde 01/01/1970 mktime(hr, mt, sg, m, d, a) : Devuelve los segundos trascurridos desde el 01/01/1970 date(formato_fecha) : Devuelve la fecha actual en una cadena formateada, seg n:

I. T. Informtica de Gestin

Universidad de Huelva

Programacin en Internet

Fundamentos de PHP

Funciones Declaracin

function nombre(parmetros){ Sentencias } nombre(Val_parmetros);

Ejemplos function sumar($v1,$v2){ $ suma=$v1+$v2 echo $v1."+".$v2."=".$suma; } sumar(6,4); function incrementa($v1){ return $v1+1; } A = incrementa(2);

Llamada

Valor de retorno (return) Parmetros por valor por referencia: & por defecto
Funciones: func_num_args() : Numero de par metros func_get_args(i) : Par metro i func_get_args () : Array de par metros
I. T. Informtica de Gestin

function cambiar(&$v1){ $v1=5; } function opera( $v1, $v2=2) { return $v1*$v2; }


Programacin en Internet

Universidad de Huelva

Fundamentos de PHP

Cdigo desde un fichero


require(fichero) : incluye y evala el archivo. Si se produce un problema genera un error de sistema E_ERROR include( fichero) : incluye y evala el archivo. Si se produce un problema genera un aviso del sistema E_WARNING
<html> <head> </head> <body> <? php require (funciones.php); unaFuncion(5); otraFuncion( ); ?> </body> </html>
Universidad de Huelva Programacin en Internet

// funciones.php
function unaFuncion($a) { function otraFuncion( ) { etc

I. T. Informtica de Gestin

Fundamentos de PHP

Clases

Declaracin class nombre_clase { // atributos var nombre_atributo; // mtodos (acceso a atributos this-> ) function nomb_metodo( par metros) { cuerpo } }

class num { var $numero; function num() { // CONSTRUCTOR $this->numero=10; } function mas($i=0) { $this->numero=$this->numero+$i; } function valor() { return $this->numero; } }

Instanciacin de objetos $obj = new nombre_clase();

Invocacin de mtodos ( -> ) $obj -> nomb_metodo (val_parametros)

$n = new num(); $n->mas(5); echo El valor es . $n->valor


Programacin en Internet

I. T. Informtica de Gestin

Universidad de Huelva

Tema 5. PHP
Contenido 1. Introduccin 2. Fundamentos de PHP - Tipos bsicos y variables - Operadores - Estructuras de Control - Arrays - Fechas - Funciones - Clases 3. Variables predefinidas en PHP - Parmetros enviados en la peticin - Cookies - Sesiones 4. Conexin con bases de datos

Variables predefinidas en PHP

Principales variables globales [ ver phpinfo() ]

A partir de la versin 4.1 $_SERVER: Array asociativo con informacin sobre el servidor web $_ENV: Array asociativo con informacin sobre el entorno de ejecucin $_GET: Array asociativo con la informacin enviada por el usuario, si la peticin ha sido tipo GET. $_POST: Array asociativo con la informacin enviada por el usuario, si la peticin ha sido tipo POST. $_SESSION: Array asociativo con las variables de la sesin. $_COOKIE: Array asociativo con las cookies enviadas en la peticin. $_FILES: Array asociativo con la informacin de cada archivo enviado $_REQUEST: Array asociativo con la concatenacin de $_GET, $_POST, $_COOKIE Y $_FILES.
Tabla equivalencia entre versiones de PHP

I. T. Informtica de Gestin

Universidad de Huelva

Programacin en Internet

Variables predefinidas en PHP

Parmetros enviados en una peticin


$_GET, $_POST $_REQUEST

Peticiones GET http://servidor:puerto/ruta/fichero.php?var1=val1&var2=val2


[ Directamente en el navegador o desde un enlace]

<%php echo $_GET[var1]; // mostrara val1 echo $_GET[var2]; // mostrara val2 %>

I. T. Informtica de Gestin

Universidad de Huelva

Programacin en Internet

Variables predefinidas en PHP

Parmetros enviados en una peticin


$_GET, $_POST $_REQUEST

Peticiones POST <form action=ruta/fichero.php method=POST >

Var1: <input type= text name= var1 ><br /> Var2: <input type= text name= var2 > <br /> <input type=submit value=Enviar >

</form>

<%php

// fichero.php

echo $_POST[var1]; // mostrara val1 echo $_POST[var2]; // mostrara val2

%>
I. T. Informtica de Gestin Universidad de Huelva Programacin en Internet

Variables predefinidas en PHP

Cookies
Array $_COOKIE y funcin setcookie();

Asignacin de Cookies (forma parte de la cabecera de la peticin) setcookie( nombre, valor, caducidad, ruta, dominio, segura ); Ejemplo: setcookie(contador, $cont, time()+60 )

Acceso a las cookies $_COOKIE[nomb_cookie] Ejemplo: $_COOKIE[ contador ]

I. T. Informtica de Gestin

Universidad de Huelva

Programacin en Internet

Variables predefinidas en PHP

Cookies

Ejemplo: <?php // ATENCIN: Debe ser lo primero incluido en el fichero $cont = $_COOKIE[contador]; $cont++; setcookie(contador, $cont, time()+60); ?> <html> <head> <title>Ejemplo Cookies</title> </head> <body> <h1>Ejemplo con una Cookie contador</h1> <h2>Nmero de accesos: <?php echo $cont; ?> </h2> </body> </html>

I. T. Informtica de Gestin

Universidad de Huelva

Programacin en Internet

Variables predefinidas en PHP

Sesiones Principales funciones


session_start() : Inicia una nueva sesin o verifica la actual. Esta funcin debe estar incluida en todos los scripts que usen sesiones. session_register(variable) : establece la variable indicada por par metros como una variable de sesin que ser mantenida durante la sesin. La funcin inversa es session_unregister(variable); session_unset() : Elimina de la sesin todas las variables. session_destroy() : finaliza una sesin session_name( [nombre] ) devuelve el nombre de la sesin actual. Si se especifica un nombre como par metro lo asigna como nombre de la sesin Array $_SESSION Las variables establecidas como de la sesin son accedidas mediante: $_SESSION

Ej. session_register(contador)

$_SESSION[contador]

I. T. Informtica de Gestin

Universidad de Huelva

Programacin en Internet

Variables predefinidas en PHP

Sesiones Ejemplo
<?php session_start(); if (!isset($_SESSION['count'])) { $_SESSION['count'] = 0; } else { $_SESSION['count']++; } ?> <html> <head> </head> <?php if ($_SESSION['count] ==0) { ?> <p>Es la primera vez que accedes</p> <?php } else { ?> <p>ya has accedido ms veces</p> <?php } ?> </html> Esto es cdigo HTML

I. T. Informtica de Gestin

Universidad de Huelva

Programacin en Internet

Tema 5. PHP
Contenido 1. Introduccin 2. Fundamentos de PHP - Tipos bsicos y variables - Operadores - Estructuras de Control - Arrays - Fechas - Funciones - Clases 3. Variables predefinidas en PHP - Parmtros enviados en la peticin - Cookies - Sesiones 4. Conexin con bases de datos

Conexin Base datos

MySQL

Conectando con la base de datos

int mysql_connect ( string host, string usuario, string password) Conecta con el servidor de base de datos indicado, devolviendo el enlace de la conexin o falso en caso de error. int mysql_select_db (string bd, [int enlace]) Conecta con la base de datos bd, el par metro enlace es opcional si no se indica se utiliza el obtenido en la ltima llamada a mysql_connect. Devuelve cierto si tiene xito y falso en caso de error. Ejemplo: $enlace = mysql_mysql_connect( mi servidor, usario ,password) or die( Fallo en la conexin . mysql_error()); mysql_select_db( mi base de datos ) or die(Fallo al seleccionar la BD . msyql.error());

I. T. Informtica de Gestin

Universidad de Huelva

Programacin en Internet

Conexin Base datos

MySQL

Estableciendo la sentencia a ejecutar sobre la base de datos Para poder ejecutar alguna sentencia sobre la base de datos es necesario tener permisos para ello. Las sentencias bsicas son:

SELECT campos FROM basedatos WHERE condiciones INSERT INTO basedatos VALUES ( valoresCampos ) DELETE FROM basedatos WHERE condiciones

Ejemplo.

$sql1 = SELECT * FROM clientes WHERE dni=11111111 ; $sql2 = INSERT INTO cliente VALUES ( 11111111,PEPE, 30) ; $sql3 = DELETE FROM cliente WHERE dni=11111111 ;

I. T. Informtica de Gestin

Universidad de Huelva

Programacin en Internet

Conexin Base datos

MySQL

Ejecucin de la sentencia resource mysql_query (string cta, [int enl]) Ejecuta la consulta cta sobre la base de datos cuyo enlace de conexi n es enl, si se omite se utiliza el obtenido en la ltima llamada a mysql_connect. Devuelve un resource con el resultado o falso si ha fallado.
Ejemplos: $resultado = mysql_query( $sql1); // Tratamiento del resource para mostrar los datos consultados $resultado = mysql_query( $sql2); // siendo $sql2 un INSERT if ($resultado) echo Insercin realizada correctamente ; else die(La insercin no ha podido realizarse por: . mysql_error()); $resultado = pq_query($sql3); // siendo $sql2 un DELETE if ( | $resultado) die(El borrado no ha podido realizarse por: mysql_error() ; else echo Se han eliminado . mysql_affected_rows() . registros;

I. T. Informtica de Gestin

Universidad de Huelva

Programacin en Internet

Conexin Base datos

MySQL

Recorrido de resource resultado en un SELECT

array mysql_fetch_array ( int resultado, [int tipo_de_resultado] ) Devuelve un array indexado (comenzando en 0) y/o asociativo (campos de la base de datos) del siguiente resultado del resource resultado o falso si ya no quedan ms. El array devuelto depender de valor del par metro tipo_de_resultado:

MYSQL_ASSOC Las columnas son devueltas en el array usando el nombre del campo como ndice. MYSQL_BOTH Las columnas son devueltas en el array teniendo tanto un ndice numrico como un ndice correspondiente al nombre del campo. (VALOR POR DEFECTO) MYSQL_NUM Las columnas son devueltas en el array teniendo un ndice numrico a los campos. Este ndice comienza en 0, el primer campo del resultado.

MYSQL_BOTH es el par metro por defecto si se omite tipo_de_resultado.

I. T. Informtica de Gestin

Universidad de Huelva

Programacin en Internet

Conexin Base datos

MySQL
array array_fetch_row ( int resultado ) Devuelve un array indexado del siguiente resultado del resource resultado o falso si ya no quedan ms. object array_fetch_object ( int resultado ) Devuelve un objeto, cuyos atributos son los campos de la base de datos, del siguiente elemento del resource resultado o falso si ya no quedan ms.
Ejemplos. Suponer una base de datos con los campos dni, nombre y edad $r1 = mysql_fetch_array ( $resultado ); echo Bienvenido $r1[nombre]; for ($i=1; i<mysql_num_rows( $resultado )-1; i++) { $r2 = mysql_fetch_row($resultado); $obj = mysql_fetch_object($resultado); echo $obj->nombre . con . obj->dni . tiene . $obj->edad . aos ;

I. T. Informtica de Gestin

Universidad de Huelva

Programacin en Internet

Conexin Base datos

MySQL

Liberando recursos y cerrando la conexin bool mysql_free_result ( resource resultado ) Libera los recursos que utiliza un resource resultado de una consulta previa. bool mysql_close ( int enlace ) Cierra una conexin con el servidor de base de datos. Ejemplo mysql_free_result($resultado); mysql_close($enlace);

I. T. Informtica de Gestin

Universidad de Huelva

Programacin en Internet

Conexin Base datos

MySQL
int mysql_connect ( string host, string usuario, string password ) : Conexin con una servidor de base de datos int mysql_select_db (string bd): Conexi n con una base de datos bool mysql_close ( int enlace) : Cerrar conexin con un servidor de base de datos resource mysql_query (string query ) : Ejecuta una sentencia sobre una base de datos. array mysql_fetch_array ( int resultado) : Array de una fila de la consulta array mysql_fetch_row ( int resultado ) : Array de una fila de la consulta object mysql_fetch_object ( int resultado ) : Objeto de una fila de la consulta int mysql_num_fields ( int resultado ) : Nmero de campos obtenidos en la consulta int mysql_num_rows ( int resultado ) : Nmero de filas de la consulta int mysql_affected_rows ( ): Filas de la base de datos afectadas de la ltima sentencia INSERT, DELETE, UPDATE ejecutada bool mysql_free_result ( resource resultado ) : Libera los recursos de una consulta. string mysql_error (): Devuelve el texto del mensaje de error de la ltima operaci n MySQL

I. T. Informtica de Gestin

Universidad de Huelva

Programacin en Internet

Conexin Base datos

MySQL

I. T. Informtica de Gestin

Universidad de Huelva

Programacin en Internet

También podría gustarte