Lenguajes de Desarrollo. PHP

Download Report

Transcript Lenguajes de Desarrollo. PHP

Desarrollo de
aplicaciones PHP para
bases de datos
Almería 2007
Lenguajes de Desarrollo. PHP
Antonio Becerra Terón
[email protected]
Departamento de Lenguajes y Computación
Universidad de Almería
Desarrollo de
aplicaciones PHP para
bases de datos
Almería 2007
Lenguajes de Desarrollo. PHP
Contenidos
1. Introducción a PHP y características
2. Variables
3. Operadores
4. Constantes
5. Presentación por pantalla
6. Arrays o matrices
7. Estructuras de control
8. Funciones
9. Manejo de cadenas
Desarrollo de
aplicaciones PHP para
bases de datos
Almería 2007
Lenguajes de Desarrollo. PHP
Contenidos
1. Introducción a PHP y características
2. Variables
3. Operadores
4. Constantes
5. Presentación por pantalla
6. Arrays o matrices
7. Estructuras de control
8. Funciones
9. Manejo de cadenas
1. Introducción a PHP y
características
Introducción a PHP
PHP (Hypertext PreProcessor)
Lenguaje de scripts, preprocesador de hipertexto, open-source,
embebido en páginas 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. Introducción a PHP y
características
Características 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 código 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 combinación 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. Introducción a PHP y
características
Sintaxis básica de PHP
<?php
...
?>
<script language=”php”>
...
</script>
<?php
echo "Esto es una prueba";
?>
<?php echo "Esto es una prueba" ?>
<?php
echo "Esto es una prueba"; // Comentario de línea estilo C++
/* Comentario de
varias líneas */
echo "Esto es una prueba";
echo "Prueba Final"; # Comentario estilo shell
?>
Desarrollo de
aplicaciones PHP para
bases de datos
Almería 2007
Lenguajes de Desarrollo. PHP
Contenidos
1. Introducción a PHP y características
2. Variables
3. Operadores
4. Constantes
5. Presentación por pantalla
6. Arrays o matrices
7. Estructuras de control
8. Funciones
9. Manejo de cadenas
2. Variables
Reglas de nomenclatura y tipos
Variables
• Deben empezar siempre con un símbolo de dólar ($)
• Pueden empezar con un carácter de subrayado (_)
• No pueden empezar con un carácter numérico
• Deben aclarar el fin y la utilidad de sí mismas
Tipos
• No es necesario declarar el tipo de una 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 carácter válido para nombres de
// variables
echo "Tómate algunas $cervezas\n";
// no funciona, 's' es un carácter válido para nombres de
// variables
echo "Tómate algunas ${cerveza}s\n"; // funciona
echo "Tómate algunas {$cerveza}s\n"; // funciona
?>
2. Variables
Variables superglobales
Pasar información almacenada en el servidor Web a los programas
que están esperando esta información exterior. Estas variables
<?php
almacenan la información relacionada con el servidor,
$a = 1;
información de acceso y entrada el sistema
$b = 2;
$GLOBALS.
Contiene
una referencia a cada variable disponible en el espectro de las
function
Suma()
variables del
{ script
$_SERVER. $GLOBALS["b"]
Variables definidas por
el servidor Web o directamente
relacionadas
= $GLOBALS["a"]
+ $GLOBALS["b"];
con el entorno en donde se está ejecutando el script
}
$_GET. Variables proporcionadas al script a través del método HTTP GET
$_POST. Variables proporcionadas al script a través del método HTTP POST
$_COOKIE. Variables proporcionadas al script a través del método HTTP cookies
S_FILES. Suma();
Variables proporcionadas al script por medio de la subida de archivos vía HTTP
$_ENV. Variables
proporcionadas al script a través del entorno
echo $b;
$_REQUEST.
?> Variables proporcionadas al script a través de cualquier mecanismo
de entrada del usuario y por lo tanto no se puede confiar en ellas
$_SESSION. Variables registradas en la sesión del script
Desarrollo de
aplicaciones PHP para
bases de datos
Almería 2007
Lenguajes de Desarrollo. PHP
Contenidos
1. Introducción a PHP y características
2. Variables
3. Operadores
4. Constantes
5. Presentación por pantalla
6. Arrays o matrices
7. Estructuras de control
8. Funciones
9. Manejo de cadenas
3. Operadores
Operadores aritméticos
Ejemplo
Nombre
Resultado
$a + $b
Suma
Suma de $a y $b
$a - $b
Resta
Diferencia entre $a y $b
$a * $b
Multiplicación
Producto de $a y $b
$a / $b
División
Cociente de $a y $b
$a % $b
Módulo
Resto de $a dividido por $b
3. Operadores
Operadores de comparación
Ejemplo
Nombre
Resultado
$a = = $b
Igual
TRUE si $a es igual a $b
$a = = = $b
Idéntico
TRUE si $a es igual a $b, y son del mismo
tipo.(Sólo 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 idénticos
TRUE si $a no es igual a $b, o si no son del
mismo tipo. (Sólo 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
echo
"<h3>Postincremento</h3>"; Resultado
$a = 5;
Pre-incremento
Incrementa $a en uno, y luego
echo "Debe ser 5: " . $a++ . "<br />\n";
devuelve $a
echo "Debe ser 6: " . $a . "<br />\n";
echo "<h3>Preincremento</h3>";
Post-incremento
Devuelve $a, y luego incrementa
$a = 5;
$a en uno
echo "Debe ser 6: " . ++$a . "<br />\n";
Pre-decremento
$a en uno, luego
echo "Debe ser 6: " . $a Decrementa
. "<br />\n";
echo "<h3>Postdecremento</h3>";devuelve $a
$a = 5;
Post-decremento
Devuelve $a, luego decrementa
echo "Debe ser 5: " . $a-- . "<br />\n";
echo "Debe ser 4: " . $a . "<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 lógica
Ejemplo
Nombre
Resultado
$a and $b
Y
TRUE si tanto $a como $b son
TRUE
$a or $b
O
TRUE si cualquiera de $a o $b es
TRUE
$a xor $b
!$a
$a && $b
$a || $b
O exclusivo (Xor)
TRUE si $a o $b es TRUE, pero no
ambos
No
TRUE si $a no es TRUE
Y
TRUE si tanto $a como $b son
TRUE
O
TRUE si cualquiera de $a o $b es
TRUE
3. Operadores
Operadores de cadenas
Ejemplo
Nombre
Resultado
. (punto)
Operador de
concatenación
Permite unir dos expresiones
formando una nueva cadena de
caracteres
.=
Operador de
concatenación y
asignación
Une la expresión 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
Almería 2007
Lenguajes de Desarrollo. PHP
Contenidos
1. Introducción a PHP y características
2. Variables
3. Operadores
4. Constantes
5. Presentación por pantalla
6. Arrays o matrices
7. Estructuras de control
8. Funciones
9. Manejo de cadenas
4. Constantes
Definición 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 número total de líneas hasta la aparición 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
Almería 2007
Lenguajes de Desarrollo. PHP
Contenidos
1. Introducción a PHP y características
2. Variables
3. Operadores
4. Constantes
5. Presentación por pantalla
6. Arrays o matrices
7. Estructuras de control
8. Funciones
9. Manejo de cadenas
5. Presentación por pantalla
Función echo
echo (string arg1 [, string argn...])
<?PHP
$cadena = "Hola Mundo";
echo "Hola Mundo";
echo "Esto se extiende por varias líneas. Los saltos de línea
también se envían";
echo "Esto se extiende \n por varias líneas. Los saltos de
línea \n
también se envían\n";
echo $cadena . "¿Cómo estáis? \n";
/* Uso de variable con el operador de concatenación de
cadenas */
?>
5. Presentación por pantalla
Función print
print (string arg)
<?PHP
$cadena = "Hola Mundo";
print "Hola Mundo";
print "Esto se extiende por varias líneas. Los saltos de línea
también se envían";
print "Esto se extiende \n por varias líneas. Los saltos de
línea \n
también se envían\n";
print $cadena . "¿Cómo estáis? \n";
/* Uso de variable con el operador de concatenación de
cadenas */
?>
5. Presentación por pantalla
Función sprintf
string sprintf (string formato [,mixed args])
<?PHP
$anno = 1990;
$mes = 4;
$dia = 30;
$fechaiso = sprintf ("%04d-%02d-%02d", $anno, $mes, $dia);
/* $fechaiso = 1990-04-30 */
<?PHP
?>
$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. Presentación por pantalla
Función 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. Presentación por pantalla
Función print_r
bool print_r ( mixed expresion [, bool devolver])
<?php
$a = array ('a' => 'manzana', 'b' => 'banano', 'c' => array ('x', 'y','z'));
print_r ($a);
Array
?>
(
[a] => manzana
[b] => banano
[c] => Array
(
[0] => x
[1] => y
[2] => z
)
)
Desarrollo de
aplicaciones PHP para
bases de datos
Almería 2007
Lenguajes de Desarrollo. PHP
Contenidos
1. Introducción a PHP y características
2. Variables
3. Operadores
4. Constantes
5. Presentación por pantalla
6. Arrays o matrices
7. Estructuras de control
8. Funciones
9. Manejo de cadenas
6. Arrays o matrices
Inicialización de arrays
$Estudiante[0] = “Antonio Becerra”;
$Estudiante[1] = “Manolo Torres”;
<?php
array( [clave =>] valor
$matriz = array("unamatriz" =>
, ...
array(6 => 5, 13 => 9, "a" => 42));
)
echo $matriz["unamatriz"][6]; // 5
// clave puede ser un integer o string echo $matriz["unamatriz"][13]; // 9
// valor puede ser cualquier valor
echo $matriz["unamatriz"]["a"]; // 42
?>
<?php
$matriz = array("foo" => "bar", 12 => true);
echo $matriz["foo"]; // bar
echo $matriz[12]; // 1
?>
6. Arrays o matrices
Manejo de arrays
Función unset() permite eliminar la definición de claves de un array
<?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);
?>
Función count() determina el tamaño o número de elementos de un array
6. Arrays o matrices
Manejo de arrays
Función 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
Función array_unique()
una matriz
de entrada
y devuelve
$frutas = arraytoma
("limón",
"naranja",
"plátano",
"manzana");
una nueva matriz
sin valores repetidos
sort ($frutas);
foreach ($frutas as $valor)
Función sort() permite
clasificar un array según orden numérico y alfabético
{
echo "frutas[$clave] = ". $valor."\n";
}
Desarrollo de
aplicaciones PHP para
bases de datos
Almería 2007
Lenguajes de Desarrollo. PHP
Contenidos
1. Introducción a PHP y características
2. Variables
3. Operadores
4. Constantes
5. Presentación 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
Sentencias condicionales (elseif-switch)
<?PHP
$a = 2;
$b = 3;
if ($a > $b)
{
echo "a es mayor que b";
}
elseif($a < $b)
{
echo "a es menor que b";
}
?>
switch (variable)
{
case valor1:
sentencia;
sentencia;
case valor2:
sentencia;
sentencia;
[...]
default:
sentencia;
sentencia;
}
<?PHP
$valor = "primero";
switch ($valor)
{
case "primero":
echo "Estamos en el primer caso \n";
break;
case "segundo":
echo "Estamos en el segundo caso \n";
break;
case "tercero":
echo "Estamos en el tercer caso \n";
break;
case "cuarto":
echo "Estamos en el cuarto caso \n";
break;
}
?>
7. Estructuras de control
Bucles condicionales (while)
while (expresion)
sentencia;
ó
while (expresion)
{
sentencia;
sentencia;
}
ó
while (expresion):
sentencia;
sentencia;
endwhile;
<?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)
for (expresion1; expresion2; expresion3)
sentencia;
ó
for (expresion1; expresion2; expresion3)
{
sentencia;
sentencia;
}
ó
for (expresion1; expresion2; expresion3):
sentencia;
sentencia;
endfor;
<?PHP
for ($i=1; $i<=10; $i++)
print $i;
for ($i=1; ;$i++)
{
<?PHP
if ($i>10)
$i=1;
break;
for (;;)
print $i;
{
}
if ($i > 10)
{
break;
}
print $i;
$i++;
}
?>
7. Estructuras de control
Bucles condicionales (foreach)
foreach (expresionarray as $valor) sentencia;
ó
foreach (expresionarray as $clave => $valor) sentencia;
<?PHP
/* Ejemplo 1. Sólo valor */
$a = array(1,2,3,17);
foreach ($a as $valor)
{
print "El valor actual de \$a:
$valor \n";
}
/* Ejemplo 2. Valor con clave impresa */
$a = array(1,2,3,17);
$i=0;
foreach ($a as $valor)
{
print "\$a[$i] => $valor \n";
$i++;
}
7. Estructuras de control
Bucles condicionales (foreach)
/* Ejemplo 3. Clave y valor */
$a = array(
"uno" => 1,
"dos" => 2,
"tres" => 3,
"diecisiete" => 17);
foreach ($a as $clave => $valor)
{
print "\$a[$clave] => $valor \n";
}
/* Ejemplo 4. matriz multi-dimensional */
$a[0][0] = "a";
$a[0][1] = "b";
$a[1][0] = "y";
$a[1][1] = "z";
foreach($a as $v1) {
foreach ($v1 as $v2) {
print "$v2\n";
}
}
/* Ejemplo 5. Matriz dinámica */
foreach(array(1, 2, 3, 4, 5) as $v) {
print "$v\n";
}
?>
7. Estructuras de control
Sentencia include()
La sentencia include() incluye y evalúa el archivo especificado
<?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 verde
include 'vars.php';
?>
echo "Una $fruta $color"; // Una manzana verde
?>
Desarrollo de
aplicaciones PHP para
bases de datos
Almería 2007
Lenguajes de Desarrollo. PHP
Contenidos
1. Introducción a PHP y características
2. Variables
3. Operadores
4. Constantes
5. Presentación por pantalla
6. Arrays o matrices
7. Estructuras de control
8. Funciones
9. Manejo de cadenas
8. Funciones
Definición de funciones
function nombre_función ($arg_1, $arg_2, ..., $arg_n)
{
código
}
Ejemplos de funciones
<?php
$crearfuncion = true;
bar();
if ($crearfuncion) {
function funcion ()
{
echo "No existo hasta que
el programa me alcance.\n";
}
}
if ($crearfuncion) funcion();
function bar()
{
echo "Existe inmediatamente
cuando el programa se inicia.\n";
}
?>
8. Funciones
Paso de parámetros a funciones
• Paso de parámetros por valor (comportamiento por defecto)
• Paso de parámetros por referencia
• Paso de parámetros por defecto
Paso de parámetros por referencia
<?php
function funcion_llamada(&$numero)
{
$numero = $numero +1;
echo $numero;
}
$num=10;
funcion_llamada($num);
echo $num;
function add_cadena($str)
{
$str .= ' y algo más.';
}
$cadena = 'Esto es una cadena, ';
add_cadena(&$cadena);
echo $cadena; /* 'Esto es una
cadena, y algo más.‘*/
?>
8. Funciones
Paso de parámetros a funciones
• Paso de parámetros por valor (comportamiento por defecto)
• Paso de parámetros por referencia
• Paso de parámetros por defecto
Paso de parámetros 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
Almería 2007
Lenguajes de Desarrollo. PHP
Contenidos
1. Introducción a PHP y características
2. Variables
3. Operadores
4. Constantes
5. Presentación por pantalla
6. Arrays o matrices
7. Estructuras de control
8. Funciones
9. Manejo de cadenas
9. Manejo de cadenas
Función strcmp()
int strcmp ( string cad1, string cad2)
Función strcasecmp()
int strcasecmp ( string cad1, string cad2)
<?PHP
$var1 = "Hola";
$var2 = "hola";
if (!strcasecmp ($var1, $var2)) {
echo '$var1 es igual a $var2 en una comparación sin tener
en cuenta ' . 'mayúsculas o minúsculas';
}
?>
9. Manejo de cadenas
Función strlen()
int strlen ( string cad)
Función str_replace()
string str_replace ( string aguja, string cadena, string pajar)
<?PHP
$bodytag =
str_replace ("%cuerpo%", "negro", "<body text=%cuerpo%>");
echo $bodytag;
?>
9. Manejo de cadenas
Función strpos()
int strpos ( string cadena, string subcadena
[, int desplazamiento])
Función strtolower()
string strtolower ( string cadena)
<?PHP
$cad = "María Tenía Un Corderito al que QUERÍA Mucho";
$cad = strtolower($cad);
print $cad; # maría tenía un corderito al que querÍa mucho
?>
9. Manejo de cadenas
Función strtoupper()
string strtoupper ( string cadena)
<?PHP
$cad = "María Tenía Un Corderito al que QUERÍA Mucho";
$cad = strtoupper($cad);
print $cad; # MARÍA TENÍA UN CORDERITO AL QUE QUERÍA MUCHO
?>
Función 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
Función strstr()
string strstr ( string cadena, string subcadena)
<?PHP
$email = '[email protected]';
$dominio = strstr ($email, '@');
print $dominio; // imprime @designmultimedia.com
?>
<?PHP
$email = 'sterlingdesignmultimedia.com';
If (!strstr($email,’@’)
echo “La dirección $email no es correcta”;
?>
Desarrollo de aplicaciones PHP
para bases de datos
Almería 2007
Lenguajes de Desarrollo. PHP
Antonio Becerra Terón
[email protected]
Departamento de Lenguajes y Computación
Universidad de Almería