Download PHP - sistemas operativos

Document related concepts
Transcript
EXPOSICION PHP
(PERSONAL FROM PAGE)
UNIVERSIDAD CATOLICA DE MANIZALES
INGENIERIA TELEMATICA
2004
PHP
(PERSONAL FROM PAGE)
QUE ES PHP?
PHP (acrónimo de PHP: Procesador de Hipertexto) es el
lenguaje que mejor explota las posibilidades de Internet o
realizar paginas html dinámicas, con php es muy sencillo
tratar cadenas de texto o procesar ficheros, generar imágenes
on-the-fly, crear documentos PDF o tratar con documentos
XML, etc. Se puede decir que PHP es un lenguaje de
programación de páginas web del lado del servidor cuyas
características principales son la independencia de plataforma
y su gratuidad.
Un lenguaje del lado del servidor es aquel que se ejecuta en el
servidor web, justo antes de que se envíe la página a través
de Internet al cliente. Las páginas que se ejecutan en el
servidor pueden realizar accesos a bases de datos, conexiones
en red, y otras tareas para crear la página final que verá el
cliente. El cliente solamente recibe una página con el código
HTML resultante de la ejecución de la PHP.
A diferencia de Java o JavaScript que se ejecutan en el
navegador, PHP se ejecuta en el servidor, por eso nos permite
acceder a los recursos que tenga el servidor como por
ejemplo podría ser una base de datos. El programa PHP es
ejecutado en el servidor y el resultado enviado al navegador.
El resultado es normalmente una página HTML pero
igualmente podría ser una pagina WML.
Su licencia es Open Source, corre en múltiples plataformas,
Linux, AIX, *BSD, SCO, casi todos los tipos de Unix, además de
en todas las versiones de Windows 9x, 2000 y NT.
• PHP no es case sensitive (no distingue mayúsculas de
minúsculas), salvo bugs en el tratamiento de objetos.
• En PHP no se declaran las variables y no tienen un tipo fijo,
sino que una misma variable puede almacenar a lo largo de
su vida valores de todo tipo (números, cadenas...).
HISTORIA PHP
PHP fue concebido en otoño de 1994 por Rasmus Lerdorf. La
primera versión disponible para el público surgió a principios
de 1995, fue conocida como "Herramientas para páginas web
personales" (Personal Home Page Tools). Consistían en un
analizador sintáctico muy simple y una serie de utilidades
comunes en las páginas web de entonces, un libro de visitas,
un contador y otras pequeñas cosas.
El analizador sintactico fue reescrito a mediados de 1995 y fue
nombrado PHP/FI versión 2. FI viene de otro programa que
Rasmus había escrito y que procesaba los datos de formularios,
así que combinó las "Herramientas para paginas web
personales“ y el "intérprete de formularios", asi añadió soporte
para mSQL y PHP/FI creció a gran velocidad.
Se estima que a finales de 1996 PHP/FI se estaba usando en al
menos 15.000 páginas web alrededor del mundo. A mediados
de 1997 el desarrollo del proyecto sufrió un profundo cambio,
el analizador sintáctico se reescribió desde el principio por Zeev
Suraski y Andi Gutmans y éste nuevo analizador estableció las
bases para PHP versión 3. Gran cantidad de código de PHP/FI
fue portado a PHP3 y otra gran cantidad fue reescrito desde
cero.
Hoy en día, tanto PHP/FI, PHP3 y PHP4 se distribuyen en un
gran número de productos comerciales tales como el servidor
web "C2's StrongHold" y Redhat Linux.
Actualmente PHP se encuentra en su versión 4, que
utiliza el motor Zend, desarrollado con mayor
meditación para cubrir las necesidades actuales y
solucionar algunos inconvenientes como la rapidez
gracias a que primero se compila y luego se ejecuta,
mientras que antes se ejecutaba mientras se
interpretaba el código, su mayor independencia del
servidor web creando versiones de PHP nativas para
más plataformas y un API más elaborado y con más
funciones.
CARACTERISTICAS PHP
PHP puede hacer cualquier cosa que se pueda hacer con un
script CGI, como procesar la información de formularios,
generar páginas con contenidos dinámicos, o mandar y recibir
cookies.
La característica más potente y destacable de PHP es su soporte
para una gran cantidad de bases de datos. Escribir un interfaz
vía web para una base de datos es una tarea simple con PHP.
Las siguientes bases de datos están soportadas actualmente:
•
•
•
•
•
•
•
•
•
•
•
•
Adabas D
Ingres
Oracle (OCI7 y OCI8)
dBase
InterBase
PostgreSQL
Empress
FrontBase
Solid
FilePro
mSQL
Sybase
•
•
•
•
•
•
IBM DB2
MySQL
Velocis
Informix
ODBC
Unix dbm
PHP también tiene soporte para gran cantidad de estándares de
red: LDAP, Corba, Calc, FTP, IMAP, POP3, NNTP, NIS, SMNP,
HTTP y derivados. También se pueden abrir sockets de red
directos (raw sockets) e interactuar con otros protocolos.
Y además PHP también ofrece:
•
•
•
•
Soporte de Templates dinámicos y caché de templates.
Multiplataforma y multiservidor web
Soporte XML, WDDX, XSLT, DOM
Extensa documentación
• Soporte expresiones regulares (de perl, posix y
propias)
• Generación on-the-fly de Imagenes, Flash y PDF
PHP puede realizar una serie de tareas para el desarrollo de la
web:
*Funciones de correo electrónico
*Gestión de base de datos
*Tratamiento de imágenes
Otras características:
*PHP es un lenguaje de scripts que se ejecuta del lado del
servidor
*Es independiente de la plataforma
*Se escribe directamente dentro del código html de una pagina
*Es rápido, simple y configurable
QUE SE PUEDE HACER CON PHP?
Algunas aplicaciones son:
*Portales
*Administradores de banners
*Clientes de correo
*Foros de discusión
*Sistema de educación en línea
*Chats
*Administradores de bases de datos
*Libros de visitas
*Sistemas de subastas
*Contadores
*Carritos de compras
CONFIGURACION PHP
Abrimos con un editor de texto el archivo php.ini y
verificamos que tenga la siguiente línea:
extension_dir = ./
Aquí le decimos al PHP dónde se encuentran ubicadas las
extensiones de librerías .dll en este caso vemos que deben
encontrarse en el directorio raíz del PHP.
Luego si lo deseamos buscamos la línea
;extension=php_gd.dll
Y le quitamos el ; que tiene al comienzo, así habilitaremos la
librería de manipulación de gráficos dinámicos.
Sólo resta ubicar el archivo php_gd.dll y copiarlo al directorio
raíz del PHP.
Y por último hacemos una copia del archivo php.ini dentro del
directorio Windows que por lo general es C:\Windows
ELEMENTOS PHP
OPERADORES ARITMETICOS
Los operadores son símbolos especiales que se utilizan para
realizar tanto operaciones matemáticas, como de comparación.
Los más utilizados en PHP:
• + Suma varios números 5 + 4 = 9
• - Resta varios números 5 - 4 = 1
• * Realiza una multiplicación 3 * 3 = 9
• / Realiza una división 10/2 = 5
• % Devuelve el residuo de una división 10 % 3 = 1
• ++ Suma 1 $v++ (Agrega 1 a $v)
• -- Resta 1 $ v-- (Resta 1 a $v)
OPERADORES DE COMPARACION
• == Devuelve true si la condición de igualdad se cumple 2
== 2 (Verdadero)
• != Devuelve true sin la condición de igualdad no se cumple 2
!== 2 (Falso)
• < Devuelve true si un número es menor que el otro 2 < 5
(Verdadero)
• > Devuelve true si un número es mayor que el otro 6 > 4
(Verdadero)
• <= Devuelve true si un número es menor o igual que otro 2
<= 5 (Verdadero)
• >= Devuelve true si un número es mayor o igual que otro 6
>= 4 (Verdadero)
OPERADORES LOGICOS
• && Devuelve verdadero cuando ambas condiciones son
verdaderas.
• and Devuelve verdadero cuando ambas condiciones son
verdaderas.
• || Devuelve verdadero cuando al menos una es verdadera.
• OR Devuelve verdadero cuando al menos una es verdadera.
VARIABLES PHP
En PHP no es necesario declarar la variable, es decir, no es
necesario decirle al programa si una variable es una cadena o
un número entero, ya que PHP se encargará de definirla por sí
mismo.
Una variable es un contenedor de información, en el que
podemos meter números enteros, números decimales,
caracteres... el contenido de las variables se puede leer y se
puede cambiar durante la ejecución de una página PHP.
En PHP todas las variables comienzan con el símbolo del dólar $
Existen 2 tipos de variables, las variables locales que solo
pueden ser usadas dentro de funciones y las variables globales
que tienen su ámbito de uso fuera de las funciones, podemos
acceder a una variable global desde una función con la
instrucción global nombre_variable.
CONTANTES PHP
Las constantes son similares a las variables, con la salvedad de
que no llevan el signo dólar delante, y sólo la podemos asignar
una vez. Para definir una constantes usaremos la función define
como por ejemplo:
define ("CONSTANTE", "Hola Mundo");
PHP crea diversas constantes al arrancar, como PHP_VERSION
que contiene la versión de PHP, TRUE que le asigna 1 o FALSE que
le asigna 0.
CLASES DE PHP
Las Clases no son más que una serie de variables y funciones
que describen y actúan sobre algo.
Por ejemplo, vamos a crear la clase automóvil, la cual tendrá
diversas variables, $color, $modelo, $marca, $potencia,
$matricula y habrá una serie de funciones que actuarán sobre la
clase automóvil como Precio(), Acelerar(), Frenar(), Girar()y
Reparar().
Sirven para hacer el código más legible y reutilizable.
FUNCIONES EN PHP
Una Función no es más que un bloque de código al que le
pasamos una serie de parámetros y nos devuelve un valor.
Para declara una función debemos utilizar la instrucción
función seguido del nombre que le vamos a dar, y después
entre paréntesis la lista de argumentos separados por comas,
aunque también habrá funciones que no recojan ningún
argumento.
Ejemplo:
function nombre_de_funcion (arg_1, arg_2, ..., arg_n)
{
bloque de código
}
LIBRERIAS EN PHP
El uso de librerías es tremendamente útil, nos permiten
agrupar varias funciones y variables en un mismo fichero, de
manera que luego podemos incluir esta librería en distintas
páginas y disponer de esas funciones fácilmente.
La instrucción para incluir una librería en nuestra página es
include("nombre de librería")
LAS TABLAS O ARRAYS EN PHP
Las tablas (o array en inglés), son muy importantes en PHP, ya
que generalmente, las funciones que devuelven varios valores,
como las funciones ligadas a las bases de datos, lo hacen en
forma de tabla.
Existen dos tipos de tablas, las que se usan utilizando índices y
las tablas asociativas en las cuales a cada elemento se le asigna
un valor para acceder a el.
CADENAS EN PHP
En PHP el tratamiento de cadenas es muy importante, existen
bastantes funciones para el manejo de cadenas, a continuación
explicaremos las más usadas.
•
•
•
•
•
•
•
strlen(cadena). Nos devuelve el número de carácteres de
una cadena.
split(separador,cadena). Divide una cadena en varias
usando un carácter separador.
sprintf(cadena de formato, var1, var2...). Formatea una
cadena de texto al igual que printf pero el resultado es
devuelto como una cadena.
substr(cadena, inicio, longitud). Devuelve una subcadena
de otra, empezando por inicio y de longitud longitud.
chop(cadena). Elimina los saltos de línea y los espacios
finales de una cadena.
strpos(cadena1, cadena2). Busca la cadena2 dentro de
cadena1 indicándonos la posición en la que se encuentra.
str_replace(cadena1, cadena2, texto). Reemplaza la
cadena1 por la cadena2 en el texto.
BUCLES EN PHP
Los bucles nos permiten iterar conjuntos de instrucciones, es
decir repetir la ejecución de un conjunto de instrucciones
mientras se cumpla una condición.
Ejemplo: Sentencia while
<?php
while (condición)
{
intrucciones a ejecutar.
}
?>
Mientras la condición sea cierta se reiterará la ejecución de las
instrucciones que están dentro del while.
Sentencia for
<?php
for (inicial ; condición ; ejecutar en iteración)
{
intrucciones a ejecutar.
}
?>
SENTENCIAS DE CONTROL PHP
Las sentencias de control permiten ejecutar bloque de códigos
dependiendo de unas condiciones. Para PHP el 0 es equivalente a
Falso y cualquier otro número es Verdadero.
La sentencia IF...ELSE permite ejecutar un bloque de instrucciones
si la condición es Verdadera y otro bloque de instrucciones si ésta
es Falsa. Es importante tener en cuenta que instrucciones si ésta
es Falsa. Es importante tener en cuenta que la condición que
evaluemos ha de estar encerrada entre paréntesis (esto es
aplicable a todas la sentencias de control).
Ejemplo
if (condición) {
Este bloque se ejecuta si la condición es VERDADERA
} else {
Este boque se ejecuta si la condición es FALSA
}
PRIMER SCRIPT
Ejemplo:
<html>
<body>
<?php
$myvar = "Hola. Este es mi primer script en PHP \n";
//Esto es un comentario
es mi primer script en PHP \n";
//Esto es un comentario
echo $myvar;
?>
</body>
</html>
PHP PARA BASE DE DATOS
PHP ofrece soporte para muchas bases de datos como por
ejemplo:
*Oracle
*Sybase
*Mysql
*SQL server
*PostgreSQL
*Interbase
*Informix
*ODBE(Fuente de datos)
CREAR BASE DE DATOS MYSQL
PHP con acceso a base de datos es preferible la base de datos
MySQL por ser gratuita y por ser también la mas empleada en
entornos UNIX, para lo cual el servidor donde tenemos alojadas
las páginas nos tiene que proporcionar herramientas para
crearla o acceso al Telnet para que la creemos por nosotros
mismos.
El comando para crear una base de datos MySQL es el siguiente:
mysqladmin -u root create base_datos
Con este comando conseguimos crear la una base de datos en el
servidor de bases de datos de nuestro servidor.
Una vez conseguido esto debemos crear las tablas en la base de
datos, la descripción de las tablas contienen la estructura de la
información que almacenaremos en ellas.
Para crear la tabla puede usar la herramienta de administración
de MySQL de su servidor web o puede escribir un fichero de
texto con el contenido de la sentencia SQL equivalente y luego
decirle al motor de base de datos que la ejecute con la
siguiente instrucción:
mysql -u root base_datos <prueba.sql
CONEXION CON LA BASE DE
DATOS
Una vez que se crea la base de datos nos conectamos a la misma
desde una página PHP. Para ello PHP nos proporciona una serie
de instrucciones para acceder a bases de datos MySQL.
Al ejecutar la instrucción mysql_connect creamos un
vínculo entre la base de datos y la pagina PHP, este
vínculo será usado posteriormente en las consultas que
hagamos a la base de datos.
Finalmente, una vez que hemos terminado de usar el
vínculo con la base de datos, lo liberaremos con la
instrucción mysql_close para que la conexión no quede ocupada.
Ejemplo:
•
<html>
<head>
<title>Ejemplo de PHP</title>
</head>
<body>
<?php
function Conectarse()
{
if (!($link=mysql_connect("localhost","usuario","Password")))
{
echo "Error conectando a la base de datos.";
exit();
}
if (!mysql_select_db("base_datos",$link))
{
echo "Error seleccionando la base de datos.";
exit();
}
return $link;
}
$link=Conectarse();
echo "Conexión con la base de datos conseguida.<br>";
mysql_close($link); //cierra la conexion
?>
</body>
</html>
•
CONSULTAS EN LA BASE DE DATOS
Un ejemplo para realizar consultas en la base de datos:
• <html>
<head>
<title>Ejemplo de PHP</title>
</head>
<body>
<H1>Ejemplo de uso de bases de datos con PHP y MySQL</H1>
<?php
include("conex.phtml");
$link=Conectarse();
$result=mysql_query("select * from prueba",$link);
?>
<TABLE BORDER=1 CELLSPACING=1 CELLPADDING=1>
<TR><TD>&nbsp;Nombre</TD><TD>&nbsp;Apellidos&nbsp;</T
D></TR>
<?php
while($row = mysql_fetch_array($result)) {
printf("<tr><td>&nbsp;%s</td><td>&nbsp;%s&nbsp;</td></t
r>", $row["Nombre"],$row["Apellidos"]);
}
mysql_free_result($result);
mysql_close($link);
?>
</table>
</body>
</html>
•
MODIFICAR LA BASE DE DATOS
Ejemplo
<html>
<body>
<?php if (isset($id))
{ // process form
$link = mysql_connect("localhost", "root");
mysql_select_db("mydb",$db);
$sql = "UPDATE agenda SET nombre='$nombre',
direccion='$direccion',". "telefono='$telefono', email='$email'
WHERE id=$id"; $result = mysql_query($sql);
}else{ echo "Debe especificar un 'id'.\n";
}
</body>
</html>
AÑADIR REGISTROS A LA BASE DE
DATOS
En primer lugar se crear una página web con un simple
formulario, con los campos que deseamos.
Formulario inicial añadir BD:
<html>
<body>
<form method="post" action="add_reg.php3">
Nombre :<input type="Text" name="nombre"><br>
Dirección:<input type="Text" name="direccion"><br>
Teléfono :<input type="Text" name="telefono"><br> E-mail
:<input type="Text" name="email"><br> <input
type="Submit" name="enviar" value="Aceptar
información">
</form>
</body>
</html>
SCRIPT PARA AÑADIR REGISTROS:
<html>
<body>
<?php // process form $link = mysql_connect("localhost","root");
mysql_select_db("mydb",$db);
$sql = "INSERT INTO agenda (nombre, dirección, teléfono,
mail) ".
"VALUES ('$nombre', '$direccion', '$telefono', '$email')";
$result = mysql_query($sql);
echo "¡Gracias! Hemos recibido sus datos.\n";
</body>
</html>
BORRAR REGISTROS DE LA BASE DE
DATOS
El proceso de borrar un registro es idéntico al de modificar, solo
que en vez de utilizar UPDATE utilizamos DELETE en la sentencia
SQL. Por tanto el script quedaría como sigue:
<html>
<body>
<?php if (isset($id)){ // process form $link =
mysql_connect("localhost", "root");
mysql_select_db("mydb",$db); $sql = "DELETE agenda
WHERE id=$id") $result = mysql_query($sql); }else{ echo
"Debe especificar un 'id'.\n";
}
</body>
</html>
FUNCIONES PARA ABSTRACCION DE BASES DE
DATOS
Berkeley DB
Este es un nivel de abstracción general para varias
bases de datos. Como tal su funcionalidad esta
limitada a un grupo de modernas bases de datos como
Sleepycat software DB2.
El comportamiento de varios aspectos depende de la
implementación de la base de datos. Funciones como
dba_optimize() y dba_sync() cumplirán su
Funcionalidad con unas bases de datos pero no con
otras.
Los siguientes manejadores (handlers) están
soportados:
• dbm es el mas antiguo (original) tipo de base de
datos de la familia de Berkeley DB. Se debe evitar
su uso, si es posible. Nosotros no soportamos las
funciones de compatibilidad de DB2 y gdbm, porque
ellas solo son compatibles a nivel de codigo fuente,
pero no pueden manejar el formato original dbm.
• ndbm es un tipo mas nuevo y mas flexible que dbm. Todavía
tiene la mayoría de las limitaciones de dbm (Por lo tanto es
descartado).
• gdbm es el gestor de bases de datos de GNU (database
manager).
• db2 es Sleepycat Software's DB2. Es descrito como "un conjunto
de herramientas de programación que proveen acceso de alto
nivel a bases de datos en aplicaciones standalone o en el modelo
cliente/servidor. “
• cdb es "una rápida, de confianza, sencilla herramienta para la
creación y lectura de bases de datos constantes." Fue creada
por el autor de qmail y puede encontrarse en here. Como la base
es constante solo se soportan las operaciones de lectura.