Está en la página 1de 37

PHP: Funciones y librer as

Francisco J. Mart Mateos n Carmen Graciani Diaz


Dpto. Ciencias de la Computacin e Inteligencia Articial o Universidad de Sevilla

Metodolog de la Programacin a o

PHP: Funciones y librer as

Cadenas de texto
El proceso de creacin de pginas Web usando PHP requiere o a generar las cadenas de texto que forman el cdigo HTML o Continuamente estamos trabajando con cadenas de texto Para construir cadenas de texto a partir de valores de variables PHP podemos utilizar " como delimitador, consiguiendo la expansin de cualquier variable que se incluya o dentro de la cadena
Si la variable $nombre almacena el nombre de un usuario de mi pgina Web, entonces la cadena de texto PHP: a "Hola $nombre, bienvenido a mi Web" generar el resultado: a Hola Francisco, bienvenido a mi Web

Igualmente podemos necesitar otras funciones que permitan trabajar con cadenas

Metodolog de la Programacin a o

PHP: Funciones y librer as

Cadenas de texto
La funcin strlen() o
Sintaxis: strlen(str) Argumentos: Una cadena str Resultado: Devuelve la longitud de la cadena str

La funcin trim() o
Sintaxis: trim(str) Argumentos: Una cadena str Resultado: Devuelve una cadena como la del argumento str pero eliminando el espacio en blanco (espacios, tabuladores, ...) del comienzo y del nal Notas:
Esta funcin no modica la cadena original o Existen las funciones ltrim y rtrim que eliminan el espacio en blanco slo del comienzo y slo del nal, respectivamente o o

Metodolog de la Programacin a o

PHP: Funciones y librer as

Cadenas de texto

La funcin strtoupper() o
Sintaxis: strtoupper(str) Argumentos: Una cadena str Resultado: Una cadena de texto como la del argumento str pero en maysculas u

La funcin strtolower() o
Sintaxis: strtolower(str) Argumentos: Una cadena str Resultado: Una cadena de texto como la del argumento str pero en minsculas u

Nota: Estas funciones no modican la cadena original

Metodolog de la Programacin a o

PHP: Funciones y librer as

Comparaciones de cadenas

Para comparar cadenas de texto se pueden utilizar los operadores == y ===


El operador == devuelve TRUE si las cadenas que se comparan son iguales
Si las cadenas estn formadas exclusivamente por nmeros a u entonces PHP realiza una comparacin de tipo numrico o e La comparacin "001" == "1" devuelve TRUE o

El operador === devuelve TRUE si las cadenas que se comparan son identicas
Si las cadenas estn formadas exclusivamente por nmeros a u entonces PHP NO realiza una comparacin de tipo numrico o e La comparacin "001" === "1" devuelve FALSE o

Metodolog de la Programacin a o

PHP: Funciones y librer as

Comparaciones de cadenas

Otra forma de comparar cadenas es con la funcin strcmp() o


Sintaxis: strcmp(str1,str2) Argumentos: Dos cadenas str1 y str2 Resultado: Devuelve 0 si ambas cadenas son iguales, un nmero negativo si str1 es lexicogrcamente menor que u a str2 y un nmero positivo si str1 es lexicogrcamente u a mayor que str2 Nota: Esta funcin distingue entre maysculas y minsculas. o u u Si queremos comparar cadenas sin tenerlas en cuenta, debemos usar la funcin strcasecmp() o

Metodolog de la Programacin a o

PHP: Funciones y librer as

Subcadenas
La funcin substr() o
Sintaxis: substr(str,ini,tam) Argumentos: Una cadena str, una posicin ini y un tamao o n tam Resultado: Devuelve la subcadena de str desde la posicin o indicada por ini y del tamao indicado por tam n Notas:
Las posiciones en las cadenas empiezan a contar desde 0 Si ini es positivo indica una posicin contada desde el o principio de str, si es negativo indica una posicin contada o desde el nal de str El argumento tam es opcional, si no se indica entonces la funcin devuelve la subcadena desde la posicin indicada por o o ini hasta el nal Si tam es negativo indica que hay que eliminar ese nmero de u caracteres del nal de la subcadena obtenida como si dicho argumento no existiera

Metodolog de la Programacin a o

PHP: Funciones y librer as

Subcadenas

Ejemplos
La instruccin substr(abcdef, 2, 3) devuelve la o subcadena desde la posicin 2 (c) y de tamao 3: cde o n La instruccin substr(abcdef,-2) devuelve la subcadena o desde la posicin -2 (e) hasta el nal: ef o La instruccin substr(abcdef,-2, 1) devuelve la o subcadena desde la posicin -2 (e) y de tamao 1: e o n La instruccin substr(abcdef, 1,-2) devuelve la o subcadena desde la posicin 1 (b) hasta 2 caracteres antes de o llegar al nal: bcd La instruccin substr(abcdef,-4,-2) devuelve la o subcadena desde la posicin -4 (c) hasta 2 caracteres antes o de llegar al nal: cd

Metodolog de la Programacin a o

PHP: Funciones y librer as

Subcadenas

La funcin strpos() o
Sintaxis: strpos(str1,str2,ini) Argumentos: Dos cadenas str1 y str2 y una posicin ini o Resultado: Devuelve la posicin de la primera ocurrencia de la o cadena str2 en str1 desde la posicin ini o Nota: El argumento ini es opcional y su valor por defecto es 0

La funcin strstr() o
Sintaxis: strstr(str1,str2) Argumentos: Dos cadenas str1 y str2 Resultado: Devuelve la subcadena que comienza en la posicin o de la primera ocurrencia de la cadena str2 en str1

Nota: Ambas funciones distinguen entre maysculas y u minsculas u

Metodolog de la Programacin a o

PHP: Funciones y librer as

Conversin entre cadenas y arrays o

La funcin explode() o
Sintaxis: explode(str1,str2,tam) Argumentos: Dos cadenas str1 y str2 y un tamao tam n Resultado: Devuelve el array asociativo cuyos valores son los trozos de la cadena str2 delimitados por str1, hasta un total de tam trozos Notas:
El argumento tam es opcional y si no se indica se obtendrn a todos los trozos posibles Si se indica el argumento tam entonces el ultimo trozo contendr el resto de la cadena str2 a

Metodolog de la Programacin a o

PHP: Funciones y librer as

Conversin entre cadenas y arrays o

La funcin implode() o
Sintaxis: implode(str,array) Argumentos: Una cadena str y un array array Resultado: Devuelve la cadena formada por los valores almacenados en el array asociativo array concatenados usando la cadena str como delimitador entre ellos Notas:
Los valores del array se concatenan en el orden en que se crearon No se muestran las claves del array

Metodolog de la Programacin a o

PHP: Funciones y librer as

Arrays asociativos

Los arrays en PHP disponen de un puntero que seala al n elemento actual Inicialmente dicho puntero seala al primer elemento insertado n en el array Este puntero sirve para acceder a la informacin del array con o las funciones current(), key(), reset(), end(), next(), prev() y each()

Metodolog de la Programacin a o

PHP: Funciones y librer as

Recorriendo arrays asociativos

La funcin current() o
Sintaxis: current(array) Argumentos: Un array asociativo array Resultado: Devuelve el valor del elemento actual en el array

La funcin key() o
Sintaxis: key(array) Argumentos: Un array asociativo array Resultado: Devuelve la clave del elemento actual en el array

Metodolog de la Programacin a o

PHP: Funciones y librer as

Recorriendo arrays asociativos

La funcin reset() o
Sintaxis: reset(array) Argumentos: Un array asociativo array Resultado: Mueve el puntero al primer elemento del array y devuelve el valor de dicho elemento

La funcin end() o
Sintaxis: end(array) Argumentos: Un array asociativo array Resultado: Mueve el puntero al ltimo elemento del array y u devuelve el valor de dicho elemento

Metodolog de la Programacin a o

PHP: Funciones y librer as

Recorriendo arrays asociativos


La funcin next() o
Sintaxis: next(array) Argumentos: Un array asociativo array Resultado: Avanza una posicin el puntero asociado a array y o devuelve el valor de dicho elemento Nota: Si el puntero se encuentra al nal del array, entonces devuelve FALSE y no avanza

La funcin prev() o
Sintaxis: prev(array) Argumentos: Un array asociativo array Resultado: Retrocede una posicin el puntero asociado a o array y devuelve el valor de dicho elemento Nota: Si el puntero se encuentra al principio del array, entonces devuelve FALSE y no retrocede

Metodolog de la Programacin a o

PHP: Funciones y librer as

Recorriendo arrays asociativos

Recorriendo arrays asociativos


<?php $a = array(1,2,hola => 3, 5 => 4, adios => 5); current($a); key($a); next($a); current($a); key($a); end($a); key($a); prev($a); current($a); reset($a); ?> // // // // // // // // // // => => => => => => => => => => 1 0 2 2 1 5 adios 4 4 1

Metodolog de la Programacin a o

PHP: Funciones y librer as

Recorriendo arrays asociativos

La funcin each() o
Sintaxis: each(array) Argumentos: Un array asociativo array Resultado: Devuelve un array con la clave del elemento actual en array en las posiciones 0 y key y su valor en las posiciones 1 y value Nota: Esta funcin avanza una posicin el puntero asociado al o o array

Metodolog de la Programacin a o

PHP: Funciones y librer as

Recorriendo arrays asociativos

Recorriendo arrays asociativos


<?php $a = array(1,2,hola => 3, 5 => 4, adios => 5); end($a); // => 5 print_r(each($a)); /* => Array ( [1] => 5 [value] => 5 [0] => adios [key] => adios ) */ ?>

Metodolog de la Programacin a o

PHP: Funciones y librer as

Ordenando arrays asociativos

La funcin sort() o
Sintaxis: sort(array) Argumentos: Un array asociativo array Resultado: Ordena el array por contenido en orden ascendente

La funcin rsort() o
Sintaxis: rsort(array) Argumentos: Un array asociativo array Resultado: Ordena el array por contenido en orden descendente

Nota: Estas funciones crean nuevas claves en el array para almacenar el resultado, eliminando todas las claves anteriores

Metodolog de la Programacin a o

PHP: Funciones y librer as

Ordenando arrays asociativos

La funcin ksort() o
Sintaxis: ksort(array) Argumentos: Un array asociativo array Resultado: Ordena el array por clave en orden ascendente

La funcin rksort() o
Sintaxis: rksort(array) Argumentos: Un array asociativo array Resultado: Ordena el array por clave en orden descendente

Metodolog de la Programacin a o

PHP: Funciones y librer as

Serializacin de arrays o

Un array asociativo puede tener una estructura compleja que diculta su almacenamiento en cheros o bases de datos La serializacin es un proceso que transforma estructuras o complejas en cadenas de texto con objeto de almacenarlas o transferirlas con comodidad
El proceso de serializacin se puede revertir para recuperar la o estructura original

En PHP podemos aplicar el proceso de serializacin a los o arrays asociativos para obtener una representacin compacta o en forma de cadena

Metodolog de la Programacin a o

PHP: Funciones y librer as

Serializacin de arrays o

La funcin serialize() o
Sintaxis: serialize(array) Argumentos: Un array asociativo array Resultado: La representacin compacta en forma de cadena o del array

La funcin unserialize() o
Sintaxis: unserialize(str) Argumentos: Un cadena de texto str obtenida en una serializacin o Resultado: El array asociativo representado de forma compacta en str

Metodolog de la Programacin a o

PHP: Funciones y librer as

Serializacin de arrays o

Serializacin de arrays asociativos o


<?php $a = array(1,2 => hola,tres => 3); /* => Array ( [0] => 1 [2] => hola [tres] => 3 ) */ $b = serialize($a); /* => a:3:i:0;i:1;i:2;s:4:"hola";s:4:"tres";i:3; */ $c = unserialize($b); /* => Array ( [0] => 1 [2] => hola [tres] => 3 ) */ ?>

Metodolog de la Programacin a o

PHP: Funciones y librer as

Otras funciones
La funcin count() o
Sintaxis: count(array) Argumentos: Un array asociativo array Resultado: Devuelve el nmero de elementos del array u

La funcin in array() o
Sintaxis: in array(val) Argumentos: Un dato cualquiera val Resultado: Devuelve TRUE si el dato val es un valor en el array Nota: La comparacin distingue entre maysculas y minsculas o u u

La funcin shuffle() o
Sintaxis: shuffle(array) Argumentos: Un array asociativo array Resultado: Mezcla de forma aleatoria el contenido del array

Metodolog de la Programacin a o

PHP: Funciones y librer as

Tablas de datos

PHP tiene conectividad con gran cantidad de sistemas de gestin de bases de datos externas, pero tambin tiene o e funcionalidades internas para trabajar con tablas de datos (DBA) Una tabla de datos es un chero con una coleccin organizada o de informacin a la que se accede a travs de una clave o e Para poder utilizar tablas de datos en PHP, este debe disponer de un gestor de tablas de datos
Los gestores de tablas de datos disponibles se pueden consultar con la instruccin dba handlers(true) o En lo que sigue utilizaremos el gestor de tablas de datos DB4 (Berkeley DB 4)

Metodolog de la Programacin a o

PHP: Funciones y librer as

Tablas de datos

El primer paso para trabajar con tablas de datos es crear o abrir una, para ello utilizamos la funcin dba open() o
Sintaxis: dba open(fichero,modo,gestor) Argumentos: Tres cadenas de texto fichero, modo y gestor Resultado: Devuelve el identicador del recurso asociado a la tabla de datos fichero, abierta en el modo indicado en modo con el gestor cuyo identicador es gestor Nota: El modo indica el uso que se puede hacer de la tabla de datos, puede ser
r w c n para acceso de lectura acceso de lectura y escritura para creacin y acceso de lectura y escritura o para creacin, truncado y acceso de lectura y escritura o

Nota: El identicador del gestor de tablas de datos DB4 es db4

Metodolog de la Programacin a o

PHP: Funciones y librer as

Tablas de datos

Cuando se abre una tabla de datos, por defecto sta queda e bloqueada para que no se pueda volver a abrir mientras la tenemos en uso La tabla de datos se desbloquea en cuanto se cierra con la funcin dba close() o
Sintaxis: dba close(recurso) Argumentos: El recurso asociado a una tabla de datos, devuelto por una instruccin de apertura de dicha tabla de o datos Resultado: Cierra la tabla de datos asegurando que todas las operaciones sobre esta ya han terminado

Metodolog de la Programacin a o

PHP: Funciones y librer as

Tablas de datos
En las tablas de datos se puede almacenar informacin o asociada a claves
Tanto claves como informacin son cadenas de texto o Las claves usualmente han de ser nicas u Para asociar distintos tipos de informacin a una misma clave o hay que representar de forma compacta toda la informacin en o una nica cadena de texto (serializar) u

Para aadir informacin a una tabla usamos la funcin n o o dba insert


Sintaxis: dba insert(clave,valor,recurso) Argumentos: Dos cadenas de texto clave y valor y un recurso asociado a una tabla de datos Resultado: Inserta en la tabla de datos asociada al recurso una entrada correspondiente a la clave con el valor Nota: Si la clave tiene un valor en el recurso asociado a una tabla de datos, entonces no hace nada
Metodolog de la Programacin a o PHP: Funciones y librer as

Tablas de datos
La funcin dba delete() o
Sintaxis: dba delete(clave,recurso) Argumentos: Una cadena de texto clave y un recurso asociado a una tabla de datos Resultado: Elimina de la tabla de datos asociada al recurso la entrada correspondiente a la clave Nota: Si la clave no tiene valor en el recurso asociado a una tabla de datos, entonces no hace nada

La funcin dba replace() o


Sintaxis: dba replace(clave,valor,recurso) Argumentos: Dos cadenas de texto clave y valor y un recurso asociado a una tabla de datos Resultado: Reemplaza en la tabla de datos asociada al recurso, la entrada correspondiente a la clave, por el valor Nota: Si la clave no tiene un valor en el recurso asociado a una tabla de datos, entonces funciona como dba insert()
Metodolog de la Programacin a o PHP: Funciones y librer as

Tablas de datos

Modicando la tabla de datos


<?php $db = dba_open("nombres.db","n","db4"); // Insertamos un registro dba_insert("75438323W","Francisco Martn Mateos",$db); // Modificamos un registro dba_replace("75438323W","Francisco J. Martn Mateos",$db); // Modificamos un registro que no existe dba_replace("75438323R","Francisco J. Martn Mateos",$db); // Insertamos otro registro dba_insert("12345678O","Juan Con Miedo",$db); // Borramos el registro dba_delete("12345678O",$db); // Insertamos otro registro dba_insert("12345678O","Juan Sin Miedo",$db); // Borramos un registro que no existe dba_delete("12345678Q",$db); // Cerramos la base de datos dba_close($db); ?>

Metodolog de la Programacin a o

PHP: Funciones y librer as

Tablas de datos
La funcin dba exists() o
Sintaxis: dba exists(clave,recurso) Argumentos: Una cadena de texto clave y un recurso asociado a una tabla de datos Resultado: Comprueba si en la tabla de datos asociada al recurso, hay una entrada correspondiente a la clave

La funcin dba fetch() o


Sintaxis: dba fetch(clave,recurso) Argumentos: Una cadena de texto clave y un recurso asociado a una tabla de datos Resultado: Devuelve la entrada correspondiente a la clave en la tabla de datos asociada al recurso Nota: Si la clave no tiene un valor en el recurso asociado a una tabla de datos, entonces devuelve FALSE

Metodolog de la Programacin a o

PHP: Funciones y librer as

Tablas de datos

La funcin dba firstkey() o


Sintaxis: dba firstkey(recurso) Argumentos: Un recurso asociado a una tabla de datos Resultado: Devuelve la primera clave de la tabla de datos asociada al recurso y establece un apuntador interno en la tabla en esta entrada

La funcin dba nextkey() o


Sintaxis: dba nextkey(recurso) Argumentos: Un recurso asociado a una tabla de datos Resultado: Devuelve la siguiente clave de la tabla de datos o asociada al recurso y avanza una posicin el apuntador interno

Metodolog de la Programacin a o

PHP: Funciones y librer as

Tablas de datos

Consultando la tabla de datos


<?php $db = dba_open("nombres.db","r","db4"); echo "Contenido de la base de datos:<BR>"; echo "<OL>"; $key = dba_firstkey($db); while ($key) { echo "<LI>Clave: $key Valor:"; echo dba_fetch($key, $db); echo "<BR>"; $key = dba_nextkey($db); } echo "</OL>"; ?>

Metodolog de la Programacin a o

PHP: Funciones y librer as

Tablas de datos

La funcin dba sync() o


Sintaxis: dba sync(recurso) Argumentos: Un recurso asociado a una tabla de datos Resultado: Sincroniza la tabla de datos asociada al recurso: escribe en el chero asociado todos los cambios pendientes de realizar

La funcin dba optimize() o


Sintaxis: dba optimize(recurso) Argumentos: Un recurso asociado a una tabla de datos Resultado: Optimiza la tabla de datos asociada al recurso: modica el chero asociado mejorando la forma en que la tabla de datos est almacenada a

Metodolog de la Programacin a o

PHP: Funciones y librer as

Ejemplo: registro de usuarios


Registro de usuarios: base-de-datos.php
<HTML> <HEAD> <TITLE>Base de datos de usuarios</TITLE> </HEAD> <?php // Borrar la tabla de datos if (isset($_POST[boton]) && $_POST[boton] == "borrar") { $db = dba_open("nombres.db","n","db4"); dba_close($db); } // Insertar una entrada en la base de datos if (isset($_POST[dni]) && isset($_POST[nombre]) && isset($_POST[apellidos])) { $db = dba_open("nombres.db","c","db4"); $a = array(nombre => $_POST[nombre], apellidos => $_POST[apellidos]); dba_insert($_POST[dni],serialize($a),$db); dba_close($db); } ?>

Metodolog de la Programacin a o

PHP: Funciones y librer as

Ejemplo: registro de usuarios

Registro de usuarios: base-de-datos.php


<BODY> <H1>Base de datos de usuarios</H1> <FORM action="base-de-datos.php" method="post"> Nombre: <INPUT type="text" name="nombre"> <BR> Apellidos: <INPUT type="text" name="apellidos"> <BR> DNI: <INPUT type="text" name="dni"> <BR> <INPUT type="submit" name="boton" value="datos"> </FORM>

Metodolog de la Programacin a o

PHP: Funciones y librer as

Ejemplo: registro de usuarios


Registro de usuarios: base-de-datos.php
<H1>Contenido de la base de datos</H1> <?php $db = dba_open("nombres.db","r","db4"); echo "<OL>"; $key = dba_firstkey($db); while ($key) { echo "<LI>Clave: $key<BR>"; $b = unserialize(dba_fetch($key, $db)); echo "Nombre: $b[nombre]<BR>"; echo "Apellidos: $b[apellidos]<BR>"; $key = dba_nextkey($db); } echo "</OL>"; ?> <FORM action="base-de-datos.php" method="post"> <INPUT type="submit" name="boton" value="borrar"> </FORM> </BODY> </HTML>

Metodolog de la Programacin a o

PHP: Funciones y librer as

También podría gustarte