1-Introduccion a PHP |
PHP es un lenguaje de scripting que permite la generacion dinamica de contenidos en un servidor web. El significado de sus siglas es HyperText Preprocessor. Entre sus principales caracteristicas cabe destacar su potencia, su alto rendimiento, su facilidad de aprendizaje y su escasez de consumo de recursos. El codigo PHP debe incluirse dentro del codigo html de la pagina. Para delimitar la seccion de codigo PHP podemos hacerlo de varias formas: -Usando las etiquetas <?php y <? El funcionamiento de las paginas en PHP alojadas en un servidor es el siguiente: -El navegador del cliente solicita el documento php |
2-Variables |
||||||||||||||||||||||||||||||||
Una variable podria definirse como una posición de memoria creada para introducir o asignar cualquier valor o dato.Durante la ejecucion del script el valor de la variable puede «variar»(valga la redundancia) tanto de tipo como de valor.En PHP(al igual que en Javascript) no hace falta declarar la variable ya que simplemente anteponiendo el caracter $ a el nombre d la variable estamos indicando que es una variable. Otro hecho que cabe destacara a la hora de programar en PHP y la declaracion de variables es que PHP es un lenguaje «CASE SENSITIVE» es decir que diferencia entre mayusculas y minusculas y debido a esta razon no seria lo mismo $miVariable=valor; que $MiVaRiABle=valor; ya que PHP lo interpretaria como dos variables completamente diferentes. Los tipos de datos posibles que puede almacenar una variable son los siguientes :
En capítulos posteriores daremos cabida a los dos ultimos tipos de datos(array y object) que aqui no han sido explicados ni comentados apenas. Convertir tipos PHP es un lenguaje que realiza la conversion de tipos en funcion de los operandos y de el operador. De esta forma si intentamos sumar ’10’ y 20 la accion que realizaria seria convertir la primera variable a numérica y de esa forma podria sumar 10+20=30. Aparte de que PHP en algunos casos realiza la conversion existen dos funciones especiales del propio lenguaje las cuales nos permiten saber el tipo de variable que estamos usando y tambien pueden convertir el tipo de variable: gettype() Recibe el tipo de variable que es Variables caracteristicas de PHP
Constantes Son valores que se van a mantener constantes a lo largo de la ejecucion del script y que posiblemente queramos usar a lo largo del script un gran numero de veces. Para ello usamos la siguiente sintaxis: define(«nombre de la constante», valor);
|
3-Operadores en PHP |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Al desarrollar cualquier programa empleamos normalmente operadores que nos sirven para realizar diversas operaciones que le otorgan un cierto grado de complejidad a nuestros programas, ya que, de otro modo el programa realizaria siempre lo mismo y por tanto no seria un programa util.
|
4-Estructuras de control |
A partir de ahora vamos a dotar de mas «dinamismo» a nuestros scripts ya que a partir de diversas estructuras indicaremos que accion debe realizar en cada caso, ademas tambien nos dara la posibilidad de realizar una misma accion multitud de veces con tan solo una linea de codigo. Estructura IF IF es una estructura de control utilizada para tomar decisiones segun se cumpla una condicion (o varias) o no. Su estructura básica es la siguiente: if(condicion/es){ Veamos un ejemplo básico para entenderlo mejor: if($edad>=18){ e incluso podemos realizar condicionales mas completas como el siguiente caso: if(($edad>=18)&&($dinero>0)){ Estructura SWITCH Toma distintas decisiones en funcion de distintos estados de la variable.Su sintaxis es la siguiente: swithc(expresion){ Bucle FOR El bucle for se usa para repetir una misma operacion un número determinado de veces.Su sintaxis es la siguiente: for(inicializacion;condición;actualización){ El bucle for esta compuerto de 3 partes: Un ejemplo de su uso seria el siguiente: for($i=1;i<=10;i++){ De esta forma escribiria todos los numeros contenidos entre 0 y 10. Bucles WHILE y DO WHILE Bucle WHILE while(condicion){ Para entender mejor el uso de while nos serviremos del siguiente ejemplo: while($color != «rojo»){ Este es un ejemplo de lo que se puede hacer con while.En este caso siempre y cuando el color no sea rojo nos dira que introduzcamos un color. Bucle DO…WHILE Este bucle se usa cuando no sabemos el número de veces que va a ejecutarse un bucle pero lo que si tenemos claro es que por lo menos una vez si que se ejecutara la accion.Su sintaxis es la siguiente: do{ BREAK y CONTINUE BREAK Se usa para detener el bucle y dejar de interpretar el código que sigue despues de el break CONTINUE Sirve para volver al principio del bucle desde cualquier parte del bucle. |
5-Funciones |
Una de las herramientas mas importantes en cualquier lenguaje de programación son las funciones. Una funcion consiste en un conjunto de rutinas y acciones que a lo largo del script van a ser ejecutadas multitud de veces agrupados en una FUNCION y desde cualquier punto del script puede ser llamada y ejecutada.A su vez esta funcion puede recibir parámetros externos de los cuales dependa el resultado de una funcion. Las funciones deben ser colocadas siempre antes de realizar la llamada a la funcion(como es logico).La sintaxis de una funcion es la siguiente: function nombre(parametros){ Un ejemplo para entender el uso de funciones es el siguiente: function sumar($sumando1,$sumando2){ sumar(5,6) Un hecho relevante que cabe destacar es que las variables que declaremos dentro de la funcion solo existiran o tendran dicho valor dentro de la funcion. Existen casos en los cuales no sabemos el número de parámetros que le pasaremos a la funcion y en estos casos debemos usar las funciones creadas al efecto como son: func_num_args() Numero de parametros que se le han pasado a la funcion |
6-Inclusion de codigo desde un fichero |
En ocasiones es necesario cargar el mismo archivo en diferentes scripts y de esa forma no repetir el mismo codigo en diversos scripts. Parece entonces razonable que debe existir algun metodo o forma de cargar algun archivo externo y de esa forma generar parginas web mas dinamicas. A este efecto PHP dispone de dos instrucciones para poder cargar archivos: Require(«archivo»); Include(«archivo»); |
7-Matrices(array) |
||||||||||||||||||||||||||||||||||||
En la realizacion de un script en PHP en multiples ocasiones existen variables que tienen informacion similar y se procesan de forma semejante.Para ello php(y otros lenguajes) poseen un elemento denominado array.Un array es un conjunto de variables agrupadas bajo un unico nombre. Cada variable dentro de la matriz se denomina elemento.Dentro de la misma matriz pueden existir variables de diferentes tipos y no es necesario que sean todas del mismo tipo. Hay que diferenciar entre los dos tipos de matrices existentes: Para crear matrices en PHP existen dos formas: -De forma implicita, que consistiria en indicarle el elemento(ya sea proporcionando su posicion o su clave).Ejemplo: $nombres[0]=’Javier’; -Mediante array() en el cual le pasamos los elementos como parametros.En caso de matriz indexada toman la posicion que ocupan en la creacion de la matriz, mientras que los de la matriz asociativa se les asigna su valor mediante «=>».Ejemplo: $amigo=array(‘Nombre’=>’Jose’ ‘Direccion’=’Neopatria 21’); Cabe destacar que PHP no solo se limita a la existencia de matrices por si solo sino que existen matrices de matrices, o lo que es lo mismo,matrices multidimensionales.Ejemplo: $amigos[2][‘Pedro’] Recorrido de una matriz Disponemos de diversas herramientas para poder acceder a los elementos de una matriz.En cada momento se mantiene una referencia del elemento de la matriz al que se tiene acceso, por tanto, para recorrer una matriz bastara con modificar dicha referencia.En caso de una matriz indexada el recorrido se realizara mediante un bucle y para ello debemos saber el número de elementos totales que posee la matriz. Para ello nos basamos de la funcion count(variable) donde variable representa la variable de la que se quiere obtener el número de elementos.Si variable es una matriz devuelve el numero de elementos que tiene, devuelve 1 si solo tiene un elemento(aunque no sea matriz) y 0 si no tiene ningun valor. Otra funcion que nos permite saber el número de elementos es sizeof(matriz) .
La funcion que realiza el constructor list(variable1,variable2…variableN) es asignar los valores del elemento actual de una matriz a las variables indicadas como parametro. Navegacion sobre matrices Cuando se trata de matrices indexadas la navegacion es sencilla ya que tan solo basta acceder al elemento que queremos mostrar, pero al tratarse de alguna matriz asociativa no se puede aplicar el mismo tratamiento. Para ello existen un conjunto de funciones pre fabricadas que nos permiten realizar multitud de acciones:
Insercion de elementos Para la inserción de elementos dentro de un array existen una serie de funciones que nos permiten añadir elementos.Entre ellas destacamos: array_push(matriz,variable1,variableN); array_unshift(matriz,variable1,variableN); array_pad(matriz,nuevo_tamaño,valor_relleno); Eliminación de elementos array_shift(matriz); array_pop(matriz); array_splice(entrada,pos_ini,[tamaño],[sustitutos]); array_keys(matriz,[valor buscado]); array_values(matriz); Manipulacion masiva de matrices array_walk(matriz,nombre_de_la_funcion,lista_parametros); Obtencion de submatrices array_slice(matriz,posicion,tamaño); Ordenacion de matrices
Otras funciones En este apartado se comentaran una serie de funciones(no todas porque seria imposible) que nos pueden servir en cierto momento. compact() Devuelve una matriz asociativa a partir de un numero indeterminado de parametros |
8-Cadena de caracteres |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
En este capítulo se comentaran todos los pormenores relacionados con cadenas de caracteres, las funciones existentes,etc. Cadenas de caracteres Una cadena consiste en una secuencia de caracteres que se encuentran comprendidos entre unos delimitadores que pueden ser: En caso de que se desee por ejemplo unas » » dentro de las comillas de la cadena de caracter es necesario realizar la accion que se denomina escapar un caracter que consiste en precederlo de una \ es decir \». Los caracteres especiales que pueden aparecer dentro de un documento con delimitacion son:
El caso de documento incrustado es diferente al de ambas comillas.Su sintaxis es la siguiente: <<<Identificador El resultado obtenido con documento incrustado es el texto mostrado igual que se ha introducido. La funcion chr(valor) nos devuelve en una variable del tipo cadena el caracter de la tabla de codigos ASCII asociado a un valor que recibe como parametro, el valor que se pase debe estar entre 0 y 255. Visualizacion de cadenas -Echo: Es el modo de visualizacion mas empleado.Su sintaxis es la siguiente: echo «texto»;
–Sprintf(formato,[valores]); su funcionamiento es identico a printf lo unico que la cadena resultante de aplicarle un determinado formato se guarda en una variable. Alteracion del contenido En ocasiones es necesario emplear dichas funciones para alterar el formato de salida de las cadenas. Las funciones empleadas para modificar dicho formato son: –chop(cadena); Devuelve la cadena de caracteres con los caracteres de blanco y nueva linea eliminados Acceso al contenido –strlen(cadena); Indica el nº de caracteres de una cadena 0->Matriz indexada con frecuencia de aparicion de todos los caracteres del codigo ASCII –substr_count(cadena,subcadena); Frecuencia de aparicion de una cadena *Apoyo a HTML –addcslashes(cadena,lista); Devuelve una cadena que tiene escapados todos los caracteres como parámetro.
|
9-Fechas |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
En este capítulo se estudiaran las funciones existentes en PHP para el empleo de fechas.Este tipo de funciones existen en la mayoria de lenguajes de programacion y van orientadas a su obtencion y representacion en diferentes formatos. El tiempo en cualquier lenguaje de programacion se suele tomar con respecto al inicio de la «era UNIX» que es el 1 de enero de 1970 a las 00:00:00. La funcion mas sencilla que se basa en esta marca de tiempo es la funcion time() cuyo valor devuelto es el numero entero que representa la marca de tiempo correspondiente al instante en que se ejecuto la funcion con respecto a la era unix; en algunas aplicaciones es necesario poseer una marca de tiempo mas detallada y por ello usamos microtime() que devuelve una cadena de caracteres con los segundos y microsegundos. En caso de que quisieramos tener como valor de referencia la hora del ordenador desde el cual se ejecuta empleariamos la funcion gettimeofday() en la cual pasariamos como parametro interno: sec(para saber los segundos),usec(microsegundos),minuteswest(nº segundos al oeste de greenwich) y dstime(tipo de correccion en horarios de verano e invierno). Estas funciones citadas anteriormente son poco utilizadas ya que la existencia de otras funciones mas completas como por ejemplo la funcion getdate() que obtiene una matriz asociativa con la informacion de la fecha y hora del sistema. Los elementos de dicha matriz son:
Si no le pasamos ningun parametro a la funcion entonces se considera la hora actual del sistema y si se recibe como parametro un numero entero entonces lo convierte a la fecha correspondiente. Otra funcion para obtener la hora es la funcion localtime(marca_tiempo,tipo_matriz); cuyos valores pasamos a comentar a continuacion:
Formatos de fechas Las funciones vistas anteriormente nos permitian convertir el valor entero de la fecha en un valor mas facilmente entendible, aunque para poder acceder a dicha informacion hay que pasar por el paso previo de obtener una matriz.Para evitar ese paso intermedio php pone a su disposicion la funcion date(formato,marca_tiempo); esta funcion nos devuelve una cadena de caracteres que se corresponde con una fecha a la que se ha aplicado un determinado formato. Para definir el formato de la fecha se dispone de las siguientes opciones:
La funcion strftime() representa otra posibilidad para aplicar formatos a una fecha.Esta funcion utiliza las convenciones locales de la maquina desde la que se ejecuta el script para devolver una cadena con el formato definido en el idioma seleccoinado .Su formato queda definido por los siguientes valores:
Estableciendo horas y fechas Una vez conocida la forma de obtener la fecha actual, es necesario disponer de una forma de poder fijar una determinada hora para establecer por ejemplo la fecha de caducidad de una cookie, es decir, la forma de obtener una marca de tiempo correspondiente a una determinada hora. Para ello php dispone de dos funciones que son mktime() y gmmktime() cuyo funcionamiento explicaremos a continuacion: La funcion mktime(hora,minuto,segundo,mes,dia,año,[ajuste->0 horario de verano y 1 invierno]); nos devuelve un valor entero que representa la marca de tiempo UNIX de una determinada fecha.Cada uno de los valores mencionados puede omitirse siempre y cuando a partir del valor omitido no se representen mas valores a su derecha. La funcion setlocale(categoria,pais); nos permite establecer el idioma en los que apareceran la fecha,hora,etc. Las categorias posibles son:
Validacion de fechas Existen numerosas ocasiones en las que es necesario la creacion de un sistema para comprobar si la fecha introducida por el usuario es valida o no, para ello PHP nos brinda dos funciones capaces de realizar dicha comprobacion: –checkdate(mes,dia,año); Comprueba que la fecha introducida sea correcta |
10-Entrada y salida en PHP |
||||||||||||||
Las operaciones de entrada/salida en PHP tienen una gran importancia en cualquier lenguaje de programacion ya que no tiene sentido que un lenguaje de programacion no pueda escribir,leer,actualizar datos de una base de datos,etc. En este capitulo nos centraremos basicamente en las operaciones de entrada y salida con archivos y posteriormente explicaremos las operaciones con bases de datos. Supongamos que deseamos hacer una tienda de compra online, imaginemos el gran esfuerzo que supondria tener que modificar todas las paginas HTML de aquellos productos en los cuales en la temporada de oferta su precio se viera afectado. La solucion mas primitiva para el almacenamiento de datos es un fichero de texto, el contenido del fichero de texto puede ser cualquiera. ¿Como abrimos un fichero? Para abrir un fichero PHP pone a disposicion una funcion.Su sintaxis es la siguiente:
¿Como se recorre un fichero? Para leer un fichero logicamente la operacion es muy sencilla(consiste en ir leyendo todos los caracteres hasta llegar al EOF(end of file… final del archivo) el cual determina el final del texto). Al igual que en las matrices los ficheros poseen un cursor interno que indica su posicion actual con respecto a todo el texto. Para comprobar si se ha llegado al final del archivo PHP pone a nuestra disposicion de la funcion feof(fichero); que se encarga de comprobar si la posicion actual del fichero es la marca del final. La funcion mas generica de lectura es fread(fichero,nº_bytes); que se encarga de leer un numero determinado de bytes del fichero y delvolvernoslo en una cadena de caracteres, en cambio, si lo que pretendemos es leer el fichero caracter a caracter debemos usar la funcion fgetc(fichero); . Otras de las funciones mas caracteristicas son: fgets(fichero,nº bytes); que nos devuelve una cadena de caracteres con la informacion leida. fgetss(fichero,nº bytes,[mostrar_tags]); nos lee un fichero HTML omitiendo las etiquetas caracteristicas del codigo, en mostrar tags debemos introducir las etiquetas que deseamos que se muestren. Si al realizar la lectura lo que se pretenden leer los valores que siguen un determinado formato de entrada nos podemos ahorrar un gran trabajo usando la funcion fscanf(fichero,formato,variables); esta funcion obtiene los datos de entrada de un fichero siguiendo un formato determinado, posteriormente dicha informacion debe ser tratada por el programador. ¿Como se cierra un fichero? Cerrar es la ultima operacion que se debe realizar al manipular un fichero y permite cerrar la referencia que se hace al fichero en el script ejecutado. Para poder cerrar un fichero usamos la funcion fclose(fichero); Escritura en ficheros Para escribir en un fichero basicamente debemos realizar tres operaciones: abrir el fichero en modo escritura, realizar la operacion de escritura realizada, cerrar el fichero. Las funciones que empleamos para escribir en un fichero son fputs(fichero,cadena); y fwrite(fichero,cadena); que nos permiten añadir una cadena de caracteres al texto anterior contenido en el texto. Acceso directo en ficheros Existen un conjunto de funciones que nos permiten situarnos en una determinada posicion del fichero para leer a partir de ahi. Existen dos funciones basicas que nos posicionan al principio del fichero -> rewind(fichero); o que nos devuelven el valor actual de la posicion-> ftell(fichero); Funciones variadas para el manejo de ficheros fpassthru(fichero); Nos muestra el contenido referenciado por manejador de fichero.Devuelve el numero de bytes mostrados si no se produce ningun fallo. |
11-Operaciones con ficheros |
||||||||||||||||
En el desarrollo y administracion de sitios webs resulta bastante habitual tener que acceder a ficheros del servidor para manipularlos.Por esta razon en este capitulo vamos a describir las funciones creadas en PHP para realizar dichaws operaciones. Cambio, creacion y borrado de directorios chdir(ruta_al_directorio); nos permite cambiar el directorio activo a la ruta establecida como parametro. Procesamiento de los elementos de un directorio Supongamos que queremos realizar una operacion determinada como una busqueda,visualizacion,etc sobre todos los ficheros de un directorio.PHP nos proporciona una solucion a este problema: el manejador de directorios (representa una conexion logica con un directorio determinado que permite leer la lista con los nombres de los elementos contenidos en el directorio actual). La funcion empleada para abrir un directorio es opendir(ruta); cuya funcion como ya se ha comentado es abrir el directorio de la ruta especificada.Una vez se ha ejecutado opendir() podemos realizar tres operaciones: La funcion readdir(manejador); nos devuelve una cadena con el nombre del siguiente elemento del directorio ya sea un subdirectorio o un fichero. La clase dir PHP nos proporciona una pseudoclase predefinida para el manejo de ficheros. Esta clase no aporta ninguna funcionalidad que no hayamos visto hasta este punto pero recopila todas las funciones a partir de una sola. Para poder trabajar con un directorio primero hay que crear una instancia de clase dir por medio de su constructor. $directorio=dir(ruta_directorio); Este objeto cuenta con 3 metodos y 2 propiedades(las propiedades solo de consulta por lo que no pueden ser modificadas). Los metodos empleados son read(),rewind() y close() Copiado,borrado y renombrado de ficheros copy(fichero_origen,fichero_destino); Realiza una copia de un fichero Atributos de ficheros y directorios Los ficheros y directorios poseen una serie de caracteristicas propias denominadas atributos. PHP pone a nuestra disposicion un conjunto de funciones que nos permitiran obtener informacion sobre los archivos o carpetas. La funcion file_exists(elemento); Comprueba que el elemento pasado como parametro exista, el objetivo de la funcion filesize(nombre_fichero); nos informa sobre el tamaño del fichero en bytes.
Chmod(elemento_directorio,permisos); recibe como parametro el elemento y los permisos que deseamos otorgarle a dichos elementos |
12-El lenguaje SQL |
||||||||||||||||||||||||||||||||||||||
En este capitulo nos dedicaremos a explicar el lenguaje SQL ya que posteriormente lo usaremos mucho en las conexiones de PHP con MYSQL. Creacion y modificacion de Tablas en SQL Mysql esta organizado a partir de tablas y dichas tablas contienen campos. Cada campo es capaz de contener un tipo de dato. Los tipos de datos que es posible crear en el lenguaje SQL son:
Para crear una tabla usaremos la siguiente sintaxis: CREATE TABLE Nombre_tabla Esto nos crearia una tabla con 3 campos de los cuales Campo3 es un valor unico, es decir, que no puede ser sobreescrito. Para eliminar una tabla usaremos: DROP TABLE Nombre_tabla; Para modificar la estructura de la tabla usaremos la siguiente sintaxis: ALTER TABLE Nombre_tabla Los indices son una estructura de acceso que permiten organizar los datos contenidos en una tabla. Para crear un indice usariamos la siguiente sintaxis: CREATE [UNIQUE] INDEX NombreIndice Manipulacion de datos -Insercion de datos Para insertar datos en la tabla se realiza mediante el comando insert y su sintaxis es la siguiente: INSERT INTO NombreTabla [Campo1,Campo2…CampoN] VALUES (Valor1,Valor2…ValorN); –Consultas de datos Para esta accion usamos el comando SELECT y la sintaxis es la siguiente: SELECT ([*]/[Atributos]) FROM Tabla/s [WHERE ListaCondiciones] [GROUP BY Campo] [HAVING ListaCondiciones] [ORDER BY Campo] Existen un conjunto de funciones dentro de las consultas de datos que nos permiten obtener informacion o realizar operaciones con respecto a las filas.Las funciones son:
–Eliminacion de datos Para eliminar datos usamos la sentencia DELETE cuya sintaxis es la siguiente: DELETE FROM NombreTabla [WHERE Condicion]; |
13-Conexion con Mysql |
||||||||||||||||||||||||||||||||||||||||||
Una vez que ya hemos explicado un poco por encima todas las operaciones posibles y lógicas que podemos hacer con una base de datos en el lenguaje SQL llega el momento de combinarlo con la potencia de PHP y para ello usaremos el programa Mysql. Mysql es uno de los gestores de bases de datos mas utilizados en entornos en los cuales se emplea PHP ya que php dispone de numerosas funciones que se compaginan perfectamente con mysql.La forma generica de obtener informacion de tablas en Mysql es la siguiente: -Conexion con el gestor. Para realizar estas y otras muchas mas cosas disponemos de las siguientes funciones:
Una de las ventajas que proporciona la altisima integracion que PHP y MYSQL tienen es la existencia de funciones que permiten al programador acceder a las diferentes estructuras que conforman la base de datos. Algunas de las funciones son:
|
14-Sesiones |
||||||||||||||||||||||||||||||||||
Generalmente una web se compone de una serie de paginas entre las que existe alguna relacion. Un ejemplo claro es una pagina en la cual es necesario estar registrado para poder acceder a ellas ya que en funcion de la categoria del usuario nos permitira acceder a unas secciones o otras, en estas aplicaciones sera necesario ir comprobando los permisos de usuario y para ello usamos un elemento en PHP denominado «sesiones». Una sesion se inicia cuando un usuario entra en la aplicacion web y finaliza cuando el usuario abandona la aplicacion(mas adelante comprenderemos lo de «abandonar aplicacion»), durante todo ese tiempo podemos manipular una serie de variables que se inician al iniciar la sesion y mantener un tipo de informacion comun entre todas las paginas(en el caso de el usuario registrado seria los privilegios que posee).Para mantener esta informacion constante es necesario que los datos se guarden en un fichero ya sea en el cliente(cookies) o en el servidor(en caso de que tenga desactivado las cookies). Este identificador de sesion debe ser enviado de una pagina a otra para mantener la sesion activa(a menos que en la configuracion del servidor tengamos activada la opcion session_trans_id) y tambien es necesario pasar el identificador de sesion en los formularios como un campo HIDDEN. -Hipervinculo Funciones de gestion de sesiones
|