SlideShare una empresa de Scribd logo
1 de 48
Descargar para leer sin conexión
PHP
2015
Autor: Sergio Santos Gil
- PHP
Sergio Santos Gil 2
PHP
Índice
Introducción......................................................................................................................................5
Definición......................................................................................................................................5
Características ..............................................................................................................................6
Funciones......................................................................................................................................6
Requisitos......................................................................................................................................7
Instalación ........................................................................................................................................8
XAMPP .........................................................................................................................................8
EasyPHP..................................................................................................................................... 10
Sintaxis........................................................................................................................................... 12
Delimitadores.............................................................................................................................. 12
Instrucciones ............................................................................................................................... 12
Comillas...................................................................................................................................... 12
Comentarios................................................................................................................................ 12
Inclusión de ficheros.................................................................................................................... 13
Variables......................................................................................................................................... 14
Ámbito de las Variables............................................................................................................... 14
Variables Predefinidas ................................................................................................................ 15
Constantes................................................................................................................................... 17
Arrays ......................................................................................................................................... 19
Operadores...................................................................................................................................... 20
Asignación .................................................................................................................................. 20
Concatenación ............................................................................................................................ 20
- PHP
Sergio Santos Gil 3
Aritméticos.................................................................................................................................. 20
Comparación............................................................................................................................... 21
Lógicos........................................................................................................................................ 21
Incremento y Decremento............................................................................................................ 21
Sentencias....................................................................................................................................... 22
if, else.......................................................................................................................................... 22
if, elseif, else................................................................................................................................ 22
switch.......................................................................................................................................... 22
while ........................................................................................................................................... 22
do… while ................................................................................................................................... 23
for ............................................................................................................................................... 23
foreach........................................................................................................................................ 23
break y continue .......................................................................................................................... 23
Objetos ........................................................................................................................................... 24
Herencia ..................................................................................................................................... 25
Interfaz........................................................................................................................................ 26
Funciones ....................................................................................................................................... 27
Funciones para gestión de archivos............................................................................................. 28
Funciones para gestión de directorios......................................................................................... 28
Funciones Predefinidas ................................................................................................................... 29
Funciones de Cadenas................................................................................................................. 29
Funciones Matemáticas............................................................................................................... 32
Funciones de Fecha..................................................................................................................... 33
Otras Funciones.......................................................................................................................... 34
Formularios..................................................................................................................................... 35
INPUT......................................................................................................................................... 36
SELECT ...................................................................................................................................... 37
LABEL ........................................................................................................................................ 37
TEXTAREA ................................................................................................................................. 38
FIELDSET .................................................................................................................................. 38
Otros........................................................................................................................................... 39
Cookies........................................................................................................................................... 40
Sesiones.......................................................................................................................................... 41
- PHP
Sergio Santos Gil 4
AJAX ............................................................................................................................................. 42
XMLHttpRequest......................................................................................................................... 43
Conexión a una BBDD.................................................................................................................... 44
Introducir Registros .................................................................................................................... 45
Listado de Registros .................................................................................................................... 45
Borrado de Registros................................................................................................................... 45
Modificación de Registros ........................................................................................................... 45
Conexión con PDO...................................................................................................................... 46
Arquitectura MVC .......................................................................................................................... 48
- PHP
Sergio Santos Gil 5
Introducción
Definición
PHP es un lenguaje de programación de estilo clásico, es decir, que utiliza variables,
sentencias, funciones,…
PHP, Hypertext Preprocessor, se define como un lenguaje interpretado de alto nivel, cuyo
código va insertado en las páginas HTML, permitiendo saltar del modo PHP al código
HTML dentro de las mismas. Este lenguaje es ejecutado del lado del servidor, lo cual
permite acceder a los recursos que tiene el servidor, enviando rápidamente los resultados
al navegador en forma de página Web.
El servidor Web, al soportar PHP, procesará la página de forma secuencial: desde el
principio hasta el fin; buscando secciones PHP dentro de los delimitadores del código,
<? y?>. En el caso de que las encuentre, las compila y ejecuta mostrando un resultado
idéntico a la página HTML.
Existen dos tipos de lenguajes de programación: del lado servidor y del lado cliente.
Del lado servidor: Es un lenguaje reconocido, ejecutado e interpretado en el
mismo servidor, generando un archivo HTML que es enviado al cliente. PHP y ASP,
entre otros, pertenecen a este tipo de lenguaje
Del lado cliente: Es aquel lenguaje que puede ser “dirigido” por el navegador y que
no necesita un tratamiento previo. Destacamos: HTML, Java y JavaScript
PHP está basado principalmente en lenguajes como C, C++ y Java con los que comparte
toda su sintaxis y semántica, asimilando también características de lenguajes interpretados
como Perl y Bash. A nivel general, las principales diferencias entre PHP y C son:
 PHP no distingue mayúsculas y minúsculas, salvo en el tratamiento de objetos.
 En PHP no se declaran las variables ni tienen un tipo fijo, sino que las variables
pueden almacenar valores de todo tipo.
- PHP
Sergio Santos Gil 6
Características
o Velocidad: Este lenguaje goza de una alta velocidad de ejecución, con lo que evita las
demoras innecesarias en la máquina. Por lo tanto, no necesita muchos recursos del
sistema.
o Estabilidad: Utiliza un sistema propio de administración de recursos y dispone de un
sofisticado método de manejo de variables, consiguiendo así uno de los sistemas más
robustos y estables de los existentes.
o Seguridad: Está provisto de diferentes niveles de seguridad personalizables desde el
archivo de configuración .ini, que el programador puede variar según sus necesidades.
o Simplicidad: Debido a su sencillez, es un lenguaje que permite a los programadores
generar código en poco tiempo.
o Lenguaje basado en herramientas de software libre: Para programar en PHP, no
hay que pagar licencias de ningún tipo, lo que no limita su distribución e incita a los
programadores expertos a que contribuyan a mejorarlo.
o Conectividad. Es un lenguaje que dispone de de una amplia gama de librerías y
permite agregar de forma sencilla extensiones. Esto permite que este lenguaje sea
utilizado en áreas muy diversas, como sería en la encriptación, gráficos, XML, etc.
Funciones
 Tiene acceso y soporta muchas bases de datos: MySQL, Oracle,…
 Conectividad con otros servicios, usando HTTP, FTP, SNMP,…
 Servicios de correo y noticias: POP, IMPAP,…
 Creación de textos y gráficos: XML, HTML, PDF, Flash,…
 Funciones matemáticas.
 POSIX: memoria compartida, acceso a ficheros, cronómetros…
 Comercio electrónico: Cybercash, VerisignPro,…
 Formularios.
 Encriptación y compresión: MD5, GZip,…
- PHP
Sergio Santos Gil 7
Requisitos
o Para poder trabajar con PHP y visualizar las páginas creadas, se necesita instalar un
servidor Web como Apache.
o Una vez instalado un servidor Web, tenemos que instalar su módulo PHP, que es el
conjunto de archivos necesarios para interpretar correctamente las páginas .php.
o Y para trabajar con bases de datos desde PHP, hace falta un sistema gestor de bases
de datos, como puede ser MySQL u Oracle.
Se puede realizar la instalación de forma manual o se puede instalar un paquete pre
configurado como XAMPP o EasyPHP, entre otros. Estos paquetes pre configurados
instalan simultáneamente un servidor Apache y el módulo PHP en cualquier sistema
operativo.
Para crear páginas web en PHP, basta con crearlas con cualquier editor de texto, siempre que
se guarde el fichero con la extensión .php. También hay herramientas que facilitan la
creación de archivos PHP, como por ejemplo PHPDesigner y Notepad++.
Para descargar cualquier programa citado anteriormente, pinche en sus respectivos logos:
o Servidor web
o Sistemas Gestores de Bases de Datos
o Paquetes pre configurados
o Editores de PHP
- PHP
Sergio Santos Gil 8
Instalación
Pasamos a la instalación de los servidores Web con sus respectivos módulos PHP, como los
sistemas gestores de bases de datos.
Podemos trabajar con el que más guste al consumidor, por lo que explicamos la instalación
de dos paquetes pre configurado que contienen Apache y MySQL, como es el caso de
XAMPP y EasyPHP.
Para aquellos usuarios que utilicen sistemas operativos LINUX, explicamos la instalación del
servidor Apahe para aquellos que lo quieran hacer manual.
XAMPP
La instalación de XAMPP es muy sencilla:
Elegimos el lenguaje de instalación
Especificamos la ruta dónde se almacenará
- PHP
Sergio Santos Gil 9
Especificamos los servidores que queremos instalar, para PHP son obligatorios
instalar el servidor Apache y el gestor de bases de datos de MySQL.
Lo instalamos y una vez finalizado, nos aparecerá el panel de control.
En este panel podemos especificar que servicios queremos que se ejecuten y cuales
parar. Cuando se estén ejecutando aparecerá el mensaje de Running.
- PHP
Sergio Santos Gil 10
EasyPHP
Los pasos para instalar EasyPHP también son bastantes fáciles y similares a XAMPP:
Indicamos el lenguaje de instalación:
Aceptamos los términos del software.
Indicamos la ruta donde querremos almacenar el software e indicamos la carpeta
donde se almacenará por defecto los accesos directos.
- PHP
Sergio Santos Gil 11
Una vez instalado, podemos configurar el idioma del programa, para aquellos que no
seamos bilingües accedemos a la configuración de EasyPHP y elegimos lenguaje.
Dentro de las herramientas principales de EasyPHP destacamos:
o Ficheros Log desde el cual tenemos acceso a los errores generados por
Apache, MySQL y EasyPHP.
o Configuración donde accederemos a sus diferentes herramientas.
o Explorar la cual abre el directorio por defecto, donde se almacena el sitio web.
o Administración de la bases de datos.
o Web local que visualiza los directorios que hay en la raíz del servidor.
o Reiniciar el servicio Apache y MySQL.
o Detener/Iniciar los servidores
o Y salir del programa.
Una vez iniciado EasyPHP, el servidor Apache está configurado por defecto, para que la
página que primero abra en el navegador sea el archivo index.htm, index.html o index.php
según la configuración que tenga por defecto.
Este archivo se encuentra dentro del directorio www. Cuando abra el navegador, escriba en la
Barra de direcciones http://localhost/, y se abrirá automáticamente el fichero index que
tengamos predefinido
- PHP
Sergio Santos Gil 12
Sintaxis
Delimitadores
El código PHP se introduce en el código HTML, pero para que el servidor detecte la parte en
PHP de una página, éste tiene que estar delimitado con unas etiquetas especiales que van al
principio y al final del código.
Estas etiquetas suelen ser las etiquetas cortas: <?php {código} ¿>, que suelen ser las más
utilizadas; y las etiquetas estilo ASP: <% {código} %>.
Instrucciones
En PHP se denominan instrucciones a todo aquel lenguaje recogido dentro de los
delimitadores de código. Cada sentencia se considera terminada con un punto y coma “;“.
Comillas
En PHP existen dos tipos de comillas con distintas funcionalidades:
Comillas dobles ( “ “ ): Estás comillas leen dentro de la cadena en busca de
variables a interpretar.
Comillas simples ( „ „ ): Son las que muestran el contenido tal y como está escrito
dentro de la cadena. Dentro de estas comillas podemos mostrar las comillas dobles, ya
que muestra todo el contenido tal y como se introduce entre ellas.
Comentarios
Los comentarios son anotaciones dentro del código PHP que sirven para facilitar la
compresión del código por parte de los lectores, y no se muestran en pantalla porque el
interprete de PHP lo primero que hace es quitar todos los comentarios del programa.
// o # al principio de la línea de código para comentar una línea.
Y para comentar varias líneas o bloques, se pone /* al principio de línea y */ al final.
- PHP
Sergio Santos Gil 13
Inclusión de ficheros
Una forma muy útil de agregar código PHP a nuestro programa es insertando dicho código
ya creado en otro fichero e invocarlo mediante dos funciones:
include(fichero.php): gracias a este comando llamaremos a otro fichero que
tendremos creado. Así, podremos ahorrarnos mucho código a la hora de escribir
nuestro código. A la hora de que el fichero no exista, muestra un mensaje de error y
continúa ejecutándose el programa.
require(fichero.php): este comando sirve para incluir bibliotecas de funciones. Una
biblioteca es un archivo que almacena el código compilado de otras funciones.
Cuando el fichero no exista, salta un error que impide seguir ejecutándose el
programa.
_once(fichero.php): si añadimos este comando, sólo se incluirá el fichero una vez,
aunque lo invoquemos varias veces.
- PHP
Sergio Santos Gil 14
Variables
Las variables son como la principal manera de almacenar valores en el medio de un
programa. Con las variables se pueden realizar operaciones, se puede hacer comparaciones
entre sí y puede variar el flujo del programa en función de su valor en ese momento.
Las características más importantes de las variables en PHP:
Todas las variables comienzan con el símbolo “$”.
Son asignadas con el operador “=”. La variable se coloca a la izquierda y la expresión
a evaluar a la derecha.
No necesitan ser declaradas antes de su uso, es decir, no necesitamos decirle al
programa si una variable es una cadena o un número entero, ya que en PHP se
encargará de definirla por sí mismo.
Las variables que se utilizan antes de ser asignadas tienen un valor por defecto.
Las variables hacen distinción entre las mayúsculas de las minúsculas.
Ámbito de las Variables
El ámbito de una variable es el contexto donde la variable está definida. La mayoría de
las variables PHP solamente tienen un ámbito simple, el cual también abarca los ficheros
incluidos y los requeridos.
Ámbito global. La variable está presente en todas las partes del script, y puede ser
utilizada en cualquier momento, gracias al comando global.
Ámbito local. La variable sólo existe y opera dentro de una función concreta, no
puede ser accesible por el script en general ni por las demás funciones.
- PHP
Sergio Santos Gil 15
Variables Predefinidas
PHP utiliza una serie de variables predefinidas que facilitan la información de gran utilidad.
Para poder visualizar en pantalla, gracias a la función echo, la información que estas
variables son capaces de mostrar, es importante que en el fichero php.ini esté el valor
register_globals=ON.
GATEWAY_INTERFACE: Indica qué revisión de la especificación CGI está
usando el servidor.
SERVER_NAME: Muestra el nombre del servidor en el que se ejecuta el script de
PHP.
SERVER_SOFTWARE: Describe la cadena de identificación del servidor que
aparece en las cabeceras al responderse a las peticiones.
SERVER_PROTOCOL: Da el nombre del protocolo a través del que se solicitó la
página.
REQUEST_METHOD: Nos dice el método de petición que se utilizó para ir a la
página.
QUERY_STRING: Muestra la cadena de petición con la que se accedió a la página.
DOCUMENT_ROOT: Revela el directorio raíz del documento bajo que se ejecuta el
script, tal y como está definido en el fichero de configuración del servidor.
HTTP_ACCEPT: Enseña los tipos MIME que el cliente puede recibir.
HTTP_ACCEPT_CHARSET: Indica cuáles son los contenidos de la cabecera
Accept-Charset de la petición actual.
HTTP_ENCODING: Permite ver los contenidos de la cabecera Accept-Encoding de
la petición actual.
HTTP_CONNECTION: Enseña el tipo de conexión HTTP que está en uso.
Generalmente Keep-Alive, esto indica que el servidor no debe cerrar la conexión con
el cliente.
HTTP_HOST: Describe los contenidos de la cabecera Host de la petición actual.
- PHP
Sergio Santos Gil 16
HTTP_REFERER: Revela la dirección de la página desde la que el navegador
accedió a la página actual.
HTTP_USER_AGENT: Muestra desde qué navegador se está accediendo para ver la
página.
REMOTE_ADDR: Permite visualizar la dirección IP desde la que el usuario está
viendo la página actual.
REMOTE_PORT: Enseña el puerto que se está utilizando en la máquina del usuario
para comunicarse con el servidor Web.
gethostbyaddr("$REMOTE_ADDR"): Indica qué puerto se está usando en la
máquina del usuario para comunicarse con el servidor Web.
SCRIPT_FILENAME: Describe la vía de acceso absoluta del script que se está
ejecutando.
SERVER_ADMIN: Da el valor que se haya dado a la directiva SERVER_ADMIN
(en Apache) en el fichero de configuración del servidor Web.
SERVER_PORT: Muestra el puerto del equipo servidor que está usando el servidor
Web para la comunicación.
SERVER_SIGNATURE: Es una cadena que contiene la versión del servidor y el
nombre del servidor virtual que es añadida a las páginas generadas por el servidor si
está característica está activa.
SCRIPT_NAME: Revela la vía de acceso basada en el sistema de ficheros del script
en cuestión, después de que el servidor haya hecho la conversión virtual-a-real.
REQUEST_URI: Indica la URI que se dio para acceder a esta página.
PHP_SELF: Nos dice el nombre del fichero que contiene el script que se está
ejecutando, relativo al directorio raíz de los documentos.
- PHP
Sergio Santos Gil 17
Constantes
En PHP tenemos que definir las constantes utilizando la función define(), cuya declaración
es: define(“nombre”, “valor” [noMayúsculas]) .
Donde nombre es el nombre que le damos a la constante, valor el valor que vayamos a
otorgar, y noMayúsculas indica si está en 1 que podemos acceder a la variable
independientemente con mayúsculas o minúsculas, en cambio, si el valor es 0 (por
defecto) sólo podremos acceder a ella de la misma forma de la que la hayamos definido.
También se pueden declarar con la palabra reservada const, y no se debe inicializar con el
signo dólar.
Las constantes pueden ser accesibles desde cualquier parte del código donde han sido
definidas, sin restricciones de ámbito como en las variables. No pueden ser redefinidas o
borradas una vez definidas. Y sólo pueden contener valores escalares, no vectores.
- PHP
Sergio Santos Gil 18
Características a tener en cuenta de las constantes:
Los valores asignados a las constantes se mantienen, incluso cuando las constantes
son invocadas desde una función.
Cuando los valores de una constante son numéricos, no es necesario escribirlos
entre comillas.
PHP asignará el valor cero en operaciones aritméticas con una constante de
cadena si ésta comienza por una letra.
Si una cadena empieza con uno o varios números, al realizar operaciones aritméticas
con ella, PHP considera solo el valor de los números anteriores al primer carácter
no numérico.
Con la instrucción echo pueden enlazarse cadenas de caracteres, constantes y
variables separándolas solo con comas.
Se puede definir como constante el resultado de una operación aritmética.
En PHP existen constantes predefinidas que no requieren de la función define():
__FILE__ Recoge el nombre del archivo de comandos que se está ejecutando
actualmente y también la ruta completa de su ubicación en el servidor-
__LINE__ Registra el número de línea, también considera las líneas en blanco dentro
del archivo PHP que está siendo interpretado en la actualidad. Si se usa de un archivo
incluido o requerido, entonces se da la posición dentro del archivo incluido.
PHP_VERSION Recoge la versión PHP en uso por el servidor.
PHP_OS Indicará información del sistema operativo que utiliza el servidor en el cual
se está interpretando el fichero PHP.
TRUE Valor verdadero.
FALSE Valor falso.
E_ERROR Denota un error distinto de un error de interpretación del cual no es
posible recuperarse.
E_WARNING Denota una condición donde PHP reconoce que hay algo erróneo,
pero continuará de todas formas; pueden ser capturados por el propio archivo de
comandos.
E_PARSE Indicará que el intérprete encontró sintaxis inválida en el archivo de
comandos, y que la recuperación no es posible.
E_NOTICE Ocurrió algo que pudo ser o no un error y la ejecución continúa
- PHP
Sergio Santos Gil 19
Arrays
Un array en PHP es realmente un mapa ordenado. Un mapa es un tipo de datos que asocia
valores con claves. Este tipo es optimizado para varios usos diferentes; puede ser usado
como una matriz real, una lista, una tabla asociativa, diccionario, colección, pila, cola,... Ya
que los valores de un array pueden ser otros arrays, árboles y también son posibles arrays
multidimensionales.
Los arrays no necesitan ser declarados, basta con asignar algún valor a alguna de sus
casillas para empezar a utilizarlos. Los valores asignados pueden ser de cualquier tipo y estar
mezclados.
También existen los arrays asociativos, en el cual cada elemento se compone de un valor y
una clave, es decir, el valor es el elemento en sí mientras que la clave será el índice con el
que llamamos al elemento.
Los valores pueden ser de cualquier tipo, en cambio las claves sólo pueden ser numéricas o
cadenas. Si se asignan varios valores a la misma clave, sólo prevalecerá el último asignado.
- PHP
Sergio Santos Gil 20
Operadores
Los operadores se definen como símbolos que expresan operaciones que se pueden
realizar entre dos o más elementos. Por medio de dichos operadores, las variables pueden
ser creadas, modificadas y comparadas entre sí.
Asignación
El operador de asignación que se utiliza es el símbolo igual (=) que nos permite asignar
valores a las variables.
Concatenación
El operador de concatenación que utilizamos es el punto (.) y con él podemos unir los
valores de las variables.
También podemos utilizar la combinación de los dos (.=) para asignar un dato al valor
anterior.
Aritméticos
Los operadores aritméticos son aquéllos que nos permiten realizar operaciones
numéricas con nuestras variables.
+ Suma
- Resta
* Multiplicación
/ División
% Devuelve el resto de la división
Hay que tener en cuenta que en PHP no se dividen números enteros, lo que conlleva hacer un
casting a int: (int)(10/2).
- PHP
Sergio Santos Gil 21
Comparación
Los operadores de comparación se utilizan generalmente para comparar dos variables,
comprobando si cumple o no la condición previamente establecida. Estos operadores son
binarios y su resultado es un booleano, es decir, devuelve verdadero o falso.
== Igualdad
!= Desigualdad
< Menor que
<= Menor o igual que
> Mayor que
>= Mayor o igual que
=== Igualdad en valor y tipo
!== Diferencia en valor y tipo
Lógicos
Los operadores lógicos se usan conjuntamente con los operadores de comparación cuando la
expresión que queremos comparar requiere de un operador lógico. Sirven para componer
condicionales más simples por medio de las reglas simples por medo de las reglas de la
“y”, “o” y no lógicas. Estos operadores nos permiten expresar condicionales compuestas
de las que queremos averiguar su valor de verdad.
&& And (Y)
|| Or (O)
! NOT (Negación)
Incremento y Decremento
Los operadores de incremento o decremento sirven para aumentar o disminuir el valor
de una variable. Estos operadores solo suman o restan una unidad.
$variable++ Aumenta en 1 el valor de la variable indicada
$variable-- Disminuye en 1 el valor de la variable indicada
- PHP
Sergio Santos Gil 22
Sentencias
if, else
Es la estructura de control más simple de PHP. La sentencia if obliga a evaluar la expresión
que haya entre paréntesis y, si se cumple la condición, ejecuta un bloque de código. Si por
el contrario dicha condición no se cumple, el bloque de código será ignorado gracias a else.
if, elseif, else
Esta instrucción es similar a la anterior, con la diferencia que nos permite introducir en la
misma línea de la instrucción condicional más casos de condiciones. Es decir, evaluamos una
expresión gracias a if, si no se cumple dicha expresión evaluamos otra expresión con elseif,
como tantas condiciones deseemos, y si no, los bloques serán ignorados mediante else.
switch
La sentencia switch es una forma distinta y más comprensible para evaluar una variable
frente a multitud de opciones. En muchos casos, queremos comparar la misma variable con
infinidad de expresiones, ejecutando la parte del código correspondiente a la opción elegida.
Se declara el comando switch seguido de la variable a comparar. Después se utiliza la
expresión case, seguido de dos puntos, para indicar la opción de la variable. Cada caso
case, van separados con la cláusula break, que permite salir fuera del switch, ya que si no
se utiliza se ejecutan el resto de declaraciones. Y por último, se utiliza la cláusula default,
donde se especifica el bloque de código que se ejecutará si no cumple algunas de las
condiciones del switch.
while
El bucle while es el más sencillo de utilizar, se utiliza siempre y cuando la condición sea
verdadera, para ejecutar las instrucciones que contiene dentro de él.
El valor de la expresión es comprobado cada vez al principio del bucle, incluso si este
valor cambia durante la ejecución de las sentencias. La ejecución no parará hasta el fin de
la repetición.
- PHP
Sergio Santos Gil 23
do… while
Este bucle es casi igual que el anterior, pero con la diferencia de que aquí la condición se
evalúa después de ejecutar el código. Se especifica do seguido del código que se va a
ejecutar, y después con el while se especifica cuando parar el bucle.
for
La sentencia for es uno de los bucles más complejos, el cual toma tres parámetros
separados entre ellos mediante un punto y coma, estos parámetros son:
Valor inicial de la variable de control.
Valor final de la variable de control, el cual especifica cuando terminar el bule.
Y el incremento o decremento de dicha variable.
La primera expresión que se evalúa es el “valor_inicial”, y se hace una sola vez al
comienzo del bucle. A continuación, al comienzo de cada iteración es evaluada
“valor_final” y si dicha evaluación resulta verdadera, el bucle sigue su curso al igual que las
sentencias anidadas. Pero si la evaluación resulta que es falsa, la ejecución del bucle finaliza.
foreach
Los bucles foreach son utilizados para el tratamiento de arrays.
Este bucle nos ayuda a recorrer los valores de una matriz, lo que nos resulta muy útil para
realizar una lectura rápida de la misma.
break y continue
Son dos instrucciones que se pueden meter dentro de las sintaxis de cualquiera de las
estructuras anteriores.
break sirve para escapar de cualquier estructura de control: for, while,… Acepta
un parámetro opcional que determina cuantas estructuras de control hay que escapar.
continue se utiliza dentro del bucle para saltar el resto de esa iteración y pasar a la
iteración siguiente. También acepta un parámetro que determina cuantos bucles hay
que saltar antes de que continúe con la ejecución.
- PHP
Sergio Santos Gil 24
Objetos
Para crear objetos en PHP, debemos crear una clase en la que podemos otorgarles
atributos que deben ir precedidos mediante el “$”. Los atributos pueden ser tanto privados,
públicos o protegidos. También pueden ser estáticos, pero para acceder a estos se haría
mediante el operador “::”.
Para acceder u otorgar valores, tanto a los atributos como a los métodos del objeto, se emplea
mediante “->” y sin necesidad de acceder al atributo con el “$”.
Para crear un objeto se emplea el comando new seguido del nombre de la clase que hace
referencia al objeto.
Podemos añadir constructores a los objetos. Un constructor son funciones cuyo nombre son
idénticos al objeto. Sirven normalmente para otorgar valores iniciales a los atributos o para
hacer labores de conexión a bases de datos.
La variable $this se refiere al propio objeto, es decir, a su propia dirección de memoria.
Sirve para dar valores y a referenciar a los propios atributos del objeto.
- PHP
Sergio Santos Gil 25
Herencia
También existe herencia entre objetos, que reutilizan código existente de forma sencilla.
Pone en conexión una clase con otra, de manera que al conectarlas entre sí hereda todos los
atributos y métodos de la clase conectada. Para ello se emplea la palabra reservada extends.
Al heredar también se puede sobrescribir los métodos heredados. De forma que en el objeto
heredado, puede cambiar el código del método. Aunque, se puede acceder al código del
método sobrescrito mediante el parent, que llama al código de la clase padre.
- PHP
Sergio Santos Gil 26
Interfaz
Las interfaces describen la estructura de una clase sin especificar su implementación.
Las clases que las implementan deben escribir código para sus métodos o declararlos
abstractos.
PHP soporta la implementación múltiple, sólo si no hay métodos que tengan el mismo
nombre y distinto número de parámetros.
- PHP
Sergio Santos Gil 27
Funciones
Una función es un conjunto de instrucciones donde tenemos que procesar variables para
obtener el resultado buscado. Para que una función realice la tarea determinada, debemos
llamar correctamente a la función, definiendo los parámetros y variable oportunos.
Con las funciones podemos conectarnos a una base de datos, crear encabezados de páginas,
pies de páginas, etiquetas, etc.
Una gran ventaja de las funciones es que las podemos llamar en cualquier momento. Al
utilizar funciones en nuestro código, podemos perfeccionar cada una de sus funcionalidades
cada vez que sea necesario, siendo mucho más fácil localizarlas. También podemos utilizar el
código que contengan, llamando a la función cuantas veces haga falta, ya que se pueden
utilizar indefinidamente.
Para crear una función debemos poner siempre en el inicio la palabra function seguida del
nombre de la función. Entre paréntesis deberemos escribir los valores que vamos a utilizar
en nuestra función.: function nombreFuncion(valores){ }
El valor que indicamos dentro del paréntesis ( ) puede ser omitido, pero hay que escribirlo
obligatoriamente.
En el caso de las funciones, escribir mayúsculas y minúsculas es indiferente, ya que no las
distingue.
Para invocar la función creada basta con indicar su nombre seguido de punto y coma. Se
puede invocar después de haberla creado o antes.
Las funciones pueden retornar o devolver variables. Para ello, debemos escribir la palabra
return seguida del dato o la variable que tiene que. Cada vez que llamemos a return,
terminará la ejecución de la función devolviendo el dato solicitado.
Una función puede poseer múltiples return, pero sólo devolverá datos de cada uno de ellos
cada vez.
- PHP
Sergio Santos Gil 28
Funciones para gestión de archivos
copy($origen, $destino): esta función coge el archivo escrito en $origen y lo copia en
$destino.
rename($antes, $después): esta función renombra el archivo $antes por el escrito en
$despues.
unlink($archivo): elimina el archivo especificado.
$id = fopen($archivo, $modo): esta función abre el archivo especificado y le asigna
$id. En cuanto al modo, nos referimos al modo apertura del fichero:
o r solo lectura.
o r+ lectura y escritura.
o w solo escritura.
o w+ lectura y escritura, suprimiendo el contenido anterior y el archivo es creado
si no existe.
o a solo escritura. El archivo se crea si no existe y el puntero se coloca al final.
o a+ lectura y escritura. Igual que el anterior, pero el puntero se coloca al final
del fichero.
fgets($id, $max): lee una línea de archivo en concreto hasta un número máximo de
caracteres.
fwrite($id, $cadena): permite escribir una cadena dentro del archivo señalado.
fseek($id, $posicion): esta función avanza o retrocede un puntero tantas posiciones
como indiquemos.
feof($id): comprueba de que el puntero llegó al final de la función
fpassthru($id): lee el archivo indicado completo y lo muestra por pantalla.
fclose($id): cierra el archivo especificado.
Funciones para gestión de directorios
$dir = opendir($path): esta función abre el directorio situado en $path y se lo asigna
a la variable $dir.
readdir($dir): lee el elemento del directorio $dir abierto previamente.
rmdir($dir): esta función elimina el directorio $dir.
mkdir($path, $derechos): permite crear un directorio situado en $path con los
derechos de acceso $derechos (chmod 644).
rewinddir($ir): devuelve el puntero de lectura del directorio $dir al primer elemento.
closedir($dir): esta función cierra el directorio $dir.
- PHP
Sergio Santos Gil 29
Funciones Predefinidas
En PHP, además de las funciones creadas por el usuario, existen múltiples funciones para
realizar distintas tareas. Todas ellas están ya predefinidas, por lo que lo único que tenemos
que hacer es llamarlas, pasarles los parámetros necesarios, y ellas realizan la tarea.
Para poder usarlas debemos conocer, el nombre de la función, los parámetros que debemos
pasar, y por supuesto saber que tarea realizan.
Funciones de Cadenas
Contar caracteres de una cadena. Estas funciones no alteran los argumentos que
les pasamos, por lo que para obtener el resultado debemos guardarlas siempre en otra
variable.
o strlen($variable): Da como resultado el número de caracteres que tiene la
cadena pasada en el argumento $variable.
o chr(numero): En esta función pasamos como parámetro un número entre 0 y
255, y el resultado da un carácter asignado a ese número en el código
ASCII.
o ord(“caracter”): Es la función contraria a la anterior. Pasamos como parámetro
un carácter o signo, y la función nos devolverá el número en ASCII de ese
carácter. Si pasamos como argumento más de un carácter o una cadena de
texto, la función nos devolverá únicamente el código ASCII del primer
carácter.
o count_chars($texto, modo): Esta función indica cuales son los caracteres en
código ASCII que aparecen en el texto y/o cuantas veces aparece cada uno
de ellos. En $texto pasamos como argumento la cadena a analizar, y en modo
escribiremos un número del 0 al 4. Según el modo la función devolverá un
array o una cadena. El comportamiento de los distintos modos son:
 Modo 0: Devuelve un array asociativo con todos los caracteres del
código ASCII.
 Modo 1: Devuelve un array asociativo con únicamente los caracteres
que aparecen en el texto.
 Modo 2: Devuelve un array asociativo con los caracteres del código
ASCII que no aparecen en el texto.
 Modo 3: Devuelve una cadena de texto en la que aparecen los caracteres
que contiene el texto.
 Modo 4: Devuelve una cadena de texto en la que aparecen los caracteres
del código ASCII que no aparecen en el texto.
- PHP
Sergio Santos Gil 30
o str_word_count($texto, modo): Esta función diferencia las palabras del texto
y permite hacer varias operaciones según el modo. En el argumento $texto,
pasamos el texto a analizar, y en modo pondremos un número del 0 al 2.
Dependiendo del modo la función dará los siguientes resultados:
 Modo 0: Devuelve el número de palabras que contiene el $texto.
 Modo 1: Devuelve un array indexado con todas las palabras que
contiene el $texto.
 Modo 2: Devuelve un array asociativo donde la clave indica en que
número de carácter de la cadena comienza la palabra, y el valor es la
palabra en sí.
o substr_count($texto, $subcadena): Devuelve un número que indica las veces
que una determinada $subcadena (carácter, palabra) aparece dentro de una
cadena de texto $texto.
o strpos($texto, “caracter”): Devuelve un número que indica la primera posición
del “caracter” pasado en el segundo argumento, dentro de la cadena $texto.
o strrpos($texto, “caracter”): Funciona de forma análoga a la anterior, sólo que
el número que devuelve es el de la última posición del “caracter” dentro de la
cadena $texto.
o stripos($texto, “caracter”): Funciona igual que la función strpos() pero sin
tener en cuenta la diferencia entre mayúsculas y minúsculas.
o strripos($texto, “caracter”): Funciona igual que la función strrpos() pero sin
tener en cuenta la diferencia entre mayúsculas y minúsculas.
Cadenas de texto y arrays.
o explode(“separador”, $texto): Separa los elementos de un texto
devolviéndolos en un array. En “separador” se indican uno o varios caracteres
dónde se debe hacer la partición del texto para definir los distintos elementos
del array. $texto es la variable que contiene el texto que se convertirá en array.
o implode / join(“elemento_union”, $array):Convierte un array en cadena de
texto. Como segundo argumento debemos pasar un array que se transformará
en una cadena de 0, 1, o varios caracteres, que aparecerá escrita entre cada
elemento del array.
o chunk_split($texto, numero_caracteres): Devuelve un array en el que cada
elemento consiste en un trozo de la cadena pasada en $texto, de tantos
caracteres como el número indicado en numero_caracteres.
o in_array($valor, $array): Comprueba si existe dicho valor en un determinado
array sin tener que recorrerlo.
- PHP
Sergio Santos Gil 31
Cambiar mayúsculas y minúsculas.
o strtoupper($texto): Devuelve la cadena de texto pasada en $texto con todas
sus letras en mayúsculas.
o strtolower($texto): Devuelve la cadena de texto pasada en $texto con todas
sus letras en minúsculas.
o ucwords($texto): Devuelve la cadena de texto pasada en el argumento
$textocon la primera letra de cada palabra pasada a mayúsculas, siempre
que ésta sea un carácter alfabético.
o ucfirst($texto): Devuelve la cadena de texto pasada en $texto con la primera
letra de la cadena pasada a mayúsculas.
Eliminar y reemplazar texto.
o str_replace($buscar, $remplazar, $texto): Esta función es particularmente útil
para remplazar una palabra o trozo de texto por otro, ya que dentro del
texto indicado en $texto, busca los trozos que coinciden con la cadena indicada
en $buscar y los sustituye por la cadena indicada en $remplazar.
Si en el segundo argumento $remplazar indicamos una cadena vacía (“ “)lo
que hará la función es eliminar del $texto los trozos coincidentes con $buscar.
o str_ireplace($buscar, $remplazar, $texto): Esta función es igual que la
anterior, pero no tiene en cuenta las diferencias entre letras mayúsculas y
minúsculas.
o substr($texto, comienzo, longitud): Devuelve una parte de la cadena pasada
en $texto. El segundo argumento es un número que indica que carácter
empieza la cadena devuelta, y el tercero indica su longitud. El tercer argumento
“longitud” es opcional, si no se indica, la cadena devuelta llegará hasta el final
de la cadena original.
o sbstr_replace($texto, $sustituir, comienzo, longitud): Devuelve la cadena
pasada en $texto, en la cual se sustituye un texto por otro. El texto nuevo se
indica en $sustituir. El tercer argumento indica el comienzo del texto
sustituido y el cuarto su longitud.
o str_pad($texto, largo, $releno, tipo_relleno): Alarga la cadena de $texto hasta
la longitud indicada en “largo”, para ello se utiliza la cadena indicada en
$relleno. Es decir, si queremos que una cadena ocupe más espacio del que
tiene, alargándola, en el argumento $relleno escribiremos ese carácter, con lo
cual se alargará la cadena hasta la longitud indicada.
o strtr($texto, “lista_1”, “lista_2”):Modifica el texto pasado en $texto, de
manera que sustituye los caracteres de “lista1” por los de “lista2”. El primer
carácter indicado en “lista1” es sustituido por el primero de “lista2” el segundo
de “lista1” es sustituido por el segundo de “lista2”, y así sucesivamente.
- PHP
Sergio Santos Gil 32
Otros modificadores de cadenas.
o str_repeat($texto, num): Devuelve el texto pasado en $texto, repetido el
número de veces indicado en el argumento “num”.
o strrev($texto): Devuelve la cadena pasada en $texto invertida (derecha a
izquierda).
o htmlentities($texto): Devuelve la misma cadena pasada en $texto, en la cual se
han introducido al lenguaje HTML ciertos caracteres especiales que necesitan
escribirse de manera distinta en HTML.
o strip_tags($texto, <”etiq_permitidas”>): Elimina todas las etiquetas de HTML
y PHP que haya en el texto de $texto. EL segundo argumento es opcional e
indica cuales son las etiquetas permitidas (que no se eliminarán), estas deben
indicarse entre los signos <… >.
Funciones Matemáticas
Funciones de cálculo. Estas funciones permiten hacer ciertas operaciones algo más
complejas que las que nos permiten los operadores.
o pow(base, exp): (Potenciación) Eleva el número indicado en base (base de la
potencia) al número indicado en exp (exponente).
o sqrt(num):(Raíz cuadrada) Calcula la raíz cuadrada del número pasado como
argumento.
o log(num, base): (Logaritmo) Devuelve el resultado del logaritmo para num.
base es opcional, e indica la base del logaritmo.
o log10(num): (Logaritmo en base 10) Devuelve el resultado del logaritmo en
base 10 para el argumento pasado.
o decbin(num): (Conversión a binario) Convierte el número pasado en el
argumento en número binario.
o bindec(num): (Conversión a decimal) Convierte un número binario a decimal.
o decoct(num): (Conversión a octal) Convierte el número pasado en octal.
o dechex(num):(Conversión a hexadecimal) Convierte el número pasado en un
valor hexadecimal.
o base_convert(num, base1, base2): (Conversión de una base a otra) Convierte
el número pasado en el argumento, el cual se toma escrito en la “base1”, a la
base especificada en “base2”.
o max(array): (Máximo valor) Devuelve el valor más alto de todos los que se
pasan en una lista. La lista de números puede pasársele en forma de array o
pasar los números directamente como varios argumentos.
o min(array): (Mínimo valor) Devuelve el valor más bajo de todos los pasados
en una lista.
- PHP
Sergio Santos Gil 33
Redondeo, valor absoluto y número aleatorio.
o abs(num): (Valor absoluto) Devuelve el valor absoluto del número pasado
como argumento, es decir, siempre positivo.
o round(num, precision): (Redondeo) Redondea el número pasado en el primer
argumento al entero más cercano cuando no especificamos el segundo
argumento, el cual es opcional e indica el número de decimales que queramos
obtener el número redondeado.
o rand(min, max): (Número aleatorio) Genera un número entero aleatorio
comprendido entre los números pasados en “min” y en “max”.
Funciones trigonométricas.
o deg2rad(grados): (Conversión grados a radianes) Convierte el número
pasado en el argumento a radianes.
o rad2deg(rad): (Conversión radianes a grados) Convierte el número pasado en
el argumento a grados.
o sin(num): (Seno) Calcula el seno del ángulo pasado en el argumento.
o cos(num): (Coseno) Calcula el coseno del ángulo pasado en el argumento.
o tan(num): (Tangente) Calcula la tangente del ángulo pasado en el argumento.
o asin(num): (Arco-seno) Calcula el arco seno del número otorgado.
o acos(num): (Arco-coseno) Calcula el arco coseno del número otorgado.
o atan(num): (Arco-tangente) Calcula el arco tangente del número otorgado.
Funciones de Fecha
o time(): Devuelve la marca de tiempo UNIX para la fecha actual.
o mktime(hora, min, seg, mes, dia, año): Esta función devuelve la marca de
tiempo UNIX para una fecha concreta.
o date(“formato”): Muestra la fecha actual según el formato (d = día; m = mes;
y = año; h=horas; H=horas 24; i=minutos; s=segundos).
o strtotime(String): Devuelve el timestamp correspondiente a la fecha indicada
en varios formatos (“dia-mes-año”; “año/mes/dia”; “mes/dia/año”).
o setlocale(categoría, “localización”): Esta función tiene dos argumentos,
“categoría” indica cual es el tipo de información que debe tratarse de forma
local, y “localización” pondremos en forma de cadena el código del país o
región local.
o date_default_timezone_set(“zona_horaria”):Cambia la hora que nos da el
servidor por la de la zona que introduzcamos como parámetro, por ejemplo:
(“Europe/Madrid”). Esta afectará a todas las fechas posteriores que escribamos
a partir de esta función.
- PHP
Sergio Santos Gil 34
Otras Funciones
Transformación de variables.
o floatval($var):Transforma la variable pasada como argumento a número
decimal.
o intval($var):Transforma la variable pasada como argumento a número entero.
o strval($var):Transforma la variable pasada como argumento a cadena de texto.
o floatval($var):Transforma la variable pasada como argumento a número
decimal.
o settype($var,tipo):Transforma la variable pasada en el primer argumento en el
tipo indicado en el segundo argumento.
o eval($var): Esta función convierte una variable normal en códigoPHP, es
decir, lo que le pasamos en el argumento es interpretado como parte del código
de la página, y no como una variable.
Comprobaciones de variables.
o is_int($var): Comprueba si la variable pasada en el argumento es un entero.
o is_float($var): Comprueba si la variable pasada en el argumento es un decimal.
o is_string($var): Comprueba si la variable pasada es una cadena de texto.
o is_array($var): Comprueba si la variable pasada en el argumento es un array.
o is_object($var): Comprueba si la variable pasada en el argumento es un objeto.
Otras funciones.
o fscanf(STDIN, “tipo%n”, $variable): Esta función permite al usuario
introducir por teclado el valor de la $variable, donde el tipo puede ser String
(s%n), un número entero (d%n), o un número decimal (f%n).
o isset($var): Devolverá el booleano true si la variable está definida, o false si no
lo está.
o unset($var): Esta función eliminará la variable pasada como argumento.
o gettype($var): Devuelve, como cadena de texto, el tipo de variable que es la
variable otorgada como argumento de entrada.
o header(“Location:ruta_pagina”): Permite redireccionar páginas web. Hay
que tener en cuenta que el scriptPHP en el que pongamos esta función debe
figurar al principio de la página, antes que cualquier otra etiqueta. El
argumento que le pasamos será, entre comillas, la palabra Location seguido de
dos puntos y la ruta de la página de envío, tal como lo pondríamos en un
enlace.
- PHP
Sergio Santos Gil 35
Formularios
Es conveniente saber, que un formulario HTML va siempre definido entre las siguientes
etiquetas:<FORM> y </FORM>. Dentro de estas etiquetas, podemos incluir tantos
atributos como nos permite el lenguaje HTML.
Los atributos más destacados son:
ACTION: Indica la dirección del script que va a procesar la información.
METHOD: Especifica la forma de envío de los datos. Existen dos opciones:
o GET se emplea para enviar los datos por la URL.
o POST se utiliza cuando enviamos los datos por la entrada estándar STDIO.
Con la palabra action, indicamos el script que va a procesar la información que recoger en el
formulario; y con la palabra method se indica lo que quiere hacer el usuario con los datos.
A la hora del envío de datos al servidor, podemos obtener los valores de los distintos campos
del formulario gracias al atributo name. Según el método de envío, se utiliza su respectivas
variables para obtener dichos datos ($_GET, $_POST, $_REQUEST para ambos métodos).
Archivo HTML Archivo PHP
En el formulario HTML podemos utilizar elementos como <INPUT> y <SELECT>.
Los valores de dichos elementos los rellenará el visitante de la página. Al enviar el
formulario indicado se genera una variable cuyo nombre se especifica mediante el atributo
name. El valor será introducido por el usuario.
- PHP
Sergio Santos Gil 36
INPUT
Cuadro de texto (text). Es el método más utilizado para recoger información
detallada en un formulario. Sirve para entradas de texto sencillas, como un nombre,
dirección, teléfono… que son introducidos por el usuario. Es fácil identificarlo, puesto
que crea un cuadro de texto donde podremos escribir el máximo de caracteres que se
especifique.
Cuadro de contraseña (password). Este campo se utiliza cuando queremos que no se
muestre la información al escribir el contenido, se emplea normalmente para cuando
el usuario vaya a escribir su contraseña.
Campo oculto. Estos campos se utilizan para añadir información dentro de un
formulario, la cual permanece oculta a la vista del usuario. Se emplea con el
parámetro hidden.
Casillas de verificación. Estas casillas se utilizan cuando solo se puede elegir entre
un número de opciones concreto. Pretende buscar la comodidad en el usuario y
menor tiempo de respuesta.
Es la mejor solución para ofrecer opciones definidas, que se podrán seleccionar o no
haciendo click encima de la casilla, que se mostrará como marcada si aparece una
pequeña marca en la casilla correspondiente.
o checkbox: Este tipo de casillas permiten seleccionar varias opciones a la vez.
o radio: Solo permite seleccionar una opción, descartando las demás
posibilidades. Podemos poner una opción marcada por defecto gracias a la
opción CHECKED
Botón de comando. Este botón es el encargado, de cuando hacemos click sobre él, de
enviar los datos del formulario al script especificado con el atributo action indicado
al principio.
- PHP
Sergio Santos Gil 37
SELECT
En esta opción se puede seleccionar uno de los elementos de la lista desplegable. La
etiqueta <SELECT> crea el campo de selección y dentro del mismo se va añadiendo las
diferentes opciones disponibles con el parámetro <OPTION>.
También se puede especificar mediante el atributo multiple poder seleccionar más de una
opción del menú. Para ello, se tiene que especificar el valor del atributo name como array.
Para poder seleccionar más de una opción, se tiene que mantener la tecla control pulsada
mientras se clickean en las distintas opciones.
LABEL
Gracias a esta etiqueta podemos asociar un texto a un determinado elemento del
formulario y se muestra junta a él.
Para vincular dichos elementos, se emplea el atributo for en la etiqueta <LABEL>, cuyo
valor tiene que coincidir con el valor del atributo id del elemento a asociar.
- PHP
Sergio Santos Gil 38
TEXTAREA
Este campo se utiliza cuando el texto es demasiado largo y queremos que se muestre y se
pueda leer completamente. Para desplazarnos dentro del cuadro usamos las barras de
desplazamiento.
o rows: Especifica el número de filas del área del texto.
o cols: Especifica el número de columnas del área del texto.
o readonly: El control es de sólo lectura, por lo que el usuario no podrá escribir y
el contenido se enviará al servidor.
o disabled: El control está deshabilitado, por lo que el usuario no puede escribir y
tampoco se envía el contenido al servidor.
FIELDSET
Agrupa visualmente algunos elementos de un formulario, dibujando un recuadro alrededor de
todos ellos. Se complementa con la etiqueta <LEGEND> que le otorga un título al recuadro.
- PHP
Sergio Santos Gil 39
Otros
isset() y empty(). Estas funciones manejan los mensajes de errores, warnings o
notices en el lado servidor al intentar procesar parámetros que no se han recibido o
que no tienen ningún valor. isset()devuelve true si se ha enviado algún parámetro, y
empty() devuelve true si no se ha enviado ningún valor .
Envió de ficheros al servidor. Se puede enviar archivos al servidor gracias al tipo
file de la etiqueta <INPUT>. Para poder recibir esos archivos al servidor, se emplea el
comando $_FILES[“nombreArchivo”][info], que contiene información fija para cada
archivo subido, en un array asociativo bidimensional, donde info puede valer:
o name: nombre del archivo.
o size: se especifica el tamaño del archivo.
o type: tipo del archivo.
o tmp_name: nombre que tendrá el archivo temporal.
o error: estado de la subida. Si el valor es 0 la subida será correcta, en cambio, si
es menor de 0 dará error.
Los archivos inicialmente son subidos a una carpeta temporal, con un nombre del
tipo php001.php. El archivo será eliminado posteriormente, por eso es preciso
copiarlos en otra carpeta para poder conservarlos (copy()).
Código en cliente
Código en servidor
- PHP
Sergio Santos Gil 40
Cookies
Una cookie es un mini archivo de información sobre el usuario, que el servidor coloca en
el equipo cliente con diferentes fines:
Diferenciar a los usuarios y ofrecer a cada uno el contenido que corresponda.
Autenticar al usuario de forma directa.
Establecer nuestras preferencias y opciones.
El uso de cookies se justifica porque HTTP es un protocolo sin estado.
Las cookies se asocian a una combinación máquina + usuario + navegador. Por tanto, son
accesibles para todas las personas que compartan esta combinación, de modo que es muy
recomendable no guardar información sensible. También pueden contener información
sobre los hábitos de navegación de los usuarios en un sitio web.
Para crear una cookie en PHP se emplea la función setcookie(“nombre”,[”contenido/s”]).
Es imprescindible colocar la función antes de generar cualquier salida, porque si no el
intérprete producirá un error y no se creará la cookie. Puede contener varios contenidos:
“contenido”: contenido de la cookie, puede ser vacío.
“caduca”: fecha y hora de caducidad expresada en tiempo Unix. Por defecto, al cerrar
la ventada del navegador.
“ruta”: establece el directorio del servidor al que se asocia la cookie.
“dominio”: establece el dominio del servidor.
“enviar para”: booleano que indica si la cookie se enviará en conexiones seguras
HTTPS o en cualquier tipo de conexión.
“accesible”: establece si la cookie será accesible sólo por el servidor o mediante el
navegador usando scripts.
Y para acceder a la información de las cookies se emplea la variable $_COOKIE.
- PHP
Sergio Santos Gil 41
Sesiones
Las sesiones son un sistema que permite a los servidores guardar una relación entre
conexiones, pero a diferencia de las cookies, la información se almacena en el servidor.
Para iniciar una sesión, se emplea el método session_start() que comprueba si hay una sesión
abierta, si no la hay creará una. En cambio, si existe la sesión, reanudará la sesión con el
mismo identificador. Para consultar el identificador se emplea el método session_id().
Para permitir que una variable pertenezca a una sesión y pueda transmitirse entre diferentes
páginas, es preciso registrarla mediante la variable $_SESSION.
La información se las sesiones se guarda durante un perdido determinado, que puede ser el
cierre de sesión por pate del usuario o un tiempo de expiación establecido previamente. Estas
sesiones se almacenan en el directorio tmp del servidor web.
Como las sesiones se pueden quedar almacenadas, podemos eliminarlas gracias al método
session _destroy(), o simplemente eliminar su contenido con session_unset().
- PHP
Sergio Santos Gil 42
AJAX
AJAX (Asynchronous Javascript And XML) son técnicas del lado cliente, utilizando
JavaScript para conseguir que el documento de una página cambie, con información
proveniente del servidor, pero sin necesidad de recargarse completamente de nuevo.
Es asíncrono porque se pueden actualizar varias partes de la página simultáneamente, sin
necesidad de que acabe la actualización de una para que empiece la siguiente. Y es XML
para que la información la pueda entender el cliente.
Una de las operaciones más habituales en las aplicaciones AJAX es la de obtener el
contenido de un archivo o recurso del servidor.
- PHP
Sergio Santos Gil 43
XMLHttpRequest
Es un objeto que nos permite la transferencia de datos desde la página al servidor y
viceversa. Nos sirve tanto para incorporar datos en la página que tengamos en otros archivos
del servidor, como para mandar datos de la página al servidor, y todo esto de forma
asíncrona.
Propiedad Valor
readyState
Devuelve un número que indica el estado de la carga del documento:
0.- sin inicializar 3.- cargando
1.- inicializado
2.- Cabeceras recibidas 4.- completado
responseBody Devuelve la respuesta como un array de bytes.
responseText Devuelve la respuesta como una cadena de texto
responseXML Devuelve la respuesta como un archivo XML.
status
Devuelve el código de estado de la URL solicitada:
200.- Acceso correcto a la página
404.- Solicitud incorrecta, no se puede conectar a la página
500.- Error interno que no permite ver la página
statusTetx Igual que el anterior, pero devuelve el código de estado con una cadena de
texto (“Ok”, “Not Found”, Internal Server Error,…).
Método Función
open(método_envío, URL
[, sincronía, user, passwd] )
Este método es el que indica cual y cómo es la petición que debe hacerse al
servidor. Tiene como parámetros el método de envío de los datos y la ruta
en la que está el archivo con el que intercambiamos datos.
De forma opcional se puede indicar mediante un booleano si la transmisión
de datos se realiza de forma asíncrona (true) o síncrona (false), y podemos
poner un usuario con su contraseña para la autentificación.
send(datos)
Envía la petición al servidor, donde como parámetro enviaremos los datos al
servidor cuando usemos el método de transmisión POST.
Tiene que ir después del open().
abort() Detiene la petición actual.
setRequestHeader(cabecera,
valor)
Permite establecer cabeceras personalizadas en la petición HTTP.
Se debe invocar después del open().
getAllResponseHeaders() Devuelve una cadena de texto con todas las cabeceras de la respuesta del
servidor.
Evento Descripción
onreadystatechange Se produce cada vez que hay un cambio en el estado de carga del documento.
onabort Se produce cuando se interrumpe la carga del documento.
onload Se produce cuando el documento se ha cargado completamente.
onloadstart Se produce cuando comienza la carga del documento.
onprogress Se produce mientras el documento se está cargando.
- PHP
Sergio Santos Gil 44
Conexión a una BBDD
Antes de realizar cualquier operación con una base de datos desde una web, debemos realizar
una conexión al servidor de la base de datos, en este caso emplearemos el sistema gestor de
bases de datos de MySQL, y a la propia base de datos. Esto se hace mediante las funciones
mysql_connect, para conectarnos a MySQL, y mysql_select_db para conectarnos a nuestra
base de datos.
Si poseemos un servidor externo, debemos conocer los datos de conexión que se nos
facilitarán al realizar la contratación. En la función mysql_connect debemos poner la
dirección IP del servidor:
mysql_connect (“servidor”,”usuario”,”password”);
$conexion = mysql_select_db (“Base de datos”);
- PHP
Sergio Santos Gil 45
Introducir Registros
Para crear un nuevo registro en una de las tablas de nuestra base de datos, debemos generar
la información para después introducirla una sentencia SQL (INSERT INTO) que se envía
mediante la función mysql_query:
mysql_query("INSERT INTO tabla(campos) VALUES(valores), $conexion);
Listado de Registros
Para elaborar un listado completo de la base de datos, realizamos una consulta SQL
(SELECT) que almacenará la información en una variable $resultado.
$resultado=mysql_query("SELECT * FROM tabla");
Posteriormente, mostramos la información de $resultado mediante la función
mysql_fetch_array que devuelve una variable array con los contenidos de un registro a la
vez que posiciona sobre el siguiente. Utilizamos un bucle while para mostrar de forma
secuencial cada uno de los registros:
while( $array=mysql_fetch_array($resultado) ){ $array["campo"]; }
Borrado de Registros
Una forma de realizar un borrado de registros es la sentencia SQL (DELETE) mediante la
función mysql_query, indicando las condiciones que deseemos.
mysql_query("DELETE FROM tabla WHERE condiciones);
Modificación de Registros
Para realizar modificaciones, se emplea la sentencia SQL que modifica los valores
(UPDATE) mediante la función mysql_query.
mysql_query("UPDATE tabla SET campo='nuevo_valor’);
- PHP
Sergio Santos Gil 46
Conexión con PDO
La extensión PDO (Objetos de Datos de PHP) define una interfaz ligera para poder
acceder a bases de datos en PHP. Proporciona una capa de abstracción de acceso a datos,
lo que significa que, independientemente de la base de datos que se esté utilizando, se usan
las mismas funciones para realizar consultas y obtener datos.
Se activa descomentando el apartado extensión=php_pdo_mysql.dll del fichero php.ini.
- PHP
Sergio Santos Gil 47
Para un uso más docente, podemos usar las sentencias preparadas, que son scripts
compilados de SQL que pueden ser personalizados usando parámetros de variables.
Estas consultas sólo necesitan ser analizadas una vez y puede ser ejecutada varias veces
cambiando o no los parámetros. Así se evita repetir el ciclo de análisis, compilación y
optimación cada vez que se ejecuta, por lo que usan menos recursos y se ejecutan antes.
- PHP
Sergio Santos Gil 48
Arquitectura MVC
La arquitectura MVC se refiere a la separación de las responsabilidades de una aplicación
en tres áreas diferenciadas:
Modelo: Se encarga de la gestión de la lógica de negocio y la persistencia de datos.
o Utiliza un singleton para la conexión a la base de datos.
o Utiliza objetos, con métodos get/set para sus atributos.
o Crea funciones estáticas para cada acción específica que solicite el
controlador.
Vista: Se encarga de la presentación de los datos y la gestión de eventos para
desencadenar acciones en el controlador.
o Debería contener HTML principalmente.
o Intercala con PHP en las formas <? //código PHP ? >.
Controlador: Se encarga de gestionar todas las peticiones que vienen desde la
interfaz para acceder al modelo.
o Habrá normalmente un controlador de fachada y varios
subcontroladores: uno por cada entidad, por caso de uso o funcionalidad.
o El controlador de fachada debe ser el punto único de entrada a nuestra
aplicación.
o Sólo deben contener PHP.
o Son los únicos que manejan sesiones, cookies y cabeceras.

Más contenido relacionado

La actualidad más candente

Algoritmos+y+flujogramas
Algoritmos+y+flujogramasAlgoritmos+y+flujogramas
Algoritmos+y+flujogramasluis840
 
Plan de negocios para un museo de la lengua zapoteca
Plan de negocios para un museo de la lengua zapotecaPlan de negocios para un museo de la lengua zapoteca
Plan de negocios para un museo de la lengua zapotecaRodrigo Perez Ramirez
 
Guía para Proyectos bajo Alianzas Público Privadas
Guía para Proyectos bajo Alianzas Público PrivadasGuía para Proyectos bajo Alianzas Público Privadas
Guía para Proyectos bajo Alianzas Público PrivadasMIGUEL ANGEL REYES FIERRO
 
EENI_Tesis Mschenone Completa v3
EENI_Tesis Mschenone Completa v3EENI_Tesis Mschenone Completa v3
EENI_Tesis Mschenone Completa v3Marcelo Schenone
 
Consideraciones teóricas en la definición de diseño industrial del WDO 2015
Consideraciones teóricas en la definición de diseño industrial del WDO 2015Consideraciones teóricas en la definición de diseño industrial del WDO 2015
Consideraciones teóricas en la definición de diseño industrial del WDO 2015Hector Torres
 
13052014 fundamentos de-programacion-piensa-en-c-1edi-cairo (1)
13052014 fundamentos de-programacion-piensa-en-c-1edi-cairo (1)13052014 fundamentos de-programacion-piensa-en-c-1edi-cairo (1)
13052014 fundamentos de-programacion-piensa-en-c-1edi-cairo (1)Mary Pastrano
 

La actualidad más candente (7)

Algoritmos+y+flujogramas
Algoritmos+y+flujogramasAlgoritmos+y+flujogramas
Algoritmos+y+flujogramas
 
Plan de negocios para un museo de la lengua zapoteca
Plan de negocios para un museo de la lengua zapotecaPlan de negocios para un museo de la lengua zapoteca
Plan de negocios para un museo de la lengua zapoteca
 
Guía para Proyectos bajo Alianzas Público Privadas
Guía para Proyectos bajo Alianzas Público PrivadasGuía para Proyectos bajo Alianzas Público Privadas
Guía para Proyectos bajo Alianzas Público Privadas
 
EENI_Tesis Mschenone Completa v3
EENI_Tesis Mschenone Completa v3EENI_Tesis Mschenone Completa v3
EENI_Tesis Mschenone Completa v3
 
Consideraciones teóricas en la definición de diseño industrial del WDO 2015
Consideraciones teóricas en la definición de diseño industrial del WDO 2015Consideraciones teóricas en la definición de diseño industrial del WDO 2015
Consideraciones teóricas en la definición de diseño industrial del WDO 2015
 
Metodología del Marco LóGico
Metodología del Marco LóGicoMetodología del Marco LóGico
Metodología del Marco LóGico
 
13052014 fundamentos de-programacion-piensa-en-c-1edi-cairo (1)
13052014 fundamentos de-programacion-piensa-en-c-1edi-cairo (1)13052014 fundamentos de-programacion-piensa-en-c-1edi-cairo (1)
13052014 fundamentos de-programacion-piensa-en-c-1edi-cairo (1)
 

Destacado

Taller programación web ajax con jquery
Taller programación web  ajax con jqueryTaller programación web  ajax con jquery
Taller programación web ajax con jqueryPablo Galeana Bailey
 
Correo electrónico
Correo electrónicoCorreo electrónico
Correo electrónicoLeyner
 
Estructuras de control
Estructuras de controlEstructuras de control
Estructuras de controlralhum
 
Estructuras de control
Estructuras de controlEstructuras de control
Estructuras de controlparada137
 

Destacado (7)

Correo electrónico
Correo electrónicoCorreo electrónico
Correo electrónico
 
Taller programación web ajax con jquery
Taller programación web  ajax con jqueryTaller programación web  ajax con jquery
Taller programación web ajax con jquery
 
Correo electrónico
Correo electrónicoCorreo electrónico
Correo electrónico
 
Estructuras de control
Estructuras de controlEstructuras de control
Estructuras de control
 
Estructuras de control
Estructuras de controlEstructuras de control
Estructuras de control
 
Estructuras de control
Estructuras de controlEstructuras de control
Estructuras de control
 
Correo Electronico
Correo ElectronicoCorreo Electronico
Correo Electronico
 

Similar a PHP

Guia niif-2013 regalo-boletin
Guia niif-2013 regalo-boletinGuia niif-2013 regalo-boletin
Guia niif-2013 regalo-boletinlonate
 
Pandora FMS: Plugin de monitorización de eventos Fim
Pandora FMS: Plugin de monitorización de eventos FimPandora FMS: Plugin de monitorización de eventos Fim
Pandora FMS: Plugin de monitorización de eventos FimPandora FMS
 
Metodología del marco lógico
Metodología del marco lógicoMetodología del marco lógico
Metodología del marco lógicoEleazar Rivera
 
Metodología del marco lógico para la planificación, el seguimiento y la evalu...
Metodología del marco lógico para la planificación, el seguimiento y la evalu...Metodología del marco lógico para la planificación, el seguimiento y la evalu...
Metodología del marco lógico para la planificación, el seguimiento y la evalu...Lalo Castro
 
Pandora FMS: Plugin de monitorización de IIS
Pandora FMS: Plugin de monitorización de IIS  Pandora FMS: Plugin de monitorización de IIS
Pandora FMS: Plugin de monitorización de IIS Pandora FMS
 
Índice del libro "Hacking Web3: Challenge Acepted!" de 0xWord
Índice del libro "Hacking Web3: Challenge Acepted!" de 0xWordÍndice del libro "Hacking Web3: Challenge Acepted!" de 0xWord
Índice del libro "Hacking Web3: Challenge Acepted!" de 0xWordTelefónica
 
Fwpa doc-desarrollo
Fwpa doc-desarrolloFwpa doc-desarrollo
Fwpa doc-desarrollociriako
 
Pandora FMS: ePolicy Orchestrator Manual
Pandora FMS: ePolicy Orchestrator ManualPandora FMS: ePolicy Orchestrator Manual
Pandora FMS: ePolicy Orchestrator ManualPandora FMS
 
emprendimiento 1.pdf
emprendimiento 1.pdfemprendimiento 1.pdf
emprendimiento 1.pdfalvert82
 
Php notes forprofessionals[001-040].auto.es
Php notes forprofessionals[001-040].auto.esPhp notes forprofessionals[001-040].auto.es
Php notes forprofessionals[001-040].auto.esdavidstiven14
 
Fundamentos de programacion piensa en c
Fundamentos de programacion piensa en c Fundamentos de programacion piensa en c
Fundamentos de programacion piensa en c Nayla Mar
 

Similar a PHP (20)

JAVA
JAVAJAVA
JAVA
 
Guia niif-2013 regalo-boletin
Guia niif-2013 regalo-boletinGuia niif-2013 regalo-boletin
Guia niif-2013 regalo-boletin
 
Pandora FMS: Plugin de monitorización de eventos Fim
Pandora FMS: Plugin de monitorización de eventos FimPandora FMS: Plugin de monitorización de eventos Fim
Pandora FMS: Plugin de monitorización de eventos Fim
 
Metodología del marco lógico
Metodología del marco lógicoMetodología del marco lógico
Metodología del marco lógico
 
Metodología del marco lógico para la planificación, el seguimiento y la evalu...
Metodología del marco lógico para la planificación, el seguimiento y la evalu...Metodología del marco lógico para la planificación, el seguimiento y la evalu...
Metodología del marco lógico para la planificación, el seguimiento y la evalu...
 
Mml y planificación de proyectos
Mml y planificación de proyectosMml y planificación de proyectos
Mml y planificación de proyectos
 
S057518 es
S057518 esS057518 es
S057518 es
 
Pandora FMS: Plugin de monitorización de IIS
Pandora FMS: Plugin de monitorización de IIS  Pandora FMS: Plugin de monitorización de IIS
Pandora FMS: Plugin de monitorización de IIS
 
PROCESADOR DE TEXTO
PROCESADOR DE TEXTOPROCESADOR DE TEXTO
PROCESADOR DE TEXTO
 
01 guia-niif
01 guia-niif01 guia-niif
01 guia-niif
 
Lenguaje Html
Lenguaje HtmlLenguaje Html
Lenguaje Html
 
Índice del libro "Hacking Web3: Challenge Acepted!" de 0xWord
Índice del libro "Hacking Web3: Challenge Acepted!" de 0xWordÍndice del libro "Hacking Web3: Challenge Acepted!" de 0xWord
Índice del libro "Hacking Web3: Challenge Acepted!" de 0xWord
 
Fwpa doc-desarrollo
Fwpa doc-desarrolloFwpa doc-desarrollo
Fwpa doc-desarrollo
 
Pandora FMS: ePolicy Orchestrator Manual
Pandora FMS: ePolicy Orchestrator ManualPandora FMS: ePolicy Orchestrator Manual
Pandora FMS: ePolicy Orchestrator Manual
 
Manual awk
Manual awkManual awk
Manual awk
 
Documentación curso Linkedin Colmenar Viejo 2015
Documentación curso Linkedin Colmenar Viejo 2015Documentación curso Linkedin Colmenar Viejo 2015
Documentación curso Linkedin Colmenar Viejo 2015
 
emprendimiento 1.pdf
emprendimiento 1.pdfemprendimiento 1.pdf
emprendimiento 1.pdf
 
Php notes forprofessionals[001-040].auto.es
Php notes forprofessionals[001-040].auto.esPhp notes forprofessionals[001-040].auto.es
Php notes forprofessionals[001-040].auto.es
 
Fundamentos de programacion piensa en c
Fundamentos de programacion piensa en c Fundamentos de programacion piensa en c
Fundamentos de programacion piensa en c
 
Fundamentos programacion c
Fundamentos programacion cFundamentos programacion c
Fundamentos programacion c
 

Más de Sergio Santos

Sistemas de Bases de Datos
Sistemas de Bases de DatosSistemas de Bases de Datos
Sistemas de Bases de DatosSergio Santos
 
Modelo Entidad Relación
Modelo Entidad RelaciónModelo Entidad Relación
Modelo Entidad RelaciónSergio Santos
 
SOJI - Documentación
SOJI - DocumentaciónSOJI - Documentación
SOJI - DocumentaciónSergio Santos
 
Manual de usuario SOJI
Manual de usuario SOJIManual de usuario SOJI
Manual de usuario SOJISergio Santos
 
Servicios de Red e Internet
Servicios de Red e InternetServicios de Red e Internet
Servicios de Red e InternetSergio Santos
 
Servicio FTP en Ubuntu
Servicio FTP en UbuntuServicio FTP en Ubuntu
Servicio FTP en UbuntuSergio Santos
 
Servicio FTP en Windows
Servicio FTP en WindowsServicio FTP en Windows
Servicio FTP en WindowsSergio Santos
 
Servicio HTTP en Ubuntu (Apache)
Servicio HTTP en Ubuntu (Apache)Servicio HTTP en Ubuntu (Apache)
Servicio HTTP en Ubuntu (Apache)Sergio Santos
 
Servidor HTTP en Windows (IIS)
Servidor HTTP en Windows (IIS)Servidor HTTP en Windows (IIS)
Servidor HTTP en Windows (IIS)Sergio Santos
 
Servidor DNS Windows
Servidor DNS WindowsServidor DNS Windows
Servidor DNS WindowsSergio Santos
 
DHCP Webmin (Ubuntu)
DHCP Webmin (Ubuntu)DHCP Webmin (Ubuntu)
DHCP Webmin (Ubuntu)Sergio Santos
 

Más de Sergio Santos (15)

Sistemas de Bases de Datos
Sistemas de Bases de DatosSistemas de Bases de Datos
Sistemas de Bases de Datos
 
Modelo Entidad Relación
Modelo Entidad RelaciónModelo Entidad Relación
Modelo Entidad Relación
 
CSS, jQuery y más
CSS, jQuery y másCSS, jQuery y más
CSS, jQuery y más
 
JavaScript
JavaScriptJavaScript
JavaScript
 
SOJI - Documentación
SOJI - DocumentaciónSOJI - Documentación
SOJI - Documentación
 
Manual de usuario SOJI
Manual de usuario SOJIManual de usuario SOJI
Manual de usuario SOJI
 
Servicios de Red e Internet
Servicios de Red e InternetServicios de Red e Internet
Servicios de Red e Internet
 
Servicio FTP en Ubuntu
Servicio FTP en UbuntuServicio FTP en Ubuntu
Servicio FTP en Ubuntu
 
Servicio FTP en Windows
Servicio FTP en WindowsServicio FTP en Windows
Servicio FTP en Windows
 
Servicio HTTP en Ubuntu (Apache)
Servicio HTTP en Ubuntu (Apache)Servicio HTTP en Ubuntu (Apache)
Servicio HTTP en Ubuntu (Apache)
 
Servidor HTTP en Windows (IIS)
Servidor HTTP en Windows (IIS)Servidor HTTP en Windows (IIS)
Servidor HTTP en Windows (IIS)
 
Servidor DNS Windows
Servidor DNS WindowsServidor DNS Windows
Servidor DNS Windows
 
Servidor DNS Ubuntu
Servidor DNS UbuntuServidor DNS Ubuntu
Servidor DNS Ubuntu
 
DHCP Webmin (Ubuntu)
DHCP Webmin (Ubuntu)DHCP Webmin (Ubuntu)
DHCP Webmin (Ubuntu)
 
DHCP Ubuntu
DHCP UbuntuDHCP Ubuntu
DHCP Ubuntu
 

Último

definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativaAdrianaMartnez618894
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptMiguelAtencio10
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxJOSEFERNANDOARENASCA
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMidwarHenryLOZAFLORE
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELmaryfer27m
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaarkananubis
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.241514949
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx241522327
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...FacuMeza2
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son241514984
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 

Último (20)

definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativa
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.ppt
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptx
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptx
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFEL
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en mina
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 

PHP

  • 2. - PHP Sergio Santos Gil 2 PHP Índice Introducción......................................................................................................................................5 Definición......................................................................................................................................5 Características ..............................................................................................................................6 Funciones......................................................................................................................................6 Requisitos......................................................................................................................................7 Instalación ........................................................................................................................................8 XAMPP .........................................................................................................................................8 EasyPHP..................................................................................................................................... 10 Sintaxis........................................................................................................................................... 12 Delimitadores.............................................................................................................................. 12 Instrucciones ............................................................................................................................... 12 Comillas...................................................................................................................................... 12 Comentarios................................................................................................................................ 12 Inclusión de ficheros.................................................................................................................... 13 Variables......................................................................................................................................... 14 Ámbito de las Variables............................................................................................................... 14 Variables Predefinidas ................................................................................................................ 15 Constantes................................................................................................................................... 17 Arrays ......................................................................................................................................... 19 Operadores...................................................................................................................................... 20 Asignación .................................................................................................................................. 20 Concatenación ............................................................................................................................ 20
  • 3. - PHP Sergio Santos Gil 3 Aritméticos.................................................................................................................................. 20 Comparación............................................................................................................................... 21 Lógicos........................................................................................................................................ 21 Incremento y Decremento............................................................................................................ 21 Sentencias....................................................................................................................................... 22 if, else.......................................................................................................................................... 22 if, elseif, else................................................................................................................................ 22 switch.......................................................................................................................................... 22 while ........................................................................................................................................... 22 do… while ................................................................................................................................... 23 for ............................................................................................................................................... 23 foreach........................................................................................................................................ 23 break y continue .......................................................................................................................... 23 Objetos ........................................................................................................................................... 24 Herencia ..................................................................................................................................... 25 Interfaz........................................................................................................................................ 26 Funciones ....................................................................................................................................... 27 Funciones para gestión de archivos............................................................................................. 28 Funciones para gestión de directorios......................................................................................... 28 Funciones Predefinidas ................................................................................................................... 29 Funciones de Cadenas................................................................................................................. 29 Funciones Matemáticas............................................................................................................... 32 Funciones de Fecha..................................................................................................................... 33 Otras Funciones.......................................................................................................................... 34 Formularios..................................................................................................................................... 35 INPUT......................................................................................................................................... 36 SELECT ...................................................................................................................................... 37 LABEL ........................................................................................................................................ 37 TEXTAREA ................................................................................................................................. 38 FIELDSET .................................................................................................................................. 38 Otros........................................................................................................................................... 39 Cookies........................................................................................................................................... 40 Sesiones.......................................................................................................................................... 41
  • 4. - PHP Sergio Santos Gil 4 AJAX ............................................................................................................................................. 42 XMLHttpRequest......................................................................................................................... 43 Conexión a una BBDD.................................................................................................................... 44 Introducir Registros .................................................................................................................... 45 Listado de Registros .................................................................................................................... 45 Borrado de Registros................................................................................................................... 45 Modificación de Registros ........................................................................................................... 45 Conexión con PDO...................................................................................................................... 46 Arquitectura MVC .......................................................................................................................... 48
  • 5. - PHP Sergio Santos Gil 5 Introducción Definición PHP es un lenguaje de programación de estilo clásico, es decir, que utiliza variables, sentencias, funciones,… PHP, Hypertext Preprocessor, se define como un lenguaje interpretado de alto nivel, cuyo código va insertado en las páginas HTML, permitiendo saltar del modo PHP al código HTML dentro de las mismas. Este lenguaje es ejecutado del lado del servidor, lo cual permite acceder a los recursos que tiene el servidor, enviando rápidamente los resultados al navegador en forma de página Web. El servidor Web, al soportar PHP, procesará la página de forma secuencial: desde el principio hasta el fin; buscando secciones PHP dentro de los delimitadores del código, <? y?>. En el caso de que las encuentre, las compila y ejecuta mostrando un resultado idéntico a la página HTML. Existen dos tipos de lenguajes de programación: del lado servidor y del lado cliente. Del lado servidor: Es un lenguaje reconocido, ejecutado e interpretado en el mismo servidor, generando un archivo HTML que es enviado al cliente. PHP y ASP, entre otros, pertenecen a este tipo de lenguaje Del lado cliente: Es aquel lenguaje que puede ser “dirigido” por el navegador y que no necesita un tratamiento previo. Destacamos: HTML, Java y JavaScript PHP está basado principalmente en lenguajes como C, C++ y Java con los que comparte toda su sintaxis y semántica, asimilando también características de lenguajes interpretados como Perl y Bash. A nivel general, las principales diferencias entre PHP y C son:  PHP no distingue mayúsculas y minúsculas, salvo en el tratamiento de objetos.  En PHP no se declaran las variables ni tienen un tipo fijo, sino que las variables pueden almacenar valores de todo tipo.
  • 6. - PHP Sergio Santos Gil 6 Características o Velocidad: Este lenguaje goza de una alta velocidad de ejecución, con lo que evita las demoras innecesarias en la máquina. Por lo tanto, no necesita muchos recursos del sistema. o Estabilidad: Utiliza un sistema propio de administración de recursos y dispone de un sofisticado método de manejo de variables, consiguiendo así uno de los sistemas más robustos y estables de los existentes. o Seguridad: Está provisto de diferentes niveles de seguridad personalizables desde el archivo de configuración .ini, que el programador puede variar según sus necesidades. o Simplicidad: Debido a su sencillez, es un lenguaje que permite a los programadores generar código en poco tiempo. o Lenguaje basado en herramientas de software libre: Para programar en PHP, no hay que pagar licencias de ningún tipo, lo que no limita su distribución e incita a los programadores expertos a que contribuyan a mejorarlo. o Conectividad. Es un lenguaje que dispone de de una amplia gama de librerías y permite agregar de forma sencilla extensiones. Esto permite que este lenguaje sea utilizado en áreas muy diversas, como sería en la encriptación, gráficos, XML, etc. Funciones  Tiene acceso y soporta muchas bases de datos: MySQL, Oracle,…  Conectividad con otros servicios, usando HTTP, FTP, SNMP,…  Servicios de correo y noticias: POP, IMPAP,…  Creación de textos y gráficos: XML, HTML, PDF, Flash,…  Funciones matemáticas.  POSIX: memoria compartida, acceso a ficheros, cronómetros…  Comercio electrónico: Cybercash, VerisignPro,…  Formularios.  Encriptación y compresión: MD5, GZip,…
  • 7. - PHP Sergio Santos Gil 7 Requisitos o Para poder trabajar con PHP y visualizar las páginas creadas, se necesita instalar un servidor Web como Apache. o Una vez instalado un servidor Web, tenemos que instalar su módulo PHP, que es el conjunto de archivos necesarios para interpretar correctamente las páginas .php. o Y para trabajar con bases de datos desde PHP, hace falta un sistema gestor de bases de datos, como puede ser MySQL u Oracle. Se puede realizar la instalación de forma manual o se puede instalar un paquete pre configurado como XAMPP o EasyPHP, entre otros. Estos paquetes pre configurados instalan simultáneamente un servidor Apache y el módulo PHP en cualquier sistema operativo. Para crear páginas web en PHP, basta con crearlas con cualquier editor de texto, siempre que se guarde el fichero con la extensión .php. También hay herramientas que facilitan la creación de archivos PHP, como por ejemplo PHPDesigner y Notepad++. Para descargar cualquier programa citado anteriormente, pinche en sus respectivos logos: o Servidor web o Sistemas Gestores de Bases de Datos o Paquetes pre configurados o Editores de PHP
  • 8. - PHP Sergio Santos Gil 8 Instalación Pasamos a la instalación de los servidores Web con sus respectivos módulos PHP, como los sistemas gestores de bases de datos. Podemos trabajar con el que más guste al consumidor, por lo que explicamos la instalación de dos paquetes pre configurado que contienen Apache y MySQL, como es el caso de XAMPP y EasyPHP. Para aquellos usuarios que utilicen sistemas operativos LINUX, explicamos la instalación del servidor Apahe para aquellos que lo quieran hacer manual. XAMPP La instalación de XAMPP es muy sencilla: Elegimos el lenguaje de instalación Especificamos la ruta dónde se almacenará
  • 9. - PHP Sergio Santos Gil 9 Especificamos los servidores que queremos instalar, para PHP son obligatorios instalar el servidor Apache y el gestor de bases de datos de MySQL. Lo instalamos y una vez finalizado, nos aparecerá el panel de control. En este panel podemos especificar que servicios queremos que se ejecuten y cuales parar. Cuando se estén ejecutando aparecerá el mensaje de Running.
  • 10. - PHP Sergio Santos Gil 10 EasyPHP Los pasos para instalar EasyPHP también son bastantes fáciles y similares a XAMPP: Indicamos el lenguaje de instalación: Aceptamos los términos del software. Indicamos la ruta donde querremos almacenar el software e indicamos la carpeta donde se almacenará por defecto los accesos directos.
  • 11. - PHP Sergio Santos Gil 11 Una vez instalado, podemos configurar el idioma del programa, para aquellos que no seamos bilingües accedemos a la configuración de EasyPHP y elegimos lenguaje. Dentro de las herramientas principales de EasyPHP destacamos: o Ficheros Log desde el cual tenemos acceso a los errores generados por Apache, MySQL y EasyPHP. o Configuración donde accederemos a sus diferentes herramientas. o Explorar la cual abre el directorio por defecto, donde se almacena el sitio web. o Administración de la bases de datos. o Web local que visualiza los directorios que hay en la raíz del servidor. o Reiniciar el servicio Apache y MySQL. o Detener/Iniciar los servidores o Y salir del programa. Una vez iniciado EasyPHP, el servidor Apache está configurado por defecto, para que la página que primero abra en el navegador sea el archivo index.htm, index.html o index.php según la configuración que tenga por defecto. Este archivo se encuentra dentro del directorio www. Cuando abra el navegador, escriba en la Barra de direcciones http://localhost/, y se abrirá automáticamente el fichero index que tengamos predefinido
  • 12. - PHP Sergio Santos Gil 12 Sintaxis Delimitadores El código PHP se introduce en el código HTML, pero para que el servidor detecte la parte en PHP de una página, éste tiene que estar delimitado con unas etiquetas especiales que van al principio y al final del código. Estas etiquetas suelen ser las etiquetas cortas: <?php {código} ¿>, que suelen ser las más utilizadas; y las etiquetas estilo ASP: <% {código} %>. Instrucciones En PHP se denominan instrucciones a todo aquel lenguaje recogido dentro de los delimitadores de código. Cada sentencia se considera terminada con un punto y coma “;“. Comillas En PHP existen dos tipos de comillas con distintas funcionalidades: Comillas dobles ( “ “ ): Estás comillas leen dentro de la cadena en busca de variables a interpretar. Comillas simples ( „ „ ): Son las que muestran el contenido tal y como está escrito dentro de la cadena. Dentro de estas comillas podemos mostrar las comillas dobles, ya que muestra todo el contenido tal y como se introduce entre ellas. Comentarios Los comentarios son anotaciones dentro del código PHP que sirven para facilitar la compresión del código por parte de los lectores, y no se muestran en pantalla porque el interprete de PHP lo primero que hace es quitar todos los comentarios del programa. // o # al principio de la línea de código para comentar una línea. Y para comentar varias líneas o bloques, se pone /* al principio de línea y */ al final.
  • 13. - PHP Sergio Santos Gil 13 Inclusión de ficheros Una forma muy útil de agregar código PHP a nuestro programa es insertando dicho código ya creado en otro fichero e invocarlo mediante dos funciones: include(fichero.php): gracias a este comando llamaremos a otro fichero que tendremos creado. Así, podremos ahorrarnos mucho código a la hora de escribir nuestro código. A la hora de que el fichero no exista, muestra un mensaje de error y continúa ejecutándose el programa. require(fichero.php): este comando sirve para incluir bibliotecas de funciones. Una biblioteca es un archivo que almacena el código compilado de otras funciones. Cuando el fichero no exista, salta un error que impide seguir ejecutándose el programa. _once(fichero.php): si añadimos este comando, sólo se incluirá el fichero una vez, aunque lo invoquemos varias veces.
  • 14. - PHP Sergio Santos Gil 14 Variables Las variables son como la principal manera de almacenar valores en el medio de un programa. Con las variables se pueden realizar operaciones, se puede hacer comparaciones entre sí y puede variar el flujo del programa en función de su valor en ese momento. Las características más importantes de las variables en PHP: Todas las variables comienzan con el símbolo “$”. Son asignadas con el operador “=”. La variable se coloca a la izquierda y la expresión a evaluar a la derecha. No necesitan ser declaradas antes de su uso, es decir, no necesitamos decirle al programa si una variable es una cadena o un número entero, ya que en PHP se encargará de definirla por sí mismo. Las variables que se utilizan antes de ser asignadas tienen un valor por defecto. Las variables hacen distinción entre las mayúsculas de las minúsculas. Ámbito de las Variables El ámbito de una variable es el contexto donde la variable está definida. La mayoría de las variables PHP solamente tienen un ámbito simple, el cual también abarca los ficheros incluidos y los requeridos. Ámbito global. La variable está presente en todas las partes del script, y puede ser utilizada en cualquier momento, gracias al comando global. Ámbito local. La variable sólo existe y opera dentro de una función concreta, no puede ser accesible por el script en general ni por las demás funciones.
  • 15. - PHP Sergio Santos Gil 15 Variables Predefinidas PHP utiliza una serie de variables predefinidas que facilitan la información de gran utilidad. Para poder visualizar en pantalla, gracias a la función echo, la información que estas variables son capaces de mostrar, es importante que en el fichero php.ini esté el valor register_globals=ON. GATEWAY_INTERFACE: Indica qué revisión de la especificación CGI está usando el servidor. SERVER_NAME: Muestra el nombre del servidor en el que se ejecuta el script de PHP. SERVER_SOFTWARE: Describe la cadena de identificación del servidor que aparece en las cabeceras al responderse a las peticiones. SERVER_PROTOCOL: Da el nombre del protocolo a través del que se solicitó la página. REQUEST_METHOD: Nos dice el método de petición que se utilizó para ir a la página. QUERY_STRING: Muestra la cadena de petición con la que se accedió a la página. DOCUMENT_ROOT: Revela el directorio raíz del documento bajo que se ejecuta el script, tal y como está definido en el fichero de configuración del servidor. HTTP_ACCEPT: Enseña los tipos MIME que el cliente puede recibir. HTTP_ACCEPT_CHARSET: Indica cuáles son los contenidos de la cabecera Accept-Charset de la petición actual. HTTP_ENCODING: Permite ver los contenidos de la cabecera Accept-Encoding de la petición actual. HTTP_CONNECTION: Enseña el tipo de conexión HTTP que está en uso. Generalmente Keep-Alive, esto indica que el servidor no debe cerrar la conexión con el cliente. HTTP_HOST: Describe los contenidos de la cabecera Host de la petición actual.
  • 16. - PHP Sergio Santos Gil 16 HTTP_REFERER: Revela la dirección de la página desde la que el navegador accedió a la página actual. HTTP_USER_AGENT: Muestra desde qué navegador se está accediendo para ver la página. REMOTE_ADDR: Permite visualizar la dirección IP desde la que el usuario está viendo la página actual. REMOTE_PORT: Enseña el puerto que se está utilizando en la máquina del usuario para comunicarse con el servidor Web. gethostbyaddr("$REMOTE_ADDR"): Indica qué puerto se está usando en la máquina del usuario para comunicarse con el servidor Web. SCRIPT_FILENAME: Describe la vía de acceso absoluta del script que se está ejecutando. SERVER_ADMIN: Da el valor que se haya dado a la directiva SERVER_ADMIN (en Apache) en el fichero de configuración del servidor Web. SERVER_PORT: Muestra el puerto del equipo servidor que está usando el servidor Web para la comunicación. SERVER_SIGNATURE: Es una cadena que contiene la versión del servidor y el nombre del servidor virtual que es añadida a las páginas generadas por el servidor si está característica está activa. SCRIPT_NAME: Revela la vía de acceso basada en el sistema de ficheros del script en cuestión, después de que el servidor haya hecho la conversión virtual-a-real. REQUEST_URI: Indica la URI que se dio para acceder a esta página. PHP_SELF: Nos dice el nombre del fichero que contiene el script que se está ejecutando, relativo al directorio raíz de los documentos.
  • 17. - PHP Sergio Santos Gil 17 Constantes En PHP tenemos que definir las constantes utilizando la función define(), cuya declaración es: define(“nombre”, “valor” [noMayúsculas]) . Donde nombre es el nombre que le damos a la constante, valor el valor que vayamos a otorgar, y noMayúsculas indica si está en 1 que podemos acceder a la variable independientemente con mayúsculas o minúsculas, en cambio, si el valor es 0 (por defecto) sólo podremos acceder a ella de la misma forma de la que la hayamos definido. También se pueden declarar con la palabra reservada const, y no se debe inicializar con el signo dólar. Las constantes pueden ser accesibles desde cualquier parte del código donde han sido definidas, sin restricciones de ámbito como en las variables. No pueden ser redefinidas o borradas una vez definidas. Y sólo pueden contener valores escalares, no vectores.
  • 18. - PHP Sergio Santos Gil 18 Características a tener en cuenta de las constantes: Los valores asignados a las constantes se mantienen, incluso cuando las constantes son invocadas desde una función. Cuando los valores de una constante son numéricos, no es necesario escribirlos entre comillas. PHP asignará el valor cero en operaciones aritméticas con una constante de cadena si ésta comienza por una letra. Si una cadena empieza con uno o varios números, al realizar operaciones aritméticas con ella, PHP considera solo el valor de los números anteriores al primer carácter no numérico. Con la instrucción echo pueden enlazarse cadenas de caracteres, constantes y variables separándolas solo con comas. Se puede definir como constante el resultado de una operación aritmética. En PHP existen constantes predefinidas que no requieren de la función define(): __FILE__ Recoge el nombre del archivo de comandos que se está ejecutando actualmente y también la ruta completa de su ubicación en el servidor- __LINE__ Registra el número de línea, también considera las líneas en blanco dentro del archivo PHP que está siendo interpretado en la actualidad. Si se usa de un archivo incluido o requerido, entonces se da la posición dentro del archivo incluido. PHP_VERSION Recoge la versión PHP en uso por el servidor. PHP_OS Indicará información del sistema operativo que utiliza el servidor en el cual se está interpretando el fichero PHP. TRUE Valor verdadero. FALSE Valor falso. E_ERROR Denota un error distinto de un error de interpretación del cual no es posible recuperarse. E_WARNING Denota una condición donde PHP reconoce que hay algo erróneo, pero continuará de todas formas; pueden ser capturados por el propio archivo de comandos. E_PARSE Indicará que el intérprete encontró sintaxis inválida en el archivo de comandos, y que la recuperación no es posible. E_NOTICE Ocurrió algo que pudo ser o no un error y la ejecución continúa
  • 19. - PHP Sergio Santos Gil 19 Arrays Un array en PHP es realmente un mapa ordenado. Un mapa es un tipo de datos que asocia valores con claves. Este tipo es optimizado para varios usos diferentes; puede ser usado como una matriz real, una lista, una tabla asociativa, diccionario, colección, pila, cola,... Ya que los valores de un array pueden ser otros arrays, árboles y también son posibles arrays multidimensionales. Los arrays no necesitan ser declarados, basta con asignar algún valor a alguna de sus casillas para empezar a utilizarlos. Los valores asignados pueden ser de cualquier tipo y estar mezclados. También existen los arrays asociativos, en el cual cada elemento se compone de un valor y una clave, es decir, el valor es el elemento en sí mientras que la clave será el índice con el que llamamos al elemento. Los valores pueden ser de cualquier tipo, en cambio las claves sólo pueden ser numéricas o cadenas. Si se asignan varios valores a la misma clave, sólo prevalecerá el último asignado.
  • 20. - PHP Sergio Santos Gil 20 Operadores Los operadores se definen como símbolos que expresan operaciones que se pueden realizar entre dos o más elementos. Por medio de dichos operadores, las variables pueden ser creadas, modificadas y comparadas entre sí. Asignación El operador de asignación que se utiliza es el símbolo igual (=) que nos permite asignar valores a las variables. Concatenación El operador de concatenación que utilizamos es el punto (.) y con él podemos unir los valores de las variables. También podemos utilizar la combinación de los dos (.=) para asignar un dato al valor anterior. Aritméticos Los operadores aritméticos son aquéllos que nos permiten realizar operaciones numéricas con nuestras variables. + Suma - Resta * Multiplicación / División % Devuelve el resto de la división Hay que tener en cuenta que en PHP no se dividen números enteros, lo que conlleva hacer un casting a int: (int)(10/2).
  • 21. - PHP Sergio Santos Gil 21 Comparación Los operadores de comparación se utilizan generalmente para comparar dos variables, comprobando si cumple o no la condición previamente establecida. Estos operadores son binarios y su resultado es un booleano, es decir, devuelve verdadero o falso. == Igualdad != Desigualdad < Menor que <= Menor o igual que > Mayor que >= Mayor o igual que === Igualdad en valor y tipo !== Diferencia en valor y tipo Lógicos Los operadores lógicos se usan conjuntamente con los operadores de comparación cuando la expresión que queremos comparar requiere de un operador lógico. Sirven para componer condicionales más simples por medio de las reglas simples por medo de las reglas de la “y”, “o” y no lógicas. Estos operadores nos permiten expresar condicionales compuestas de las que queremos averiguar su valor de verdad. && And (Y) || Or (O) ! NOT (Negación) Incremento y Decremento Los operadores de incremento o decremento sirven para aumentar o disminuir el valor de una variable. Estos operadores solo suman o restan una unidad. $variable++ Aumenta en 1 el valor de la variable indicada $variable-- Disminuye en 1 el valor de la variable indicada
  • 22. - PHP Sergio Santos Gil 22 Sentencias if, else Es la estructura de control más simple de PHP. La sentencia if obliga a evaluar la expresión que haya entre paréntesis y, si se cumple la condición, ejecuta un bloque de código. Si por el contrario dicha condición no se cumple, el bloque de código será ignorado gracias a else. if, elseif, else Esta instrucción es similar a la anterior, con la diferencia que nos permite introducir en la misma línea de la instrucción condicional más casos de condiciones. Es decir, evaluamos una expresión gracias a if, si no se cumple dicha expresión evaluamos otra expresión con elseif, como tantas condiciones deseemos, y si no, los bloques serán ignorados mediante else. switch La sentencia switch es una forma distinta y más comprensible para evaluar una variable frente a multitud de opciones. En muchos casos, queremos comparar la misma variable con infinidad de expresiones, ejecutando la parte del código correspondiente a la opción elegida. Se declara el comando switch seguido de la variable a comparar. Después se utiliza la expresión case, seguido de dos puntos, para indicar la opción de la variable. Cada caso case, van separados con la cláusula break, que permite salir fuera del switch, ya que si no se utiliza se ejecutan el resto de declaraciones. Y por último, se utiliza la cláusula default, donde se especifica el bloque de código que se ejecutará si no cumple algunas de las condiciones del switch. while El bucle while es el más sencillo de utilizar, se utiliza siempre y cuando la condición sea verdadera, para ejecutar las instrucciones que contiene dentro de él. El valor de la expresión es comprobado cada vez al principio del bucle, incluso si este valor cambia durante la ejecución de las sentencias. La ejecución no parará hasta el fin de la repetición.
  • 23. - PHP Sergio Santos Gil 23 do… while Este bucle es casi igual que el anterior, pero con la diferencia de que aquí la condición se evalúa después de ejecutar el código. Se especifica do seguido del código que se va a ejecutar, y después con el while se especifica cuando parar el bucle. for La sentencia for es uno de los bucles más complejos, el cual toma tres parámetros separados entre ellos mediante un punto y coma, estos parámetros son: Valor inicial de la variable de control. Valor final de la variable de control, el cual especifica cuando terminar el bule. Y el incremento o decremento de dicha variable. La primera expresión que se evalúa es el “valor_inicial”, y se hace una sola vez al comienzo del bucle. A continuación, al comienzo de cada iteración es evaluada “valor_final” y si dicha evaluación resulta verdadera, el bucle sigue su curso al igual que las sentencias anidadas. Pero si la evaluación resulta que es falsa, la ejecución del bucle finaliza. foreach Los bucles foreach son utilizados para el tratamiento de arrays. Este bucle nos ayuda a recorrer los valores de una matriz, lo que nos resulta muy útil para realizar una lectura rápida de la misma. break y continue Son dos instrucciones que se pueden meter dentro de las sintaxis de cualquiera de las estructuras anteriores. break sirve para escapar de cualquier estructura de control: for, while,… Acepta un parámetro opcional que determina cuantas estructuras de control hay que escapar. continue se utiliza dentro del bucle para saltar el resto de esa iteración y pasar a la iteración siguiente. También acepta un parámetro que determina cuantos bucles hay que saltar antes de que continúe con la ejecución.
  • 24. - PHP Sergio Santos Gil 24 Objetos Para crear objetos en PHP, debemos crear una clase en la que podemos otorgarles atributos que deben ir precedidos mediante el “$”. Los atributos pueden ser tanto privados, públicos o protegidos. También pueden ser estáticos, pero para acceder a estos se haría mediante el operador “::”. Para acceder u otorgar valores, tanto a los atributos como a los métodos del objeto, se emplea mediante “->” y sin necesidad de acceder al atributo con el “$”. Para crear un objeto se emplea el comando new seguido del nombre de la clase que hace referencia al objeto. Podemos añadir constructores a los objetos. Un constructor son funciones cuyo nombre son idénticos al objeto. Sirven normalmente para otorgar valores iniciales a los atributos o para hacer labores de conexión a bases de datos. La variable $this se refiere al propio objeto, es decir, a su propia dirección de memoria. Sirve para dar valores y a referenciar a los propios atributos del objeto.
  • 25. - PHP Sergio Santos Gil 25 Herencia También existe herencia entre objetos, que reutilizan código existente de forma sencilla. Pone en conexión una clase con otra, de manera que al conectarlas entre sí hereda todos los atributos y métodos de la clase conectada. Para ello se emplea la palabra reservada extends. Al heredar también se puede sobrescribir los métodos heredados. De forma que en el objeto heredado, puede cambiar el código del método. Aunque, se puede acceder al código del método sobrescrito mediante el parent, que llama al código de la clase padre.
  • 26. - PHP Sergio Santos Gil 26 Interfaz Las interfaces describen la estructura de una clase sin especificar su implementación. Las clases que las implementan deben escribir código para sus métodos o declararlos abstractos. PHP soporta la implementación múltiple, sólo si no hay métodos que tengan el mismo nombre y distinto número de parámetros.
  • 27. - PHP Sergio Santos Gil 27 Funciones Una función es un conjunto de instrucciones donde tenemos que procesar variables para obtener el resultado buscado. Para que una función realice la tarea determinada, debemos llamar correctamente a la función, definiendo los parámetros y variable oportunos. Con las funciones podemos conectarnos a una base de datos, crear encabezados de páginas, pies de páginas, etiquetas, etc. Una gran ventaja de las funciones es que las podemos llamar en cualquier momento. Al utilizar funciones en nuestro código, podemos perfeccionar cada una de sus funcionalidades cada vez que sea necesario, siendo mucho más fácil localizarlas. También podemos utilizar el código que contengan, llamando a la función cuantas veces haga falta, ya que se pueden utilizar indefinidamente. Para crear una función debemos poner siempre en el inicio la palabra function seguida del nombre de la función. Entre paréntesis deberemos escribir los valores que vamos a utilizar en nuestra función.: function nombreFuncion(valores){ } El valor que indicamos dentro del paréntesis ( ) puede ser omitido, pero hay que escribirlo obligatoriamente. En el caso de las funciones, escribir mayúsculas y minúsculas es indiferente, ya que no las distingue. Para invocar la función creada basta con indicar su nombre seguido de punto y coma. Se puede invocar después de haberla creado o antes. Las funciones pueden retornar o devolver variables. Para ello, debemos escribir la palabra return seguida del dato o la variable que tiene que. Cada vez que llamemos a return, terminará la ejecución de la función devolviendo el dato solicitado. Una función puede poseer múltiples return, pero sólo devolverá datos de cada uno de ellos cada vez.
  • 28. - PHP Sergio Santos Gil 28 Funciones para gestión de archivos copy($origen, $destino): esta función coge el archivo escrito en $origen y lo copia en $destino. rename($antes, $después): esta función renombra el archivo $antes por el escrito en $despues. unlink($archivo): elimina el archivo especificado. $id = fopen($archivo, $modo): esta función abre el archivo especificado y le asigna $id. En cuanto al modo, nos referimos al modo apertura del fichero: o r solo lectura. o r+ lectura y escritura. o w solo escritura. o w+ lectura y escritura, suprimiendo el contenido anterior y el archivo es creado si no existe. o a solo escritura. El archivo se crea si no existe y el puntero se coloca al final. o a+ lectura y escritura. Igual que el anterior, pero el puntero se coloca al final del fichero. fgets($id, $max): lee una línea de archivo en concreto hasta un número máximo de caracteres. fwrite($id, $cadena): permite escribir una cadena dentro del archivo señalado. fseek($id, $posicion): esta función avanza o retrocede un puntero tantas posiciones como indiquemos. feof($id): comprueba de que el puntero llegó al final de la función fpassthru($id): lee el archivo indicado completo y lo muestra por pantalla. fclose($id): cierra el archivo especificado. Funciones para gestión de directorios $dir = opendir($path): esta función abre el directorio situado en $path y se lo asigna a la variable $dir. readdir($dir): lee el elemento del directorio $dir abierto previamente. rmdir($dir): esta función elimina el directorio $dir. mkdir($path, $derechos): permite crear un directorio situado en $path con los derechos de acceso $derechos (chmod 644). rewinddir($ir): devuelve el puntero de lectura del directorio $dir al primer elemento. closedir($dir): esta función cierra el directorio $dir.
  • 29. - PHP Sergio Santos Gil 29 Funciones Predefinidas En PHP, además de las funciones creadas por el usuario, existen múltiples funciones para realizar distintas tareas. Todas ellas están ya predefinidas, por lo que lo único que tenemos que hacer es llamarlas, pasarles los parámetros necesarios, y ellas realizan la tarea. Para poder usarlas debemos conocer, el nombre de la función, los parámetros que debemos pasar, y por supuesto saber que tarea realizan. Funciones de Cadenas Contar caracteres de una cadena. Estas funciones no alteran los argumentos que les pasamos, por lo que para obtener el resultado debemos guardarlas siempre en otra variable. o strlen($variable): Da como resultado el número de caracteres que tiene la cadena pasada en el argumento $variable. o chr(numero): En esta función pasamos como parámetro un número entre 0 y 255, y el resultado da un carácter asignado a ese número en el código ASCII. o ord(“caracter”): Es la función contraria a la anterior. Pasamos como parámetro un carácter o signo, y la función nos devolverá el número en ASCII de ese carácter. Si pasamos como argumento más de un carácter o una cadena de texto, la función nos devolverá únicamente el código ASCII del primer carácter. o count_chars($texto, modo): Esta función indica cuales son los caracteres en código ASCII que aparecen en el texto y/o cuantas veces aparece cada uno de ellos. En $texto pasamos como argumento la cadena a analizar, y en modo escribiremos un número del 0 al 4. Según el modo la función devolverá un array o una cadena. El comportamiento de los distintos modos son:  Modo 0: Devuelve un array asociativo con todos los caracteres del código ASCII.  Modo 1: Devuelve un array asociativo con únicamente los caracteres que aparecen en el texto.  Modo 2: Devuelve un array asociativo con los caracteres del código ASCII que no aparecen en el texto.  Modo 3: Devuelve una cadena de texto en la que aparecen los caracteres que contiene el texto.  Modo 4: Devuelve una cadena de texto en la que aparecen los caracteres del código ASCII que no aparecen en el texto.
  • 30. - PHP Sergio Santos Gil 30 o str_word_count($texto, modo): Esta función diferencia las palabras del texto y permite hacer varias operaciones según el modo. En el argumento $texto, pasamos el texto a analizar, y en modo pondremos un número del 0 al 2. Dependiendo del modo la función dará los siguientes resultados:  Modo 0: Devuelve el número de palabras que contiene el $texto.  Modo 1: Devuelve un array indexado con todas las palabras que contiene el $texto.  Modo 2: Devuelve un array asociativo donde la clave indica en que número de carácter de la cadena comienza la palabra, y el valor es la palabra en sí. o substr_count($texto, $subcadena): Devuelve un número que indica las veces que una determinada $subcadena (carácter, palabra) aparece dentro de una cadena de texto $texto. o strpos($texto, “caracter”): Devuelve un número que indica la primera posición del “caracter” pasado en el segundo argumento, dentro de la cadena $texto. o strrpos($texto, “caracter”): Funciona de forma análoga a la anterior, sólo que el número que devuelve es el de la última posición del “caracter” dentro de la cadena $texto. o stripos($texto, “caracter”): Funciona igual que la función strpos() pero sin tener en cuenta la diferencia entre mayúsculas y minúsculas. o strripos($texto, “caracter”): Funciona igual que la función strrpos() pero sin tener en cuenta la diferencia entre mayúsculas y minúsculas. Cadenas de texto y arrays. o explode(“separador”, $texto): Separa los elementos de un texto devolviéndolos en un array. En “separador” se indican uno o varios caracteres dónde se debe hacer la partición del texto para definir los distintos elementos del array. $texto es la variable que contiene el texto que se convertirá en array. o implode / join(“elemento_union”, $array):Convierte un array en cadena de texto. Como segundo argumento debemos pasar un array que se transformará en una cadena de 0, 1, o varios caracteres, que aparecerá escrita entre cada elemento del array. o chunk_split($texto, numero_caracteres): Devuelve un array en el que cada elemento consiste en un trozo de la cadena pasada en $texto, de tantos caracteres como el número indicado en numero_caracteres. o in_array($valor, $array): Comprueba si existe dicho valor en un determinado array sin tener que recorrerlo.
  • 31. - PHP Sergio Santos Gil 31 Cambiar mayúsculas y minúsculas. o strtoupper($texto): Devuelve la cadena de texto pasada en $texto con todas sus letras en mayúsculas. o strtolower($texto): Devuelve la cadena de texto pasada en $texto con todas sus letras en minúsculas. o ucwords($texto): Devuelve la cadena de texto pasada en el argumento $textocon la primera letra de cada palabra pasada a mayúsculas, siempre que ésta sea un carácter alfabético. o ucfirst($texto): Devuelve la cadena de texto pasada en $texto con la primera letra de la cadena pasada a mayúsculas. Eliminar y reemplazar texto. o str_replace($buscar, $remplazar, $texto): Esta función es particularmente útil para remplazar una palabra o trozo de texto por otro, ya que dentro del texto indicado en $texto, busca los trozos que coinciden con la cadena indicada en $buscar y los sustituye por la cadena indicada en $remplazar. Si en el segundo argumento $remplazar indicamos una cadena vacía (“ “)lo que hará la función es eliminar del $texto los trozos coincidentes con $buscar. o str_ireplace($buscar, $remplazar, $texto): Esta función es igual que la anterior, pero no tiene en cuenta las diferencias entre letras mayúsculas y minúsculas. o substr($texto, comienzo, longitud): Devuelve una parte de la cadena pasada en $texto. El segundo argumento es un número que indica que carácter empieza la cadena devuelta, y el tercero indica su longitud. El tercer argumento “longitud” es opcional, si no se indica, la cadena devuelta llegará hasta el final de la cadena original. o sbstr_replace($texto, $sustituir, comienzo, longitud): Devuelve la cadena pasada en $texto, en la cual se sustituye un texto por otro. El texto nuevo se indica en $sustituir. El tercer argumento indica el comienzo del texto sustituido y el cuarto su longitud. o str_pad($texto, largo, $releno, tipo_relleno): Alarga la cadena de $texto hasta la longitud indicada en “largo”, para ello se utiliza la cadena indicada en $relleno. Es decir, si queremos que una cadena ocupe más espacio del que tiene, alargándola, en el argumento $relleno escribiremos ese carácter, con lo cual se alargará la cadena hasta la longitud indicada. o strtr($texto, “lista_1”, “lista_2”):Modifica el texto pasado en $texto, de manera que sustituye los caracteres de “lista1” por los de “lista2”. El primer carácter indicado en “lista1” es sustituido por el primero de “lista2” el segundo de “lista1” es sustituido por el segundo de “lista2”, y así sucesivamente.
  • 32. - PHP Sergio Santos Gil 32 Otros modificadores de cadenas. o str_repeat($texto, num): Devuelve el texto pasado en $texto, repetido el número de veces indicado en el argumento “num”. o strrev($texto): Devuelve la cadena pasada en $texto invertida (derecha a izquierda). o htmlentities($texto): Devuelve la misma cadena pasada en $texto, en la cual se han introducido al lenguaje HTML ciertos caracteres especiales que necesitan escribirse de manera distinta en HTML. o strip_tags($texto, <”etiq_permitidas”>): Elimina todas las etiquetas de HTML y PHP que haya en el texto de $texto. EL segundo argumento es opcional e indica cuales son las etiquetas permitidas (que no se eliminarán), estas deben indicarse entre los signos <… >. Funciones Matemáticas Funciones de cálculo. Estas funciones permiten hacer ciertas operaciones algo más complejas que las que nos permiten los operadores. o pow(base, exp): (Potenciación) Eleva el número indicado en base (base de la potencia) al número indicado en exp (exponente). o sqrt(num):(Raíz cuadrada) Calcula la raíz cuadrada del número pasado como argumento. o log(num, base): (Logaritmo) Devuelve el resultado del logaritmo para num. base es opcional, e indica la base del logaritmo. o log10(num): (Logaritmo en base 10) Devuelve el resultado del logaritmo en base 10 para el argumento pasado. o decbin(num): (Conversión a binario) Convierte el número pasado en el argumento en número binario. o bindec(num): (Conversión a decimal) Convierte un número binario a decimal. o decoct(num): (Conversión a octal) Convierte el número pasado en octal. o dechex(num):(Conversión a hexadecimal) Convierte el número pasado en un valor hexadecimal. o base_convert(num, base1, base2): (Conversión de una base a otra) Convierte el número pasado en el argumento, el cual se toma escrito en la “base1”, a la base especificada en “base2”. o max(array): (Máximo valor) Devuelve el valor más alto de todos los que se pasan en una lista. La lista de números puede pasársele en forma de array o pasar los números directamente como varios argumentos. o min(array): (Mínimo valor) Devuelve el valor más bajo de todos los pasados en una lista.
  • 33. - PHP Sergio Santos Gil 33 Redondeo, valor absoluto y número aleatorio. o abs(num): (Valor absoluto) Devuelve el valor absoluto del número pasado como argumento, es decir, siempre positivo. o round(num, precision): (Redondeo) Redondea el número pasado en el primer argumento al entero más cercano cuando no especificamos el segundo argumento, el cual es opcional e indica el número de decimales que queramos obtener el número redondeado. o rand(min, max): (Número aleatorio) Genera un número entero aleatorio comprendido entre los números pasados en “min” y en “max”. Funciones trigonométricas. o deg2rad(grados): (Conversión grados a radianes) Convierte el número pasado en el argumento a radianes. o rad2deg(rad): (Conversión radianes a grados) Convierte el número pasado en el argumento a grados. o sin(num): (Seno) Calcula el seno del ángulo pasado en el argumento. o cos(num): (Coseno) Calcula el coseno del ángulo pasado en el argumento. o tan(num): (Tangente) Calcula la tangente del ángulo pasado en el argumento. o asin(num): (Arco-seno) Calcula el arco seno del número otorgado. o acos(num): (Arco-coseno) Calcula el arco coseno del número otorgado. o atan(num): (Arco-tangente) Calcula el arco tangente del número otorgado. Funciones de Fecha o time(): Devuelve la marca de tiempo UNIX para la fecha actual. o mktime(hora, min, seg, mes, dia, año): Esta función devuelve la marca de tiempo UNIX para una fecha concreta. o date(“formato”): Muestra la fecha actual según el formato (d = día; m = mes; y = año; h=horas; H=horas 24; i=minutos; s=segundos). o strtotime(String): Devuelve el timestamp correspondiente a la fecha indicada en varios formatos (“dia-mes-año”; “año/mes/dia”; “mes/dia/año”). o setlocale(categoría, “localización”): Esta función tiene dos argumentos, “categoría” indica cual es el tipo de información que debe tratarse de forma local, y “localización” pondremos en forma de cadena el código del país o región local. o date_default_timezone_set(“zona_horaria”):Cambia la hora que nos da el servidor por la de la zona que introduzcamos como parámetro, por ejemplo: (“Europe/Madrid”). Esta afectará a todas las fechas posteriores que escribamos a partir de esta función.
  • 34. - PHP Sergio Santos Gil 34 Otras Funciones Transformación de variables. o floatval($var):Transforma la variable pasada como argumento a número decimal. o intval($var):Transforma la variable pasada como argumento a número entero. o strval($var):Transforma la variable pasada como argumento a cadena de texto. o floatval($var):Transforma la variable pasada como argumento a número decimal. o settype($var,tipo):Transforma la variable pasada en el primer argumento en el tipo indicado en el segundo argumento. o eval($var): Esta función convierte una variable normal en códigoPHP, es decir, lo que le pasamos en el argumento es interpretado como parte del código de la página, y no como una variable. Comprobaciones de variables. o is_int($var): Comprueba si la variable pasada en el argumento es un entero. o is_float($var): Comprueba si la variable pasada en el argumento es un decimal. o is_string($var): Comprueba si la variable pasada es una cadena de texto. o is_array($var): Comprueba si la variable pasada en el argumento es un array. o is_object($var): Comprueba si la variable pasada en el argumento es un objeto. Otras funciones. o fscanf(STDIN, “tipo%n”, $variable): Esta función permite al usuario introducir por teclado el valor de la $variable, donde el tipo puede ser String (s%n), un número entero (d%n), o un número decimal (f%n). o isset($var): Devolverá el booleano true si la variable está definida, o false si no lo está. o unset($var): Esta función eliminará la variable pasada como argumento. o gettype($var): Devuelve, como cadena de texto, el tipo de variable que es la variable otorgada como argumento de entrada. o header(“Location:ruta_pagina”): Permite redireccionar páginas web. Hay que tener en cuenta que el scriptPHP en el que pongamos esta función debe figurar al principio de la página, antes que cualquier otra etiqueta. El argumento que le pasamos será, entre comillas, la palabra Location seguido de dos puntos y la ruta de la página de envío, tal como lo pondríamos en un enlace.
  • 35. - PHP Sergio Santos Gil 35 Formularios Es conveniente saber, que un formulario HTML va siempre definido entre las siguientes etiquetas:<FORM> y </FORM>. Dentro de estas etiquetas, podemos incluir tantos atributos como nos permite el lenguaje HTML. Los atributos más destacados son: ACTION: Indica la dirección del script que va a procesar la información. METHOD: Especifica la forma de envío de los datos. Existen dos opciones: o GET se emplea para enviar los datos por la URL. o POST se utiliza cuando enviamos los datos por la entrada estándar STDIO. Con la palabra action, indicamos el script que va a procesar la información que recoger en el formulario; y con la palabra method se indica lo que quiere hacer el usuario con los datos. A la hora del envío de datos al servidor, podemos obtener los valores de los distintos campos del formulario gracias al atributo name. Según el método de envío, se utiliza su respectivas variables para obtener dichos datos ($_GET, $_POST, $_REQUEST para ambos métodos). Archivo HTML Archivo PHP En el formulario HTML podemos utilizar elementos como <INPUT> y <SELECT>. Los valores de dichos elementos los rellenará el visitante de la página. Al enviar el formulario indicado se genera una variable cuyo nombre se especifica mediante el atributo name. El valor será introducido por el usuario.
  • 36. - PHP Sergio Santos Gil 36 INPUT Cuadro de texto (text). Es el método más utilizado para recoger información detallada en un formulario. Sirve para entradas de texto sencillas, como un nombre, dirección, teléfono… que son introducidos por el usuario. Es fácil identificarlo, puesto que crea un cuadro de texto donde podremos escribir el máximo de caracteres que se especifique. Cuadro de contraseña (password). Este campo se utiliza cuando queremos que no se muestre la información al escribir el contenido, se emplea normalmente para cuando el usuario vaya a escribir su contraseña. Campo oculto. Estos campos se utilizan para añadir información dentro de un formulario, la cual permanece oculta a la vista del usuario. Se emplea con el parámetro hidden. Casillas de verificación. Estas casillas se utilizan cuando solo se puede elegir entre un número de opciones concreto. Pretende buscar la comodidad en el usuario y menor tiempo de respuesta. Es la mejor solución para ofrecer opciones definidas, que se podrán seleccionar o no haciendo click encima de la casilla, que se mostrará como marcada si aparece una pequeña marca en la casilla correspondiente. o checkbox: Este tipo de casillas permiten seleccionar varias opciones a la vez. o radio: Solo permite seleccionar una opción, descartando las demás posibilidades. Podemos poner una opción marcada por defecto gracias a la opción CHECKED Botón de comando. Este botón es el encargado, de cuando hacemos click sobre él, de enviar los datos del formulario al script especificado con el atributo action indicado al principio.
  • 37. - PHP Sergio Santos Gil 37 SELECT En esta opción se puede seleccionar uno de los elementos de la lista desplegable. La etiqueta <SELECT> crea el campo de selección y dentro del mismo se va añadiendo las diferentes opciones disponibles con el parámetro <OPTION>. También se puede especificar mediante el atributo multiple poder seleccionar más de una opción del menú. Para ello, se tiene que especificar el valor del atributo name como array. Para poder seleccionar más de una opción, se tiene que mantener la tecla control pulsada mientras se clickean en las distintas opciones. LABEL Gracias a esta etiqueta podemos asociar un texto a un determinado elemento del formulario y se muestra junta a él. Para vincular dichos elementos, se emplea el atributo for en la etiqueta <LABEL>, cuyo valor tiene que coincidir con el valor del atributo id del elemento a asociar.
  • 38. - PHP Sergio Santos Gil 38 TEXTAREA Este campo se utiliza cuando el texto es demasiado largo y queremos que se muestre y se pueda leer completamente. Para desplazarnos dentro del cuadro usamos las barras de desplazamiento. o rows: Especifica el número de filas del área del texto. o cols: Especifica el número de columnas del área del texto. o readonly: El control es de sólo lectura, por lo que el usuario no podrá escribir y el contenido se enviará al servidor. o disabled: El control está deshabilitado, por lo que el usuario no puede escribir y tampoco se envía el contenido al servidor. FIELDSET Agrupa visualmente algunos elementos de un formulario, dibujando un recuadro alrededor de todos ellos. Se complementa con la etiqueta <LEGEND> que le otorga un título al recuadro.
  • 39. - PHP Sergio Santos Gil 39 Otros isset() y empty(). Estas funciones manejan los mensajes de errores, warnings o notices en el lado servidor al intentar procesar parámetros que no se han recibido o que no tienen ningún valor. isset()devuelve true si se ha enviado algún parámetro, y empty() devuelve true si no se ha enviado ningún valor . Envió de ficheros al servidor. Se puede enviar archivos al servidor gracias al tipo file de la etiqueta <INPUT>. Para poder recibir esos archivos al servidor, se emplea el comando $_FILES[“nombreArchivo”][info], que contiene información fija para cada archivo subido, en un array asociativo bidimensional, donde info puede valer: o name: nombre del archivo. o size: se especifica el tamaño del archivo. o type: tipo del archivo. o tmp_name: nombre que tendrá el archivo temporal. o error: estado de la subida. Si el valor es 0 la subida será correcta, en cambio, si es menor de 0 dará error. Los archivos inicialmente son subidos a una carpeta temporal, con un nombre del tipo php001.php. El archivo será eliminado posteriormente, por eso es preciso copiarlos en otra carpeta para poder conservarlos (copy()). Código en cliente Código en servidor
  • 40. - PHP Sergio Santos Gil 40 Cookies Una cookie es un mini archivo de información sobre el usuario, que el servidor coloca en el equipo cliente con diferentes fines: Diferenciar a los usuarios y ofrecer a cada uno el contenido que corresponda. Autenticar al usuario de forma directa. Establecer nuestras preferencias y opciones. El uso de cookies se justifica porque HTTP es un protocolo sin estado. Las cookies se asocian a una combinación máquina + usuario + navegador. Por tanto, son accesibles para todas las personas que compartan esta combinación, de modo que es muy recomendable no guardar información sensible. También pueden contener información sobre los hábitos de navegación de los usuarios en un sitio web. Para crear una cookie en PHP se emplea la función setcookie(“nombre”,[”contenido/s”]). Es imprescindible colocar la función antes de generar cualquier salida, porque si no el intérprete producirá un error y no se creará la cookie. Puede contener varios contenidos: “contenido”: contenido de la cookie, puede ser vacío. “caduca”: fecha y hora de caducidad expresada en tiempo Unix. Por defecto, al cerrar la ventada del navegador. “ruta”: establece el directorio del servidor al que se asocia la cookie. “dominio”: establece el dominio del servidor. “enviar para”: booleano que indica si la cookie se enviará en conexiones seguras HTTPS o en cualquier tipo de conexión. “accesible”: establece si la cookie será accesible sólo por el servidor o mediante el navegador usando scripts. Y para acceder a la información de las cookies se emplea la variable $_COOKIE.
  • 41. - PHP Sergio Santos Gil 41 Sesiones Las sesiones son un sistema que permite a los servidores guardar una relación entre conexiones, pero a diferencia de las cookies, la información se almacena en el servidor. Para iniciar una sesión, se emplea el método session_start() que comprueba si hay una sesión abierta, si no la hay creará una. En cambio, si existe la sesión, reanudará la sesión con el mismo identificador. Para consultar el identificador se emplea el método session_id(). Para permitir que una variable pertenezca a una sesión y pueda transmitirse entre diferentes páginas, es preciso registrarla mediante la variable $_SESSION. La información se las sesiones se guarda durante un perdido determinado, que puede ser el cierre de sesión por pate del usuario o un tiempo de expiación establecido previamente. Estas sesiones se almacenan en el directorio tmp del servidor web. Como las sesiones se pueden quedar almacenadas, podemos eliminarlas gracias al método session _destroy(), o simplemente eliminar su contenido con session_unset().
  • 42. - PHP Sergio Santos Gil 42 AJAX AJAX (Asynchronous Javascript And XML) son técnicas del lado cliente, utilizando JavaScript para conseguir que el documento de una página cambie, con información proveniente del servidor, pero sin necesidad de recargarse completamente de nuevo. Es asíncrono porque se pueden actualizar varias partes de la página simultáneamente, sin necesidad de que acabe la actualización de una para que empiece la siguiente. Y es XML para que la información la pueda entender el cliente. Una de las operaciones más habituales en las aplicaciones AJAX es la de obtener el contenido de un archivo o recurso del servidor.
  • 43. - PHP Sergio Santos Gil 43 XMLHttpRequest Es un objeto que nos permite la transferencia de datos desde la página al servidor y viceversa. Nos sirve tanto para incorporar datos en la página que tengamos en otros archivos del servidor, como para mandar datos de la página al servidor, y todo esto de forma asíncrona. Propiedad Valor readyState Devuelve un número que indica el estado de la carga del documento: 0.- sin inicializar 3.- cargando 1.- inicializado 2.- Cabeceras recibidas 4.- completado responseBody Devuelve la respuesta como un array de bytes. responseText Devuelve la respuesta como una cadena de texto responseXML Devuelve la respuesta como un archivo XML. status Devuelve el código de estado de la URL solicitada: 200.- Acceso correcto a la página 404.- Solicitud incorrecta, no se puede conectar a la página 500.- Error interno que no permite ver la página statusTetx Igual que el anterior, pero devuelve el código de estado con una cadena de texto (“Ok”, “Not Found”, Internal Server Error,…). Método Función open(método_envío, URL [, sincronía, user, passwd] ) Este método es el que indica cual y cómo es la petición que debe hacerse al servidor. Tiene como parámetros el método de envío de los datos y la ruta en la que está el archivo con el que intercambiamos datos. De forma opcional se puede indicar mediante un booleano si la transmisión de datos se realiza de forma asíncrona (true) o síncrona (false), y podemos poner un usuario con su contraseña para la autentificación. send(datos) Envía la petición al servidor, donde como parámetro enviaremos los datos al servidor cuando usemos el método de transmisión POST. Tiene que ir después del open(). abort() Detiene la petición actual. setRequestHeader(cabecera, valor) Permite establecer cabeceras personalizadas en la petición HTTP. Se debe invocar después del open(). getAllResponseHeaders() Devuelve una cadena de texto con todas las cabeceras de la respuesta del servidor. Evento Descripción onreadystatechange Se produce cada vez que hay un cambio en el estado de carga del documento. onabort Se produce cuando se interrumpe la carga del documento. onload Se produce cuando el documento se ha cargado completamente. onloadstart Se produce cuando comienza la carga del documento. onprogress Se produce mientras el documento se está cargando.
  • 44. - PHP Sergio Santos Gil 44 Conexión a una BBDD Antes de realizar cualquier operación con una base de datos desde una web, debemos realizar una conexión al servidor de la base de datos, en este caso emplearemos el sistema gestor de bases de datos de MySQL, y a la propia base de datos. Esto se hace mediante las funciones mysql_connect, para conectarnos a MySQL, y mysql_select_db para conectarnos a nuestra base de datos. Si poseemos un servidor externo, debemos conocer los datos de conexión que se nos facilitarán al realizar la contratación. En la función mysql_connect debemos poner la dirección IP del servidor: mysql_connect (“servidor”,”usuario”,”password”); $conexion = mysql_select_db (“Base de datos”);
  • 45. - PHP Sergio Santos Gil 45 Introducir Registros Para crear un nuevo registro en una de las tablas de nuestra base de datos, debemos generar la información para después introducirla una sentencia SQL (INSERT INTO) que se envía mediante la función mysql_query: mysql_query("INSERT INTO tabla(campos) VALUES(valores), $conexion); Listado de Registros Para elaborar un listado completo de la base de datos, realizamos una consulta SQL (SELECT) que almacenará la información en una variable $resultado. $resultado=mysql_query("SELECT * FROM tabla"); Posteriormente, mostramos la información de $resultado mediante la función mysql_fetch_array que devuelve una variable array con los contenidos de un registro a la vez que posiciona sobre el siguiente. Utilizamos un bucle while para mostrar de forma secuencial cada uno de los registros: while( $array=mysql_fetch_array($resultado) ){ $array["campo"]; } Borrado de Registros Una forma de realizar un borrado de registros es la sentencia SQL (DELETE) mediante la función mysql_query, indicando las condiciones que deseemos. mysql_query("DELETE FROM tabla WHERE condiciones); Modificación de Registros Para realizar modificaciones, se emplea la sentencia SQL que modifica los valores (UPDATE) mediante la función mysql_query. mysql_query("UPDATE tabla SET campo='nuevo_valor’);
  • 46. - PHP Sergio Santos Gil 46 Conexión con PDO La extensión PDO (Objetos de Datos de PHP) define una interfaz ligera para poder acceder a bases de datos en PHP. Proporciona una capa de abstracción de acceso a datos, lo que significa que, independientemente de la base de datos que se esté utilizando, se usan las mismas funciones para realizar consultas y obtener datos. Se activa descomentando el apartado extensión=php_pdo_mysql.dll del fichero php.ini.
  • 47. - PHP Sergio Santos Gil 47 Para un uso más docente, podemos usar las sentencias preparadas, que son scripts compilados de SQL que pueden ser personalizados usando parámetros de variables. Estas consultas sólo necesitan ser analizadas una vez y puede ser ejecutada varias veces cambiando o no los parámetros. Así se evita repetir el ciclo de análisis, compilación y optimación cada vez que se ejecuta, por lo que usan menos recursos y se ejecutan antes.
  • 48. - PHP Sergio Santos Gil 48 Arquitectura MVC La arquitectura MVC se refiere a la separación de las responsabilidades de una aplicación en tres áreas diferenciadas: Modelo: Se encarga de la gestión de la lógica de negocio y la persistencia de datos. o Utiliza un singleton para la conexión a la base de datos. o Utiliza objetos, con métodos get/set para sus atributos. o Crea funciones estáticas para cada acción específica que solicite el controlador. Vista: Se encarga de la presentación de los datos y la gestión de eventos para desencadenar acciones en el controlador. o Debería contener HTML principalmente. o Intercala con PHP en las formas <? //código PHP ? >. Controlador: Se encarga de gestionar todas las peticiones que vienen desde la interfaz para acceder al modelo. o Habrá normalmente un controlador de fachada y varios subcontroladores: uno por cada entidad, por caso de uso o funcionalidad. o El controlador de fachada debe ser el punto único de entrada a nuestra aplicación. o Sólo deben contener PHP. o Son los únicos que manejan sesiones, cookies y cabeceras.