PHP
Daniel Morató
Area de Ingeniería Telemática
Departamento de Automática y Computación
Universidad Pública de Navarra
[email protected]
Laboratorio de Interfaces de Redes
http://www.tlm.unavarra.es/asignaturas/lir
¿Qué es PHP?
PHP = “PHP Hypertext Preprocessor”
•
• Lenguaje de scripts para el servidor Web (server-side processing)
• Open Source
•
•
• Con muchas características avanzadas
•
Puede ir en el mismo documento que el código HTML
Simple para el principiante
Soportado en gran número de sistemas operativos: variantes de UNIX (Linux,
HP-UX, Solaris, OpenBSD), Microsoft Windows, Mac OS X
Soporta la mayoría de servidores web: Apache, Microsoft IIS, Personal Web
Server, iPlanet, Oreilly Website Pro server, Caudium, Xitami, OmniHTTPd...
Permite no solo generar HTML sino también imágenes, PDFs, Flash, XML
Soporta un gran número de bases de datos: Orable, mSQL, MySQL, ODBC,
Sybase...
Soporta un gran número de servicios y protocolos: LDAP, IMAP, SNMP,
NNTP, POP3, HTTP...
•
•
•
•
28 Oct
PHP
1/22
1
¿Puede ir en el documento HTML?
• Dentro del documento HTML podemos emplear tags especiales
que indican que lo que va entre ellos es código PHP. Ejemplo:
ejemplo.php
<html>
<head><title>Script de ejemplo</title></head>
<body>
<h1>Pagina simple</h1>
<p>Aqui el codigo HTML
<?php
echo “<p>Y esto sale del codigo PHP”;
?>
<p>Has visto el parrafo anterior?
</body>
</html>
Código PHP
• El servidor reconoce que el fichero puede contener código
PHP generalmente por la extensión del fichero
• El servidor busca en el documento los tags que marcan el
código PHP. Lo ejecuta y si el script quiere escribir texto
(print()) ese texto aparece donde estaba el código PHP al
enviarse el documento (no se cambia el fichero)
28 Oct
PHP
2/22
¿Puede ir en el documento HTML?
• Dentro del documento HTML podemos emplear tags especiales
que indican que lo que va entre ellos es código PHP. Ejemplo:
ejemplo.php
<html>
<head><title>Script de ejemplo</title></head>
<body>
<h1>Pagina simple</h1>
<p>Aqui el codigo HTML
<p>Y esto sale del codigo PHP
<p>Has visto el parrafo anterior?
</body>
</html>
Resultado del PHP
• El servidor reconoce que el fichero puede contener código
PHP generalmente por la extensión del fichero
• El servidor busca en el documento los tags que marcan el
código PHP. Lo ejecuta y si el script quiere escribir texto
(print()) ese texto aparece donde estaba el código PHP al
enviarse el documento (no se cambia el fichero)
28 Oct
PHP
3/22
2
Procesado en servidor
Módulo de procesado
de PHP
Procesar
ù
mipag.php
ùHTML
u otro tipo
Servidor Web
Documento
al cliente
ù
Solicitud del cliente:
http://www.miservidor.com/misfichs/mipag.php
Almacenamiento
28 Oct
PHP
ù
misfichs/mipag.php
Servidor
4/22
Sintaxis
Cómo incluir código PHP en un documento HTML
•
•
•
•
•
El módulo de PHP busca uno de los tags que emplea para reconocer el
comienzo de código PHP
Ejecuta el código hasta encontrar una marca de final de código
Continúa por el documento hasta encontrar otra marca de comienzo
Todo lo que esté fuera de esas marcas queda inalterado
Las formas más adecuadas (siempre disponibles) de marcar el comienzo y
final de código PHP son:
<?php ?>
<script languaje=“php”> </script>
• Las sentencias terminan en ; aunque la última no lo necesita
• Comentarios estilo C++ (/* */ o //) o estilo Shell (#)
•
Se puede “salir de modo PHP” dentro de condiciones, por ejemplo:
<?php if ($expression)
{
?>
<strong>This is true.</strong>
<?php
} else {
?>
<strong>This is false.</strong>
<?php
}
?>
28 Oct
PHP
5/22
3
Variables
• Tipos: boolean, integer, float, string, array, object,
• No hay que declarar las variables
• Se pueden declarar empleando la palabra reservada var (independiente
resource
del tipo):
var $mivariable;
• PHP decide en tiempo de ejecución el tipo que deben tener según el
contexto en que se empleen
• Antes del nombre de la variable hay que poner siempre $
• Su nombre distingue mayúsuclas de minúsculas
• Nombre: '[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*'
• A partir de PHP 4 se puede asignar una variable a otra por valor o por
referencia:
Por valor: $mivar=“Jose”; $mivar=$miotravar;
Por referencia: $tercera=&$mivar;
28 Oct
PHP
6/22
Tipos
– Dos valores posibles: true y false (insensibles a
– Muchos operadores devuelven un valor boolean que se
puede emplear en una estructura de control
• boolean
mayúsculas)
• integer
que en C
– Se pueden representar en base 8, 10 ó 16 de igual forma
– El tamaño en bits depende de la plataforma
– Si se desborda se convierte en un float
– No existe operador de división entera
28 Oct
PHP
7/22
4
– El apóstrofe se hace aparecer escapándolo (\’)
– En su interior no se interpretan variables u otras secuencias escapadas (por ejemplo ignora \n)
– En su interior sí interpreta variables y secuencias escapadas típicas (\n, \t, etc)
– Se puede indicar que todo lo que venga a continuación es una cadena hasta encontrar un cierto
• Dobles comillas (“)
• Heredoc
texto. Ejemplo
echo <<< FIN
Example of strings
panning multiple lines
FIN
Tipos
•
•
float
– Se pueden introducir en formato decimal o mantisa-exponente
– Su tamaño en bits depende de la plataforma
string
– Es una serie de caracteres (bytes)
– No hay límite para su tamaño
– Cadenas literales se pueden expresar mediante:
• Apóstrofes o comas siples (‘)
– El texto funciona como texto entre dobles comillas
– Se puede acceder a un carácter en concreto con $cadena{indice} donde el índice
empieza en 0
28 Oct
PHP
8/22
Tipos
• (...string)
– Se pueden concatenar con el operador .
– Otro
cadena
automáticamente cuando el contexto lo requiere
(por ejemplo en un print())
tipo
se
convierte
a
– Una cadena se convierte automáticamente en el
número que contiene en el comienzo de su texto
cuando el contexto lo requiere
28 Oct
PHP
9/22
5
Tipos
•
array
– En realidad contienen un mapeo entre claves y valores (array
– El mismo array se puede emplear como array asociativo o como
– Los elementos pueden ser de cualquier tipo (incluso otros arrays) y
asociativo)
array indexado
ser de tipos diferentes
– Se crean con array()
array( clave => valor, ...)
ejemplo: $unarray = array(“dia” => 15, 1 => “uno”);
ejemplo: $otro = array(“unarray” => array(0=>14, 4=>15),
“nombre” => “Una tabla”);
– La clave puede ser un entero o un string
– En una asignacion al array, si no se especifica la clave/índice:
• Se emplea como índice el máximo índice entero +1
• Si no hay ningún índice entero se emplea 0
28 Oct
PHP
10/22
Tipos
• (...array)
– En las asignaciones se emplean corchetes para
indicar la clave/índice
$miarray[‘nombre’]=“Daniel”;
– Si el array no existe se crea
– Para eliminar un elemento del array hay que
emplear unset()
unset($miarray[‘nombre’]);
unset($miarray);
28 Oct
PHP
11/22
6
Tipos
•
object
– Tiene que existir una clase para el objeto
– Las clases se definen con class
ejemplo:
class Carro {
var $contenido;
function add_uno($nombre){
$this->contenido[]=$nombre;
}
}
– Las clases soportan herencia (no múltiple) empleando extends.
ejemplo: class OtroCarro extends Carro {}
– Los objetos se crean con new
ejemplo: $micarro=new Carro;
– Se accede a variables o métodos con ->
ejemplo: $micarro->add_uno(“Libro de Stevens”);
– Se puede convertir el objeto en una cadena con serialize() y de
nuevo en un objeto con unserialize() (útil para guardar en fichero)
12/22
PHP
28 Oct
Tipos
• resource
– Contiene una referencia a algún recurso externo
(por ejemplo la conexión a una base de datos)
– Son creados por funciones especiales
• Funciones útiles:
– vardump() : Muestra información sobre una
variable (tipo, contenido), incluyendo la
estructura y contenido de arrays
– print_r() : Muy similar
28 Oct
PHP
13/22
7
Operadores
• Aritméticos: + - * / %
• Asignación: = += -= *= /= %= .=
• Operaciones sobre bits: & | ^ ~ << >>
• Comparación: == === != <> !== < > <= >= ?:
• Control de errores: @
• Ejecución: ``
ejemplo: $listado=`ls -l`;
Incremento/Decremento: ++ -- (prefijos y postfijos)
•
• Lógicos: and or xor ! && ||
• Cadenas: . .=
• Arrays: + (une dos arrays, si hay claves duplicadas se
mantienen los valores del array de la izquierda)
28 Oct
PHP
14/22
Estructuras de control
• if (expresion) {} elseif {} else {}
• while (expresion) {}
• do {} while (expresion);
• for (expre1; expr2; expr3) {}
• foreach Para recorrer arrays
Ejemplo:
$arr = array(“uno” => “one”, “dos” => “two”, “tres” => “three”);
foreach ($arr as $valor) {
echo “Valor: $valor<br>\n”;
}
Ejemplo:
$arr = array(“uno” => “one”, “dos” => “two”, “tres” => “three”);
foreach ($arr as $clave => $valor) {
echo “Clave: $clave Valor: $valor<br>\n”;
}
28 Oct
PHP
15/22
8
Estructuras de control
•
•
•
•
•
break
continue
switch (expresion) { case expresion: }
return : sale de funciones, del script global o de scripts incluidos
include
– Permite “incluir” otro script php en ese lugar (similar a #include en C)
– Al interpretar ese otro fichero empieza en modo HTML asi que si el
contenido es PHP tendremos que marcarlo (<?php)
– Se puede poner dentro de una condición (entonces es obligatorio poner {}).
Ejemplo:
if ($condicion) {
include $pathfichero;
}
•
require : Análogo a include pero ante fallos (no encontrar el fichero)
include da un Warning y require un Fatal Error
28 Oct
PHP
16/22
Funciones
• Ejemplo:
function mifuncion($arg1, $arg2){
echo “Esta es mi funcion y me has pasado $arg1 y $arg2”;
return 33;
}
• Dentro de la función puede aparecer cualquier código válido PHP. Eso
incluye otras funciones, clases, etc.
• No hace falta que la función esté definida antes de la línea donde se
emplee
Comentarios de: PHP (0)
No hay comentarios