Publicado el 24 de Junio del 2017
1.373 visualizaciones desde el 24 de Junio del 2017
137,6 KB
61 paginas
Creado hace 18a (30/03/2007)
Programación en Internet 2006-2007
Departamento de Lenguajes y
Sistemas Informáticos
PHP
Programación en Internet
Curso 2006-2007
Programación en Internet – Curso 2006-2007
Índice (I)
•
Introducción
– Ventajas
– Multiplataforma
• Características del lenguaje
– Sintaxis:
• Variables
• Arrays
• Cadenas de texto
• Constantes
• Operadores
• Sentencias de control
• Funciones
• Funciones y librerías
– Include/Require
– Manejo de ficheros
– Acceso al sistema de ficheros
– Funciones matemáticas y de fechas
DLSI - Universidad de Alicante
1
Programación en Internet 2006-2007
Programación en Internet – Curso 2006-2007
Índice (II)
• Orientación a objetos
• Entorno de desarrollo en Internet
– Variables predefinidas
– Objetos y funciones del entorno
– Tratamiento de formularios
– Tratamiento de sesiones
– Subir ficheros
– Cabeceras HTTP
Programación en Internet – Curso 2006-2007
Índice (y III)
• Acceso a bases de datos
– Conceptos generales
– Acceso a MySQL
– Acceso a ODBC
• Depuración
• Otras funcionalidades
• Bibliografía
DLSI - Universidad de Alicante
2
Programación en Internet 2006-2007
Programación en Internet – Curso 2006-2007
Introducción
• PHP: Hipertext Preprocessor
• Historia:
• Inicio del desarrollo: otoño de 1994
• PHP Versión 1 en primavera 1995
• PHP Versión 2 1995-1997
• PHP Versión 3 1997-2000
• PHP Versión 4 en el segundo trimestre de 2000
• Tecnología de servidor interpretada, el código se
intercala entre el HTML
• Basado en C, C++, Java, Awk, Perl y Bash (shell
script de Unix).
• Tiene características de OO: permite crear clases
y objetos
Programación en Internet – Curso 2006-2007
Ventajas
• Multiplataforma
• Alta velocidad de respuesta (¿el más rápido?)
• Software libre bajo licencia GPL:
– Es gratuito
– El código fuente está disponible
– Y existe el permiso para modificarlo
• Existe una gran cantidad de módulos y añadidos
para complementar y aumentar sus prestaciones
• La curva de aprendizaje es baja, ya que está basado
en lenguajes conocidos y muy comunes
DLSI - Universidad de Alicante
3
Programación en Internet 2006-2007
Programación en Internet – Curso 2006-2007
Multiplataforma
• Funciona sobre diversos sistemas operativos:
• UNIX (todas las variantes)
• Win32 (NT/W95/W98/W2000/XP)
• Mac (WebTen), OS/2, BeOS
• Funciona con distintos servidores web:
• Apache (UNIX, Win32)
• ISAPI (IIS, PWS)
• NSAPI (Netscape iPlanet)
• Java servlet
• AOLServer
• Permite el acceso a más de 20 SGBD:
• Nativo: Oracle, BD2, Informix, MySQL, PostgreSQL, Sybase, dBase
• ODBC: MS-Access, SQL-Server, etc.
Programación en Internet – Curso 2006-2007
Ficheros de PHP
• Los ficheros que contienen código PHP
tienen que tener una de las siguiente
extensiones:
– .php3, para código de la versión 3
– .php4, para código de la versión 4
– .php, genérico y el más utilizado
– .phtml, cada vez menos utilizado
• PHP4 es compatible con PHP3 (a excepción
de unas pocas características)
DLSI - Universidad de Alicante
4
Programación en Internet 2006-2007
Programación en Internet – Curso 2006-2007
Características del lenguaje (I)
• Delimitadores de código de servidor:
<? ... ?>
<?php ... ?>
<script language=“php”>...</script>
<% ... %>, no siempre disponible, según
configuración del intérprete
• Comentarios:
/* Comentario tipo C
multilínea */
// Comentario tipo C++, una sola línea
# Comentario tipo Bash/Perl, una línea
Programación en Internet – Curso 2006-2007
Características del lenguaje (y II)
• Final de instrucción: punto y coma (;)
• Para imprimir cadenas de caracteres:
echo “cadena de texto”;
<?=“cadena de texto”?>
• Mayúsculas y minúsculas:
– Con los nombres de variable, SÍ que importan:
$MiNumero es diferente de $minumero
– Con los nombres de funciones y palabras
reservadas, NO importa:
PRINT() es igual que print()
DLSI - Universidad de Alicante
5
Programación en Internet 2006-2007
Programación en Internet – Curso 2006-2007
Variables (I)
• PHP es un lenguaje débilmente tipado
• No hace falta declarar las variables, se declaran
automáticamente al aparecer por primera vez en el código
fuente
• TODAS LAS VARIABLES LLEVAN EL SÍMBOLO $
DELANTE DE SU NOMBRE:
$var1 = 123;
$var2 = ‘hola mundo’;
• El tipo de las variables es ‘mixed’, similar tipo ‘variant’ en
VBScript
• Sin embargo, hay unos tipos básicos:
– int, integer Enteros. 0NNN en base 8, 0xNN en base 16.
– float, double, real Coma flotante
– array, string, object
Programación en Internet – Curso 2006-2007
Variables (II)
• Ejemplos de tipos:
– Enteros, en decimal, octal o hexadecimal:
– Arrays.
$Var = 123;
– Coma flotante:
$Var = 1.3e4;
$Var[2] = 123;
$Var = “Cadena de texto\n”;
$Var = new oClase();
– Cadenas:
– Objetos:
DLSI - Universidad de Alicante
6
Programación en Internet 2006-2007
Programación en Internet – Curso 2006-2007
Variables (III)
• Una variable puede tener diferentes tipos a lo
largo del tiempo
• Para evitar errores y ambigüedades, PHP realiza
las conversiones de tipo necesarias (casts) a la
hora de operar con variables y contenidos de
tipos diferentes:
$num = 123;
echo $num; //num se transforma en String
• Para realizar una conversión explícita:
$var = (string)123;
• También se puede cambiar el tipo con settype():
$var = 12;
settype($var, double);
Programación en Internet – Curso 2006-2007
Variables (IV)
• Ámbito Según el lugar donde esté
declarada:
– Global a un fichero
– Local a una función
– Local a una clase/objetos (variables de clase o
atributos). Accesibles mediante operador ‘->’
• Para acceder a una variable global desde
una función ‘global’
$mivar = 3;
function mifuncion() {
global $mivar;
echo $mivar;
}
DLSI - Universidad de Alicante
7
Programación en Internet 2006-2007
Programación en Internet – Curso 2006-2007
Variables (y V)
• Se pueden definir ‘alias’ de una variable: dos o
más variables que apuntan a un mismo dato (como
si fueran punteros)
• El operador ‘&’ para obtener las referencias:
• Se emplea unset() para eliminarlas:
$malnom = &$variable;
unset ($malnom);
• Se pueda acceder al contenido de una variable
(v1) a través de otra variable (v2) que almacena el
nombre de la variable (v1) mediante ‘$$’:
$a = 123;
$b = ‘a’;
echo $$b; // 123
Programación en Internet – Curso 2006-2007
Arrays (I)
• Se declaran y acceden los elementos con los
corchetes: [ ]
• La primera componente es la cero
• Los elementos pueden tener distinto tipo en un
mismo vector
• Se puede acceder a un elemento mediante un
índice asociativo (tablas hash)
• Arrays multidimensionales
• Constructor: array()
DLSI - Universidad de Alicante
8
Programación en Internet 2006-2007
Programación en Internet – Curso 2006-2007
Arrays (II)
• Tipos de los elementos:
$vector1[0] = 1;
$vector1[1] = ‘hola’;
$vector1[“nom”] = “juan”;
• Constructor:
$vector2 = array (1, “jorge”, 3);
$vector3 = array(
0 => 1,
1 => “jorge”,
“nom” => “jaime”,
3 => 5 );
// índice => valor
Programación en Internet – Curso 2006-2007
Arrays (III)
• Otra forma:
$a[] = 'a';
$a[] = 'b';
$a[] = 'c';
// equivale a
$a = array('a', 'b', 'c');
DLSI - Universidad de Alicante
9
Programación en Internet 2006-2007
Programación en Internet – Curso 2006-2007
Arrays (IV)
• Un índice puede ser una cadena o un entero
• Cuando el índice es una cadena, no existe el
correspondiente índice entero
• Cuando el índice se omite, automáticamente
se genera un índice empezando desde 0
• Si un índice es un entero, el siguiente índice
generado será el mayor índice entero + 1
• Cuando se definen dos índices idénticos, el
último sobrescribe al primero
Programación en Internet – Curso 2006-2007
Arrays (V)
$firstquarter = array(1 => 'January', 'February',
'March');
print_r($firstquarter);
Genera:
Array ( [1] => January [2] => February [3] =>
March )
Nota: Array que empieza en 1 en vez de 0
DLSI - Universidad de Alicante
10
Programación en Internet 2006-2007
Programación en Internet – Curso 2006-2007
Arrays (VI)
$fruits = array (
"fruits" => array("a" => "orange", "b" => "banana", "c" =>
"apple"),
"numbers" => array(1, 2, 3, 4, 5, 6),
"holes" => array("first", 5 => "second", "third")
);
print_r($fruits);
Genera:
Array (
[fruits] => Array ( [a] => orange [b] => banana [c] =>
apple )
[numbers] => Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4
[4] => 5 [5] => 6 )
[holes] => Array ( [0] => first [5] => second [6] => third
) )
Genera: array multidimensional
Programación en Internet – Curso 2006-2007
Arrays (VII)
$array = array(1, 1, 1, 1, 1, 8 => 1, 4 => 1,
19, 3 => 13);
print_r($array);
Genera:
Array ( [0] => 1 [1] => 1 [2] => 1 [3] => 13 [4]
=> 1 [8] => 1 [9] => 19 )
Genera:
– El valor 13 sobrescribe al anterior de la componente 3
– El valor 19 se aloja en la componente 9, que es la de valor máximo
(8) más 1
DLSI - Universidad de Alicante
11
Programación en Internet 2006-2007
Programación en Internet – Curso 2006-2007
Arrays (VIII)
del vector ‘$array’
• count($array): devuelve el número de elementos
• in_array($elem, $array[, $strict]): busca el
elemento ‘$elem’ dentro del array ‘$array’ y devuelve
cierto o falso según esté o no esté (si $strict vale true,
tiene en cuenta los tipos de los valores)
• Recorrido de un array:
la primera posición
– reset($array): posiciona el puntero que recorre un array en
– current($array): devuelve el elemento actual
– next($array) y prev($array): avanza el puntero hacia
– end($array): posiciona el puntero que recorre un array en la
delante o hacia atrás
última posición
Programación en Internet – Curso 2006-2007
Arrays (IX)
• list($var1, ...): asigna valor a una lista
• each($array): devuelve el par clave/valor
de variables en una sola operación
actual para el array y avanza el cursor
– Devuelve un array de 4 elementos (0, 1, key,
value)
• Otra forma de recorrer un array:
$unarray = array('un
Comentarios de: PHP (0)
No hay comentarios