Consultar ensayos de calidad


PHP - lenguajes de Internet



PHP
Lenguajes de Internet




sQué es PHP?

PHP = HyperText Preprocesor • Lenguaje de scripts para el servidor Web (server-side processing) • Open Source • Puede ir en el mismo documento que el código HTML • Simple • Soportado en gran número de sistemas operativos: UNIX (Linux, Solaris, OpenBSD), Microsoft Windows, Mac OS X • Soporta la mayoría de servidores web: Apache, Microsoft IIS, Personal Web Server, iPlanet, etc • Permite no solo generar HTML sino también imágenes, PDFs, Flash, XML • Soporta un gran número de bases de datos: Oracle, mSQL, MySQL, ODBC, Sybase, SQL Server, etc • Soporta un gran número de servicios y protocolos: LDAP, IMAP, SNMP, NNTP, POP3, HTTP, etc
IPN ESIME Enero 2007 Juan Carlos Torres 2


PHP
sDónde va PHP?
•Dentro del documento HTML podemos emplear tags especiales que indican que lo que va entre ellos es código PHP. Ejemplo


Script de ejemplo Pagina simple Aqui el codigo HTML Has visto el parrafo anterior?

Código PHP

ejemplo.php

• En

el servidor se establece que archivos pueden contener código PHP.
Generalmente por la extensión del mismo archivo

•El servidor busca en el documento los tags que marcan el código PHP. Lo ejecuta y si el script escribe texto (print()) ese texto aparece donde estaba el código PHP al enviarse el documento (no se cambia el archivo)
IPN ESIME Enero 2007 Juan Carlos Torres 3


Flujo de Proceso de PHP
Módulo de procesado de PHP HTML
Procesarmipag.php

Documento al cliente

misArchs/mipag.php
Solicitud del cliente: https://www.miservidor.com/misArchs/mipag.php



Sintaxis de PHP
Como 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:


• • •

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:
This is true. This is false.


Variables
Como se declaran • No hay que declarar las variables • 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úsculas de minúsculas • Nombre: '[a-zA-Z_x7f-xff][a-zA-Z0-9_x7f-xff]*'


Tipos

boolean
Dos valores posibles: true y false (case-insensitive) Muchos operadores devuelven un valor boolean que se puede emplear en una estructura de control



integer
Se pueden representar en base 8, 10 ó 16 de igual forma que en C El tamaño en bits depende de laplataforma Si se desborda se convierte en un float No existe operador de división entera

• float
Se pueden introducir en formato decimal o mantisa-exponente Su tamaño en bits depende de la plataforma


Tipos
• 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 simples (’)
– El apóstrofe se imprime como carácter de control (’) – En su interior no se interpretan variables u otras secuencias de escape o control (por ejemplo ignora n)

• Dobles comillas (”)
– Dentro de las comillas sí se interpretan variables y caracteres de control (n, t, etc) – El texto funciona como texto entre dobles comillas

Se puede acceder a un carácter en concreto con $cadena donde el índice es un entero que empieza en 0 (también es válido $cadena[indice])


Tipos

string
(cont)

Se pueden concatenar con el operador .
• Ejemplo:

$string3 = $string1.$string2;

Otro tipo se convierte a cadena automáticamente cuando el contexto lo requiere (por ejemplo en un print() ) Una cadena se convierte automáticamente en el número que contiene en el comienzo de su texto cuando el contexto lo requiere


Tipos

array
En realidad contienen un mapeo entre claves y valores (array asociativo) El mismo array se puede emplear como array asociativo o como array indexado Los elementos pueden ser de cualquier tipo(incluso otros arrays) y 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 asignación 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
IPN ESIME Enero 2007 Juan Carlos Torres 10


Tipos

array
(cont)

En las asignaciones se emplean corchetes para indicar la clave/índice $miarray[‘nombre’]=“Fran”; Si el array no existe se crea Para eliminar un elemento del array hay que emplear unset($miarray[‘nombre’]); unset($miarray);

unset()


Tipos
a— object
Tiene que existir una clase para el objeto Las clases se definen con class • ejemplo:
class Carro }

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 archivo)
IPN ESIME Enero 2007 Juan Carlos Torres 12


Tipos

resource
Contiene una referencia a algún recurso externo (por ejemplo la conexión a una base de datos) Son creados por funcionesespeciales a— Funciones útiles: var_dump(): Muestra información sobre una variable (tipo, contenido), incluyendo la estructura y contenido de arrays print_r(): Muy similar pero muestra también propiedades protegidas o privadas


Operadores
• Aritméticos: + - * / % • Asignación:

= += -= *= /= %= .= == === != !== < > = ?:
(equivalente a system(), exec(), etc)

• Operaciones sobre bits: & | ^ ~ > • Comparación: • Ejecución: ` `
ejemplo:

• Control de errores: @

$listado=`ls -l`; -- (prefijos y postfijos) and or xor ! && ||

• Incremento/Decremento: ++ • Lógicos: • Cadenas .=

• Arrays: + (une dos arrays, si hay claves duplicadas se mantienen los
valores del array de la izquierda)


Estructuras de Control •
if (expresion) else if else
IPN ESIME Enero 2007

$a = 1; $a = 1; if($a == 1) if($a == 1) } else if($a == 2) else if($a == 2) } else else }
Juan Carlos Torres 15


Estructuras de Control



while (expresion)
Ejemplo:

$i = 0; while($i < 5)



do while (expresion);
IPN ESIME Enero 2007 Juan Carlos Torres 16


Estructuras de Control
1 2 4

• for (expr1; expr2; expr3)
Ejemplo:

for($i=0; $i “one”, “dos” => “two”, “tres” => “three”); foreach ($arr as $valor) Ejemplo: $arr = array(“uno” => “one”, “dos” => “two”, “tres” => “three”); foreach ($arr as $clave => $valor)
IPN ESIME Enero 2007 Juan Carlos Torres 18


Estructuras de Control
• break; • continue;


Estructuras de Control
• switch (expresion)
Ejemplo:

switch($a)
IPN ESIME Enero 2007 Juan Carlos Torres 20


Estructuras de Control
• include()
Permite “incluir” otro script php en ese lugar (similar a #include en C) Al interpretar ese otro archivo inicia en modo HTML así que si el contenido es PHP tendremos que marcarlo () Si no se encuentra el archivo a incluir, se muestra un mensaje: warning Se puede poner dentro de una condición (entonces es obligatorio poner ). Ejemplo: if ($condicion)

• require()
Semejante a include() pero en caso de no encontrar el archivo a incluir envía un mensaje de : fatal error

• include_once
realiza un include de un archivo y sólo una vez


Funciones
• Ejemplo:

function mifuncion($arg1, $arg2) • Dentro de la función puede incluir otras funciones, clases, etc. • En el nombre de la función no distingue mayúsculas • Se pueden definir dentro de un bloque de condición y entonces no existen hasta que la ejecución pase por él • Losargumentos pueden tener valores por defecto (como en
C++ no debe haber argumentos a su derecha sin valor por defecto)
Ejemplo:

function mifunc2($arg1, $arg2=“no me han pasado nada”)


Alcance de las Variables
• Variables definidas en el script (globales) alcanzan al contenido de archivos incluidos (include, require) • Dentro de las funciones no se ven las variables externas sino solo las que se declaren ahí • Para que una variable externa se pueda emplear dentro de una función hay que declararla en ella como global
Ejemplo: $a=“Hola”; function mifunc()

• Existen unas variables llamadas Superglobales que existen en cualquier punto del script (incluso dentro de funciones sin
declararlas como globales)


Sesiones en PHP
• • • Sucede lo mismo con los scripts PHP que con CGIs: no se guarda estado PHP nos permite guardar el contenido de unas variables asociándolas a una sesión En realidad lo que hará será guardar esas variables localmente y mandar al usuario un identificador de sesión asociado a ese conjunto de variables en forma de una cookie Cuando el cliente solicita otro script PHP envía su cookie con el identificador de sesión Se accede al archivo correspondiente recuperando esas variables de forma que parece conservar el contenido asignado por el anterior script

• •

Un script guarda la información obtenida del usuario en la pagina anterior en variables de sesión. Al mandar la pagina siguiente manda unacookie con el ID de la sesión

Al llamar a un nuevo script se le pasa el ID de la sesión con lo que este puede recuperar las variables guardadas



Variables y Algunas Funciones
• $_SESSION
– Variable superglobal – Array con las variables que se guardan en la sesión (la clave es el nombre de la variable)



bool session_start(void)
– Crea una nueva sesión o recupera las variables de una anterior – En sesiones implementadas con cookies hay que llamar a esta función antes de que se envíe algo al navegador (para que se pueda poner la cookie en la cabecera HTTP)



bool session_destroy(void)
– Destruye los datos asociados a esta sesión (archivo donde guarda el servidor las variables de la sesión) – No invalida (unset) las variables ni la sesión

• •

string session_encode(void)
– Devuelve una cadena con el contenido de la sesión codificado

session_decode(string data)
– Decodifica la cadena que se le pasa creando las variables que indica



Otras Opciones Interesantes
• Enviar cabecera HTTP para que el usuario tenga que autentificarse (como con un require user del Apache) • Que el usuario suba archivos (se hace mediante el POST de HTTP) • Funciones de red como gethostbyname() o

gethostbyaddr()
• Gestion de archivos: fopen(), fread(), fwrite(), unlink() • Funciones matemáticas fclose(),


PHP

sPreguntas ?


Política de privacidad