Está en la página 1de 49

Desarrollo de

aplicaciones PHP para


bases de datos
Almera 2007

Lenguajes de Desarrollo.
PHP
Antonio Becerra Tern
abecerra@ual.es
Departamento de Lenguajes y Computacin
Universidad de Almera

Desarrollo de
aplicaciones PHP
para bases de datos
Almera 2007

Lenguajes de Desarrollo.
PHP
Contenidos
1. Introduccin a PHP y caractersticas
2. Variables
3. Operadores
4. Constantes
5. Presentacin por pantalla
6. Arrays o matrices
7. Estructuras de control
8. Funciones
9. Manejo de cadenas

Desarrollo de
aplicaciones PHP
para bases de datos
Almera 2007

Lenguajes de Desarrollo.
PHP
Contenidos
1. Introduccin a PHP y caractersticas
2. Variables
3. Operadores
4. Constantes
5. Presentacin por pantalla
6. Arrays o matrices
7. Estructuras de control
8. Funciones
9. Manejo de cadenas

1. Introduccin a PHP y
caractersticas
Introduccin a PHP
PHP (Hypertext PreProcessor)
Lenguaje de scripts, preprocesador de hipertexto, opensource, embebido en pginas HTML, ejecutado en un servidor
remoto y de alto nivel.
<html>
<head>
<title>Ejemplo</title>
</head>
<body>
<?php
echo Hola, mundo; soy un script PHP!;
?>
</body>
</html>

1. Introduccin a PHP y
caractersticas
Caractersticas de PHP

PHP est disponible en el sitio Web oficial de PHP (

http://www.php.net) para su descarga gratuita (open-source)


Se trata de un lenguaje de scripts de cdigo abierto para
servidores
Rendimiento. PHP y ASP. PHP es tan popular en
plataformas Linux como ASP en Windows. PHP soporte
multiplataforma.
Portabilidad. PHP es realmente portable. Cualquier
combinacin de sistema operativo (Microsoft Windows, Mac
OS, Linux, HP-UX, Solaris), servidor Web (Apache y Microsoft
Internet Information Server) y servidor de base de datos
(MySQL, Ingres, Sysbase, Oracle, Informix, Postgres,
Microsoft SQL Server, Unix dbm).

1. Introduccin a PHP y
caractersticas
Sintaxis bsica de PHP
<?php
<?php
...
echo "Esto es una prueba";
?>
?>
<script language=php>
...
<?php echo "Esto es una prueba" ?>
</script>

<?php
echo "Esto es una prueba"; // Comentario de lnea estilo C++
/* Comentario de
varias lneas */
echo "Esto es una prueba";
echo "Prueba Final"; # Comentario estilo shell
?>

Desarrollo de
aplicaciones PHP
para bases de datos
Almera 2007

Lenguajes de Desarrollo.
PHP
Contenidos
1. Introduccin a PHP y caractersticas
2. Variables
3. Operadores
4. Constantes
5. Presentacin por pantalla
6. Arrays o matrices
7. Estructuras de control
8. Funciones
9. Manejo de cadenas

2. Variables
Reglas de nomenclatura y tipos
Variable
s

Deben empezar siempre con un smbolo de


dlar ($)
Pueden empezar con un carcter de
subrayado (_)
No pueden empezar con un carcter
Tipos
numrico
Deben aclarar el fin y la utilidad de s

No es necesario declarar el tipo de una


mismas
variable
Enteros
Booleanos
Arrays

Cadenas
Flotantes
Objetos

2. Variables
Ejemplo de variables de tipo cadena

<?php
echo 'esto es una cadena sencilla';
?>
<?php
$cerveza = 'Heineken';
echo "El sabor de varias $cerveza's es excelente \n";
// funciona, "'" no es un carcter vlido para nombres d
// variables
echo "Tmate algunas $cervezas\n";
// no funciona, 's' es un carcter vlido para nombres d
// variables
echo "Tmate algunas ${cerveza}s\n"; // funciona
echo "Tmate algunas {$cerveza}s\n"; // funciona
?>

2. Variables
Variables superglobales

Pasar informacin almacenada en el servidor Web a los programa


<?php
que estn
esperando esta informacin exterior. Estas variables
$a = 1;la informacin relacionada con el servidor,
almacenan
$b = 2;de acceso y entrada el sistema
informacin
function Suma()
$GLOBALS. Contiene una referencia a cada variable disponible en el espectro de las
{
variables del script
$GLOBALS["b"]
$GLOBALS["a"]
+
$_SERVER.
Variables definidas=
por
el servidor Web o directamente
relacionadas
$GLOBALS["b"];
con el entorno
en donde se est ejecutando el script
$_GET. Variables
proporcionadas al script a travs del mtodo HTTP GET
}

$_POST. Variables proporcionadas al script a travs del mtodo HTTP POST


$_COOKIE. Variables proporcionadas al script a travs del mtodo HTTP cookies
S_FILES. Variables proporcionadas al script por medio de la subida de archivos va H
Suma();
$_ENV. Variables proporcionadas al script a travs del entorno
echo $b;
$_REQUEST. Variables proporcionadas al script a travs de cualquier mecanismo
?>del usuario y por lo tanto no se puede confiar en ellas
de entrada
$_SESSION. Variables registradas en la sesin del script

Desarrollo de
aplicaciones PHP
para bases de datos
Almera 2007

Lenguajes de Desarrollo.
PHP
Contenidos
1. Introduccin a PHP y caractersticas
2. Variables
3. Operadores
4. Constantes
5. Presentacin por pantalla
6. Arrays o matrices
7. Estructuras de control
8. Funciones
9. Manejo de cadenas

3. Operadores
Operadores aritmticos
Ejemplo

Nombre

Resultado

$a + $b

Suma

Suma de $a y $b

$a - $b

Resta

Diferencia entre $a y $b

$a * $b

Multiplicacin

Producto de $a y $b

$a / $b

Divisin

Cociente de $a y $b

$a % $b

Mdulo

Resto de $a dividido por


$b

3. Operadores
Operadores de comparacin
Ejemplo

Nombre

Resultado

$a = = $b

Igual

TRUE si $a es igual a $b

$a = = = $b

Idntico

TRUE si $a es igual a $b, y son del mismo


tipo.(Slo en PHP 4)

$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 idnticos

TRUE si $a no es igual a $b, o si no son


del mismo tipo. (Slo en PHP 4)

$a < $b

Menor que

TRUE si $a es estrictamente 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

3. Operadores
Operadores de incremento / decremento
Ejemplo
++$a
$a++
--$a
$a--

<?php
Nombre
Resultado
echo "<h3>Postincremento</h3>";
$a = 5;
Pre-incremento
Incrementa $a en uno, y
echo "Debe ser 5: " . $a++ . "<br />\n";
luego devuelve $a
echo "Debe ser 6: " . $a . "<br />\n";
echo "<h3>Preincremento</h3>";
Post-incremento
Devuelve $a, y luego
$a = 5;
incrementa $a en uno
echo "Debe ser 6: " . ++$a . "<br />\n";
Pre-decremento
Decrementa
echo "Debe ser 6: " . $a
. "<br />\n"; $a en uno,
luego devuelve $a
echo "<h3>Postdecremento</h3>";
$a = 5;
Post-decremento
Devuelve $a, luego
echo "Debe ser 5: " . $a-- . "<br />\n";
echo "Debe ser 4: " . $adecrementa
. "<br />\n"; $a en uno
echo "<h3>Predecremento</h3>";
$a = 5;
echo "Debe ser 4: " . --$a . "<br />\n";
echo "Debe ser 4: " . $a . "<br />\n";
?>

3. Operadores
Operadores de lgica
Ejemplo

Nombre

Resultado

$a and $b

TRUE si tanto $a como $b son


TRUE

$a or $b

TRUE si cualquiera de $a o $b
es TRUE

$a xor $b

O exclusivo
(Xor)

TRUE si $a o $b es TRUE, pero


no ambos

!$a

No

TRUE si $a no es TRUE

TRUE si tanto $a como $b son


TRUE

TRUE si cualquiera de $a o $b
es TRUE

$a && $b
$a || $b

3. Operadores
Operadores de cadenas
Ejemplo

Nombre

Resultado

. (punto)

Operador de
concatenacin

Permite unir dos expresiones


formando una nueva cadena
de caracteres

.=

Operador de
concatenacin
y asignacin

Une la expresin de la
derecha con la de la
izquierda del operador

<?php
$a = "Antonio;Hola ";
$b = $a . "Mundo!"; // ahora $b contiene "Antonio;Hola
Mundo!"

$a = "Antonio;Hola ";
$a .= "Mundo!"; // ahora $a contiene "Antonio;Hola Mundo

Desarrollo de
aplicaciones PHP
para bases de datos
Almera 2007

Lenguajes de Desarrollo.
PHP
Contenidos
1. Introduccin a PHP y caractersticas
2. Variables
3. Operadores
4. Constantes
5. Presentacin por pantalla
6. Arrays o matrices
7. Estructuras de control
8. Funciones
9. Manejo de cadenas

4. Constantes
Definicin de constantes
<?PHP
define("CONSTANTE","Este valor no se puede cambiar");
echo CONSTANTE;
// Devuelve Este valor no se puede cambiar
echo $CONSTANTE;
// No devuelve nada, $CONSTANTE no tiene ningun valor
?>

Constantes predefinidas

__FILE__. Almacena el nombre del archivo que est siendo analizado


__LINE__. Recupera el nmero total de lneas hasta la aparicin de la constante
en el archivo actual que estamos analizando
TRUE. Representa el valor verdadero
FALSE. Representa el valor falso
NULL. Representa el valor nulo

Desarrollo de
aplicaciones PHP
para bases de datos
Almera 2007

Lenguajes de Desarrollo.
PHP
Contenidos
1. Introduccin a PHP y caractersticas
2. Variables
3. Operadores
4. Constantes
5. Presentacin por pantalla
6. Arrays o matrices
7. Estructuras de control
8. Funciones
9. Manejo de cadenas

5. Presentacin por pantalla


Funcin echo
echo (string arg1 [, string argn...])
<?PHP
$cadena = "Hola Mundo";
echo "Hola Mundo";
echo "Esto se extiende por varias lneas. Los saltos de
lnea
tambin se envan";
echo "Esto se extiende \n por varias lneas. Los saltos
de
lnea \n
tambin se envan\n";
echo $cadena . "Cmo estis? \n";
/* Uso de variable con el operador de concatenacin de
cadenas */

5. Presentacin por pantalla


Funcin print
print (string arg)
<?PHP
$cadena = "Hola Mundo";
print "Hola Mundo";
print "Esto se extiende por varias lneas. Los saltos de lnea
tambin se envan";
print "Esto se extiende \n por varias lneas. Los saltos de
lnea \n
tambin se envan\n";
print $cadena . "Cmo estis? \n";
/* Uso de variable con el operador de concatenacin de
cadenas */
?>

5. Presentacin por pantalla


Funcin sprintf
string sprintf (string formato [,mixed args])

<?PHP
$anno = 1990;
$mes = 4;
$dia = 30;
$fechaiso = sprintf ("%04d-%02d-%02d", $anno,
$mes, $dia);
<?PHP
/* $fechaiso = 1990-04-30 */$pelas1 = 68.75;
?>
$pelas2 = 54.35;

$pelas = $pelas1 + $pelas2;


// echo $pelas mostrar "123.1";
$formateado = sprintf ("%01.2f", $pelas)
// echo $formateado mostrar "123.10"
?>

5. Presentacin por pantalla


Funcin printf
int printf ( string formato [, mixed args])
<?PHP
$anno = 1990;
$mes = 4;
$dia = 30;
printf ("%04d-%02d-%02d", $anno, $mes, $dia);
?>
<?PHP
$pelas1 = 68.75;
$pelas2 = 54.35;
$pelas = $pelas1 + $pelas2;
printf ("%01.2f", $pelas);
?>

5. Presentacin por pantalla


Funcin print_r
bool print_r ( mixed expresion [, bool devolver])
<?php
$a = array ('a' => 'manzana', 'b' => 'banano', 'c' => array
('x', 'y','z'));
Array
print_r ($a);
(
?>
[a] =>
manzana
[b] => banano
[c] => Array
(
[0] => x
[1] => y
[2] => z
)

Desarrollo de
aplicaciones PHP
para bases de datos
Almera 2007

Lenguajes de Desarrollo.
PHP
Contenidos
1. Introduccin a PHP y caractersticas
2. Variables
3. Operadores
4. Constantes
5. Presentacin por pantalla
6. Arrays o matrices
7. Estructuras de control
8. Funciones
9. Manejo de cadenas

6. Arrays o matrices
Inicializacin de arrays
$Estudiante[0] = Antonio Becerra;
$Estudiante[1] = Manolo Torres;
<?php
array( [clave =>] valor
$matriz = array("unamatriz" =>
, ...
array(6 => 5, 13 => 9, "a" =>
)
42));
// clave puede ser un integer o string
echo $matriz["unamatriz"][6]; //
// valor puede ser cualquier valor
5
echo $matriz["unamatriz"]
<?php
[13];
// 9true);
$matriz = array("foo" => "bar",
12 =>
echo $matriz["unamatriz"]
echo $matriz["foo"]; // bar
["a"]; // 42
echo $matriz[12]; // 1
?>
?>

6. Arrays o matrices
Manejo de arrays

Funcin unset() permite eliminar la definicin de claves de un ar


<?php
$a = array(1 => 'uno', 2 => 'dos', 3 => 'tres');
unset($a[2]);
/* producir una matriz definida como
$a = array(1 => 'uno', 3 => 'tres');
y NO
$a = array(1 => 'uno', 2 =>'tres');
*/
print_r($a);
?>

Funcin count() determina el tamao o nmero de elementos de u

6. Arrays o matrices
Manejo de arrays

Funcin array_slice() permite obtener una parte de un array

<?php
$a = array(1 => 'uno', 2 => 'dos', 3 => 'tres',
4 => 'cuatro', 5 => 'cinco', 6 => 'seis', 7 => 'siete');
$b = array_slice($a,4);
print_r($a);
print_r($b);
?> <?PHP
Funcin array_unique()
una "naranja",
matriz de entrada
y devuelv
$frutas = array toma
("limn",
"pltano",
"manz
una nuevasort
matriz
sin valores repetidos
($frutas);
foreach ($frutas as $valor)
Funcin sort() permite
clasificar un array segn orden numrico y a
{
echo "frutas[$clave] = ". $valor."\n";
}

Desarrollo de
aplicaciones PHP
para bases de datos
Almera 2007

Lenguajes de Desarrollo.
PHP
Contenidos
1. Introduccin a PHP y caractersticas
2. Variables
3. Operadores
4. Constantes
5. Presentacin por pantalla
6. Arrays o matrices
7. Estructuras de control
8. Funciones
9. Manejo de cadenas

7. Estructuras de control
Sentencias condicionales (if-else)
if
(expresion)
sentencia;

if (expresion)
{
sentencia;
}

<?PHP
$a=5;
$b=3;
if ($a > $b)
{
echo "a es mayor que b\n";
$b = $a;
echo "Ahora el valor de b es " . $b;
}
?>

<?PHP
$edad=19;
if ($edad < 18)
echo "No puedes entrar porque eres menor de edad\n";
else echo "Si puedes entrar porque eres mayor de edad\n";
?>

7. Estructuras de control
switch
(variable)
{
case valor1:

Sentencias condicionales (elseif-switch)

<?PHP
$a = 2;
sentencia;
$b = 3;
sentencia;
if ($a > $b)
case valor2:
{
echo "a es mayor que b";
sentencia;
}
elseif($a < $b)
sentencia;
{
[...]
echo "a es menor que b"; default:
}
sentencia;
?>
sentencia;
}

<?PHP
$valor = "primero";
switch ($valor)
{
case "primero":
echo "Estamos
break;
case "segundo":
echo "Estamos
break;
case "tercero":
echo "Estamos
break;
case "cuarto":
echo "Estamos
break;
}
?>

en el primer caso \n"

en el segundo caso \

en el tercer caso \n";

en el cuarto caso \n"

7. Estructuras de control

while
(expresion)
sentencia;

while
(expresion)
{
sentencia;
sentencia;
}

while
(expresion):
sentencia;
sentencia;
endwhile;

Bucles condicionales (while)


<?PHP
<?PHP
$i = 1;
$i = 1;
while ($i <= 10)
while ($i <= 10):
{
print $i . "\n";
print $i . "\n";
$i++;
$i++;
endwhile;
}
?>
?>
<?PHP
$i = 5;
while ($i <= 10)
{
print $i . "\n";
}
?>

7. Estructuras de control
Bucles condicionales (do while)

do
{
sentencia;
sentencia;
while
(expresion);

<?PHP
$i = 1;
do
{
print $i . "\n";
$i++;
} while($i<=10);
?>

<?PHP
$i = 0;
do
{
print $i . "\n";
$i++;
} while($i > 1);
?>

7. Estructuras de control
Bucles condicionales (for)
<?PHP
for (expresion1; expresion2; expresion3)
for ($i=1; $i<=10; $i++)
sentencia;
print $i;

for ($i=1; ;$i++)


for (expresion1; expresion2; expresion3)
{
<?PHP
{
if ($i>10)
$i=1;
sentencia;
break;
for (;;)
sentencia;
print $i;
{
}
if ($i > 10)
}
{

break;
for (expresion1; expresion2; expresion3):
}
sentencia;
print $i;
sentencia;
$i++;
endfor;
}
?>

7. Estructuras de control
Bucles condicionales (foreach)
foreach (expresionarray as $valor) sentencia;

foreach (expresionarray as $clave => $valor) sentencia;

<?PHP
/* Ejemplo 2. Valor con clave impresa
/* Ejemplo 1. Slo valor */
$a = array(1,2,3,17);
$a = array(1,2,3,17);
$i=0;
foreach ($a as $valor)
foreach ($a as $valor)
{
{
print "El valor actual de \$a: print "\$a[$i] => $valor \n";
$valor \n";
$i++;
}
}

7. Estructuras de control
Bucles condicionales (foreach)

/* Ejemplo 3. Clave y valor */ /* Ejemplo 4. matriz multi-dimensiona


$a[0][0] = "a";
$a = array(
$a[0][1] = "b";
"uno" => 1,
$a[1][0] = "y";
"dos" => 2,
$a[1][1] = "z";
"tres" => 3,
foreach($a as $v1) {
"diecisiete" => 17);
foreach ($a as $clave => $valor) foreach ($v1 as $v2) {
print "$v2\n";
{
print "\$a[$clave] => $valor \n"; }
}
}
/* Ejemplo 5. Matriz dinmica */
foreach(array(1, 2, 3, 4, 5) as $v
print "$v\n";
}
?>

7. Estructuras de control
Sentencia include()

La sentencia include() incluye y evala el archivo especificad


<?php
vars.php
function foo()
<?php
{
$color = 'verde';
global $color;
$fruta = 'manzana';
include 'vars.php';
?>
echo "Una $fruta $color";
test.php
}
<?php
foo();
// Una manzana verde
echo "Una $fruta $color"; // Una echo "Una $fruta $color"; // Una ve
include 'vars.php';
?>
echo "Una $fruta $color"; // Una manzana verde
?>

Desarrollo de
aplicaciones PHP
para bases de datos
Almera 2007

Lenguajes de Desarrollo.
PHP
Contenidos
1. Introduccin a PHP y caractersticas
2. Variables
3. Operadores
4. Constantes
5. Presentacin por pantalla
6. Arrays o matrices
7. Estructuras de control
8. Funciones
9. Manejo de cadenas

8. Funciones
Definicin de funciones
function nombre_funcin ($arg_1, $arg_2, ..., $arg_n)
{
cdigo
}

Ejemplos de funciones

<?php
$crearfuncion = true;
if ($crearfuncion) funcion();
bar();
function bar()
if ($crearfuncion) {
{
function funcion ()
echo "Existe inmediatamente
{
cuando el programa se
echo "No existo hasta que
inicia.\n";
el programa me alcance.\n";
}
}
?>
}

8. Funciones
Paso de parmetros a funciones

Paso de parmetros por valor (comportamiento por defecto


Paso de parmetros por referencia
Paso de parmetros por defecto

Paso de parmetros por referencia


<?php
function add_cadena($str)
function funcion_llamada(&$numero)
{
{
$str .= ' y algo ms.';
$numero = $numero +1;
}
echo $numero;
$cadena = 'Esto es una
}
cadena, ';
$num=10;
add_cadena(&$cadena);
funcion_llamada($num);
echo $cadena; /* 'Esto es
echo $num;
una cadena, y algo ms.*/

8. Funciones
Paso de parmetros a funciones

Paso de parmetros por valor (comportamiento por defecto


Paso de parmetros por referencia
Paso de parmetros por defecto

Paso de parmetros por defecto


<?php
function hacercafe($tipo = "cappucino")
{
return "Hacer una taza de $tipo.\n";
}
echo hacercafe();
Hacer una taza de cappucino.
echo hacercafe("espresso");
Hacer una taza de espresso.
?>

8. Funciones
Retorno de valores

<?php
function cuadrado($num)
{
return $num * $num;
}
echo cuadrado(4); // saca '16'.
?>

<?php
function small_numbers()
{
return array (0, 1, 2);
}
$a;
$a = small_numbers();
print_r($a);
?>

Desarrollo de
aplicaciones PHP
para bases de datos
Almera 2007

Lenguajes de Desarrollo.
PHP
Contenidos
1. Introduccin a PHP y caractersticas
2. Variables
3. Operadores
4. Constantes
5. Presentacin por pantalla
6. Arrays o matrices
7. Estructuras de control
8. Funciones
9. Manejo de cadenas

9. Manejo de cadenas
Funcin strcmp()
int strcmp ( string cad1, string cad2)

Funcin strcasecmp()
int strcasecmp ( string cad1, string cad2)
<?PHP
$var1 = "Hola";
$var2 = "hola";
if (!strcasecmp ($var1, $var2)) {
echo '$var1 es igual a $var2 en una comparacin sin
tener
en cuenta ' . 'maysculas o minsculas';
}
?>

9. Manejo de cadenas
Funcin strlen()
int strlen ( string cad)

Funcin str_replace()

string str_replace ( string aguja, string cadena, string p


<?PHP
$bodytag =
str_replace ("%cuerpo%", "negro", "<body text=%cuerpo
%>");
echo $bodytag;
?>

9. Manejo de cadenas
Funcin strpos()
int strpos ( string cadena, string subcadena
[, int desplazamiento])

Funcin strtolower()
string strtolower ( string cadena)
<?PHP
$cad = "Mara Tena Un Corderito al que QUERA
Mucho";
$cad = strtolower($cad);
print $cad; # mara tena un corderito al que quera
mucho
?>

9. Manejo de cadenas
Funcin strtoupper()
string strtoupper ( string cadena)

<?PHP
$cad = "Mara Tena Un Corderito al que QUERA Mucho";
$cad = strtoupper($cad);
print $cad; # MARA TENA UN CORDERITO AL QUE QUERA
MUCHO
?>
Funcin substr()

string substr ( string cadena, int inicio [, int longitud]


<?PHP
$resto = substr ("abcdef", 1); // devuelve "bcdef"
echo $resto . "\n";
$resto = substr ("abcdef", 1, 3); // devuelve "bcd"
echo $resto;
?>

9. Manejo de cadenas
Funcin strstr()
string strstr ( string cadena, string subcadena)
<?PHP
$email = 'sterling@designmultimedia.com';
$dominio = strstr ($email, '@');
print $dominio; // imprime
@designmultimedia.com
?>
<?PHP
$email =
'sterlingdesignmultimedia.com';
If (!strstr($email,@)
echo La direccin $email no es
correcta;
?>

Desarrollo de aplicaciones
PHP para bases de datos
Almera 2007

Lenguajes de Desarrollo.
PHP
Antonio Becerra Tern
abecerra@ual.es
Departamento de Lenguajes y Computacin
Universidad de Almera