viernes, 12 de agosto de 2016

A partir de ahora vamos a dotar de mas “dinamismo” a nuestros scripts ya que a partir de diversas estructuras indicaremos que acción debe realizar en cada caso, además también nos dará la posibilidad de realizar una misma acción multitud de veces con tan solo una línea de código.
Estructura IF
IF es una estructura de control utilizada para tomar decisiones según se cumpla una condición (o varias) o no. Su estructura básica es la siguiente:
if(condición/es){
acción a realizar;
}
else{
acción a realizar en caso de que no se cumpla;
}
Veamos un ejemplo básico para entenderlo mejor:
if($edad>=18){
Comprar cerveza;
}
else{
echo “No puedes comprar cerveza porque no tienes 18 años”;
}
e incluso podemos realizar condicionales mas completas como el siguiente caso:
if(($edad>=18)&&($dinero>0)){
Puedes comprar cerveza porque tienes 18 y tu dinero es mayor que 0;
}
else{
echo “O no tienes pelas o no tienes los 18” ;
}
Estructura SWITCH
Toma distintas decisiones en función de distintos estados de la variable.Su sintaxis es la siguiente:
switch(expresión){
case valor1:
sentencia a ejecutar cuando la expresión tiene como valor valor1
break
case valor2:
sentencia a ejecutar cuando la expresión tiene como valor valor2
break
case valor3:
sentencia a ejecutar cuando la expresión tiene como valor valor3
break
default:
sentencia que se ejecutar por defecto cuando no se cumpla ninguna de las condiciones anteriores
Bucle FOR
El bucle for se usa para repetir una misma operación un número determinado de veces. Su sintaxis es la siguiente:
for(inicialización;condición;actualización){
sentencia a ejecutar mientras se cumpla la condición
}
El bucle for esta compuesto de 3 partes:
– Inicialización: Se ejecuta tan solo al iniciar por primera vez el bucle.En esta parte se suele colocar la variable que contara el numero de veces que se repite el bucle.
– Condición: Es la condición que se evaluara cada vez que se inicie el bucle.Esta condición es la que determina la duración del bucle.
– Actualización: Sirve para indicar los cambios que queremos ejecutar en las variables cada vez que se ejecuta el bucle.
Un ejemplo de su uso seria el siguiente:
for($i=1;i<=10;i++){
echo “El número actual es”.$i;
}
De esta forma escribiría todos los números contenidos entre 0 y 10.
Bucles WHILE y DO WHILE
Bucle WHILE
Este bucle se usa cuando queremos repetir la ejecución de unas sentencias un número indefinido de veces. Su sintaxis es la siguiente:
while(condición){
sentencia a ejecutar
}
Para entender mejor el uso de while nos serviremos del siguiente ejemplo:
while($color != “rojo”){
color= dame un color;
}
Este es un ejemplo de lo que se puede hacer con while. En este caso siempre y cuando el color no sea rojo nos dirá 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{
sentencia del bucle
}while(condicion)
BREAK y CONTINUE
BREAK
Se usa para detener el bucle y dejar de interpretar el código que sigue después de el break
CONTINUE
Sirve para volver al principio del bucle desde cualquier parte del bucle.

Estructuras de control 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 realizaría siempre lo mismo y por tanto no seria un programa útil.

Operadores aritméticos
+Suma dos valores
–Resta dos valores (o pasa a negativo un valor)
*Multiplica dos valores
/Divide dos valores
%Resto de dividir dos valores
++Incremento en una unidad
–Decremento en una unidad

Operadores de asignación
=Asigna a la parte derecha el valor izquierdo
+=Realiza la suma de la derecha con la izquierda y la asigna a la derecha
-=Realiza la resta de la derecha con la izquierda y la asigna a la derecha
*=Realiza la multiplicación de la derecha con la izquierda y la asigna a la derecha
/=Realiza la división de la derecha con la izquierda y la asigna a la derecha
%=Se obtiene el resto y se asigna
.=Concatena el valor de la izquierda con la derecha y lo asigna a la derecha
Operadores lógicos
!Operador NO o negacion.Si era true pasa a false y viceversa
andOperador Y, si ambos son verdaderos vale verdadero
orOperador O, vale verdadero si alguno de los dos es verdadero
xorVerdadero si alguno de los dos es true pero nunca ambos
&&True si ambos lo son
||True si alguno lo es

Operadores condicionales
==Comprueba si dos números son iguales
!=Comprueba si dos números son distintos
>Mayor que, devuelve true en caso afirmativo
<Menor que, devuelve true en caso afirmativo
>=Mayor o igual
<=Menor o igual

Operadores en PHP

Una vez que ya tenemos instalados PHP y MySQL , y el servidor Apache configurado para usarlos, podemos comenzar a escribir nuestro primer script en PHP.
Ejemplo script php  
<html>
<body>
<?php
$myvar = “Hola. Este es mi primer script en PHP n”;
//Esto es un comentario
es mi primer script en PHP n”;
//Esto es un comentario
echo $myvar;
?>
</body>
</html>
Una vez escrito esto lo salvamos en un fichero con la extensión php, y lo colocamos en nuestro servidor, http://mi_servidor/php/test.php . Ahora si ponemos esta URL en nuestro navegador veremos una línea con el texto “Hola. Este es mi primer script en PHP” .
Lo primero que apreciamos en el script son sus delimitadores. En la primera línea del script vemos <?php que nos indica que comienza un script en PHP, y en la última colocamos ?> para indicar el final del script. Hay que destacar que todas las líneas que se encuentre entre estos delimitadores deben acabar en punto y coma , excepto las sentencias de control (if, swicht, while, etc.).
Como en toda programación, es importante poner muchos comentarios, para lo cual si queremos comentar una sola línea tenemos que poner al principio de la línea // , si lo que queremos es comentar varias utilizaremos los delimitadores /* – */ .
Para que el servidor envié texto utilizaremos la instrucción echo , aunque también podemos utilizar printf de uso similar al del C o Perl .
Finalmente, vemos que la palabra myvar comienza con el signo dólar ( $ ) . Este símbolo le indica a PHP que es una variable. Nosotros le hemos asignado un texto a esta variable, pero también pueden contener números o tablas (arrays). Es importante recordar que todas las variables comienza con el signo dólar . También habréis observado que el texto que le asignamos a la variable termina con n , esto no se imprime sirve para indicarle al navegador una nueva línea.

Mi primer script en PHP

Una variable podría definirse como una posición de memoria creada para introducir o asignar cualquier valor o dato. Durante la ejecución 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 $ al nombre de la variable estamos indicando que es una variable.
Otro hecho que cabe destacar a la hora de programar en PHP y la declaración de variables es que PHP es un lenguaje “CASE SENSITIVE” es decir que diferencia entre mayúsculas y minúsculas y debido a esta razón no sería lo mismo $miVariable=valor; que $MiVaRiABle=valor; ya que PHP lo interpretaría como dos variables completamente diferentes.
Los tipos de datos posibles que puede almacenar una variable son los siguientes :
IntegerNúmeros enteros positivos y negativos
DoubleNúmeros decimales o de coma flotante
StringCadenas de texto
BooleanValores True o False
ArrayTipo especial de colección de valores
ObjectTipo especial de dato complejo
En capítulos posteriores daremos cabida a los dos últimos tipos de datos(array y object) que aqui no han sido explicados ni comentados apenas.
Convertir tipos
PHP es un lenguaje que realiza la conversión de tipos en función de los operandos y del operador. De esta forma si intentamos sumar la cadena ’10’ y el número 20 la acción que realizaría sería convertir la primera variable a numérica y de esa forma podría sumar 10+20=30.
Aparte de que PHP en algunos casos realiza la conversión existen dos funciones especiales del propio lenguaje las cuales nos permiten saber el tipo de variable que estamos usando y también pueden convertir el tipo de variable:
gettype() Recibe el tipo de variable que es
settype($variable,’tipo variable’) Transforma el tipo de variable del modo actual a el modo que le introduzcamos.
Variables características de PHP
argvArray de argumentos pasados en la ejecución del script.
$_SERVER[‘argc’]Número de parametros pasados al script en su ejecución.
$_SERVER[‘PHP_SELF’]Nombre del script que se está ejecutando
$_COOKIEArray asociativo de pares (clave,valor) pasados a través de cookies
$_GETArray asociativo de pares (clave,valor) pasados a través de GET
$_POSTArray asociativo de pares (clave,valor) pasados a través de POST
$_FILESArray asociativo que contiene información de los ficheros recibidos mediante POST
$_ENVArray asociativo de pares (clave,valor) del entorno
$_SERVERArray asociativo de pares (clave,valor) del servidor
$_SESSIONArray asociativo de pares (clave,valor) de sesion
Constantes
Son valores que se van a mantener constantes a lo largo de la ejecución del script y que posiblemente queramos usar a lo largo del script un gran número de veces. Para ello usamos la siguiente sintaxis:
define(“nombre de la constante”, valor);

Variables en PHP

Generalmente una web se compone de una serie de páginas entre las que existe alguna relación. Un ejemplo claro es una página en la cual es necesario estar registrado para poder acceder a ellas ya que en función de la categoría del usuario nos permitirá acceder a unas secciones o otras. En estas aplicaciones será necesario ir comprobando los permisos de usuario y para ello usamos un elemento en PHP denominado “sesiones“.
Una sesión se inicia cuando un usuario entra en la aplicación web y finaliza cuando el usuario abandona la aplicación (mas adelante comprenderemos lo de “abandonar aplicación”).
Durante todo ese tiempo podemos manipular una serie de variables que se inician al iniciar la sesión y mantener un tipo de información común entre todas las páginas (en el caso de el usuario registrado seria los privilegios que posee).
Para mantener esta información 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).
Para el problema que consiste en diferenciar los diferentes usuarios existe una solución muy básica que consiste en un identificador de sesión diferente en cada caso.
Este identificador de sesión debe ser enviado de una pagina a otra para mantener la sesión activa(a menos que en la configuración del servidor tengamos activada la opción session_trans_id) y también es necesario pasar el identificador de sesión en los formularios como un campo HIDDEN.
Ejemplos:
– Hipervínculo
<a href=”pagina.php?<? =SID ?>”>Entrar</a>
-Formulario
<input type=”hidden” name=”session_name()” value=”SID”>
Funciones de gestión de sesiones
funciónSignificado
session_start();Si es la primera solicitud genera un identificador de sesión aleatorio cuyo nombre será sess_IDsesión; si es otra solicitud continua la sesión iniciada anteriormente.
session_destroy();Elimina todos los datos asociados con una sesión, borra el archivo en el servidor pero no borra la cookie.
session_register(nombre);Recibe como parámetro una serie de nombres de variable globales y los registra como variables de sesión en el fichero del servidor
session_unregister(nombre);Eliminamos la variable global introducida y se elimina el contenido de esta variable en el fichero del servidor.Sin pasar el parámetro nombre eliminaremos todas las variables de la sesión.
session_is_registered(nombre);Devuelve true en caso de que en la sesión se encuentre registrada una variable con dicho nombre.
session_unset();Dejamos sin ningún valor asignado a todas las variables de la sesión
session_id([nombre]);Si no le proporcionamos ningún parámetro nos da el identificador de sesión; si le proporcionamos el parámetro nombre cambia el valor del identificador por el parámetro nombre.
session_name([nombre]);Si se invoca sin parámetro devuelve el nombre de la variable interna que tiene el id de sesiones; si se pasa parámetro cambia el nombre de la sesión.
session_get_cookie_params();Permite definir nuevos valores para los parámetros de configuración de las cookies.Para que el cambio sea permanente hay que invocar el cambio en todos los documentos.
session_cache_limiter([cache_limiter]);Si se le proporciona valor modifica el valor por defecto en cambio sino se muestra el caché que tiene por defecto.
session_encode();Devuelve una cadena con la información de una sesión, después de usar esta función la información de la sesión queda actualizada
session_decode(cadena);Descodifica la cadena que recibe como parámetro y que contiene la info de sesión, después de usar esta función se actualiza la info de sesión.
session_save_path([path]);Devuelve el camino al directorio donde se guardan los ficheros asociados a la sesión.El efecto solo dura en el script actual.
session_module_name([modulo]);Devuelve el nombre del modulo que se usa para realizar la gestión de sesiones. Cuando se invoca un parámetro se usa como nuevo gestor de sesiones.
session_set_save_handler(open,close,read,write,destroy,gc);
Permite definir su propio manejador para almacenar la información asociada con una sesión.De esta forma los datos pueden ser metidos en una BD en vez de en un fichero. Tenemos que pasarle como parámetro toda la información necesaria para crear y destruir sesiones.

Sesiones PHP

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 genérica de obtener información de tablas en Mysql es la siguiente:
– Conexión con el gestor.
– Preparación de la consulta SQL.
– Ejecución de la consulta.
– Procesamiento del resultado obtenido en el cursor.
– Liberación de recursos (esta es opcional, aunque es recomendable).
– Cierre de la conexión con el gestor.
Para realizar estas y otras muchas mas cosas disponemos de las siguientes funciones:
FunciónDescripción
mysql_connect(“host”,”usuario”,”password”)Establece la conexión con el servidor. Recibe el host y el usuario y contraseña con el que debe conectar.
mysql_select_db(“base de datos”,conexión)Selecciona la base de datos sobre la cual se va a trabajar
mysql_query(consulta,conexión)Ejecuta la consulta SQL indicada como primer parámetro.
mysql_num_fields(cursor)Devuelve el numero de atributos que figuran en el cursor que se le pasa como parámetro y en el que se almacena el resultado de la consulta
mysql_fetch_row(cursor)Avanza a la siguiente posición de la fila en cursor. Devuelve un array que contiene en sus celdas cada uno de los valores de los atributos de la fila.
mysql_free_result(cursor)Libera los recursos asociados al cursor.
mysql_close(conexion)Cierra la conexion establecida con mysql_connect.
Una de las ventajas que proporciona la altísima integración 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:
FunciónDescripción
mysql_list_dbs(conexion)Devuelve en un cursor los nombres de las bases de datos disponibles en el servidor al que se haya conectado con mysql_connect
mysql_list_tables(base_datos,conexion)Devuelve en un cursor los nombres de las tablas disponibles en la base de datos.
mysql_tablename(cursor,numero_fila)Devuelve el nombre de la tabla o base de datos en la que esta el cursor indicado
mysql_field_name(cursor,numero_col)Devuelve el nombre del campo cuyo índice se pasa como segundo parámetro
mysql_field_type(cursor,numero_Col)Devuelve el tipo del campo cuyo índice se pasa como segundo parámetro
mysql_field_len(cursor,numero_col)Devuelve la longitud del campo cuyo índice se pasa como segundo parámetro
mysql_field_flags(cursor,numero_col)Devuelve una serie de indicativos correspondientes a características del atributo cuyo índice se pasa como segundo parámetro
mysql_affected_rows(conexion)Devuelve el numero de filas afectadas por una actualización o borrado
mysql_change_user(usuario,password)Cambia de usuario
mysql_create_db(basedatos)Crea una base de datos con el nombre pasado por parámetro
mysql_drop_db(basedatos)Elimina la base de datos pasada por parámetro
mysql_insert_id(cursor)Devuelve el valor generado para un AUTOINCREMENT

Conexión con MySQL

En este capítulo nos dedicaremos a explicar el lenguaje SQL ya que posteriormente lo usaremos mucho en las conexiones de PHP con MySQL.
Creación y modificación 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:
TipoDescripción
Tinyint[Unsigned]Entero de 0 a 255 o de -128 a 128
Smallint[Unsigned]Entero de 0 a 65535 o de -32768 a 32768
Int o IntegerEntero normal.Rango de -2147483648 a 214783648
Float[ (M,D) ]Número de coma flotante de simple precisión si no se pasa ningun argumento M es el nº de digitos y D el nº de decimales
Double [ (M,D) ]Número de coma flotante de doble precision. Siempre dispone de signo M y D
Decimal [ (M [,D]) ]Número almacenado como cadena de caracteres M es el número total de dígitos y D el nº de decimales
DateTipo fecha.Admite formatos “AAAA-MM-DD” o “AA-MM-DD” o “AAMMDD”
TimeTipo hora.Admite formato “HH:MM:SS” o “HHMMSS” o “HHMM” o “HH”
Char(longitud)Cadena de caracteres de la longitud indicada.Se reserva el espacio en caracteres aunque no se usen
Varchar(longitud)Cadena de caracteres de la longitud indicada que se almacena con su ocupacion.Máxima longitud: 255 caracteres
BlobTipo destinado a almacenar bits sin intrepretar.Se usa para almacenar texto mas largo de 255 caracteres.Diferencia mayúsculas de minúsculas.
TextTipo destinado a almacenar bits sin intrepretar.Se usa para almacenar texto mas largo de 255 caracteres.No diferencia mayúsculas de minúsculas.
Para crear una tabla usaremos la siguiente sintaxis:
CREATE TABLE Nombre_tabla
(Campo1  Tipo_dato  Not Null,
Campo2 Tipo_dato,
PRIMARY KEY (Campo3));
Esto nos crearía una tabla con 3 campos de los cuales Campo3 es un valor único, 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
[ADD Nombre_atributo Definición]     //Añadiría un nuevo campo
[CHANGE AntiguoNombreAtributo NuevoNombreAtributo Definición]     //Cambiaría un campo
[DROP NombreAtributo];     //Borraría un campo
Los índices son una estructura de acceso que permiten organizar los datos contenidos en una tabla. Para crear un índice usaríamos la siguiente sintaxis:
CREATE [UNIQUE] INDEX NombreIndice
ON Tabla (Campos);
Manipulación de datos
-Inserción 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 acción 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 información o realizar operaciones con respecto a las filas. Las funciones son:
funciónDescripción
COUNT(*/DISTINCT Campo)Cuenta el numero de filas
SUM(Campo)Suma los valores del atributo indicado
AVG(Campo)Obtiene la media aritmética del atributo
MAX(Campo)Obtiene el valor máximo del atributo
MIN(Campo)Obtiene el valor mínimo del atributo
– Eliminación de datos
Para eliminar datos usamos la sentencia DELETE cuya sintaxis es la siguiente:
DELETE FROM NombreTabla [WHERE Condición];

El lenguaje SQL y PHP

En el desarrollo y administración de sitios webs resulta bastante habitual tener que acceder a ficheros del servidor para manipularlos. Por esta razón en este capítulo vamos a describir las funciones creadas en PHP para realizar dichas operaciones.
Cambio, creación y borrado de directorios
chdir(ruta_al_directorio); Nos permite cambiar el directorio activo a la ruta establecida como parámetro.
mkdir(ruta_al_directorio,permisos); Esta función crea un nuevo directorio en la ruta que hemos indicado, el segundo parámetro debe ser un numero octal y es por el que vienen determinados los permisos.
rmdir(ruta_directorio); Borra el directorio pasado como parámetro.
Procesamiento de los elementos de un directorio
Supongamos que queremos realizar una operación determinada como una búsqueda, visualización, etc sobre todos los ficheros de un directorio. PHP nos proporciona una solución a este problema: el manejador de directorios (representa una conexión lógica con un directorio determinado que permite leer la lista con los nombres de los elementos contenidos en el directorio actual).
La función empleada para abrir un directorio es opendir(ruta); cuya función como ya se ha comentado es abrir el directorio de la ruta especificada. Una vez se ha ejecutado opendir() podemos realizar tres operaciones:
La función readdir(manejador); nos devuelve una cadena con el nombre del siguiente elemento del directorio, ya sea un subdirectorio o un fichero.
La función rewinddir(manejador); procesa un directorio y sitúa el puntero interno en el primer directorio.
La función closedir(manejador); finaliza el tratamiento de entradas de directorio.
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 métodos y 2 propiedades(las propiedades sólo de consulta por lo que no pueden ser modificadas. Los métodos empleados son read(),rewind() y close()
Copiado,borrado y renombrado de ficheros
copy(fichero_origen,fichero_destino); Realiza una copia de un fichero.
unlink(nombre_fichero); Elimina el fichero.
rename(nombre_antiguo,nombre_nuevo); Renombra el fichero pasado como parámetro.
Atributos de ficheros y directorios
Los ficheros y directorios poseen una serie de características propias denominadas atributos. PHP pone a nuestra disposición un conjunto de funciones que nos permitirán obtener información sobre los archivos o carpetas.
La función file_exists(elemento); Comprueba que el elemento pasado como parámetro exista.
filesize(nombre_fichero); nos informa sobre el tamaño del fichero en bytes.
La función fileatime(fichero); nos informa sobre el ultimo acceso al fichero.
La función filemtime(fichero); nos informa sobre la ultima modificación del fichero.
La función filectime(fichero); nos informa sobre el último cambio al fichero.
La función filetype(fichero); nos devuelve el tipo de elemento que estamos tratando. Los resultados posibles que puede devolver son:
ResultadoSignificado
blockDispositivo de bloques
charCaracteres
dirDirectorio
fifoFIFO
fileFichero
linkEnlace
unknownDesconocido
Chmod(elemento_directorio,permisos); recibe como parámetro el elemento y los permisos que deseamos otorgarle a dichos elementos

Operaciones en ficheros en PHP

Las operaciones de entrada/salida en PHP tienen una gran importancia en cualquier lenguaje de programación ya que no tiene sentido que un lenguaje de programación no pueda escribir, leer, actualizar datos de una base de datos, etc. En este capítulo nos centraremos básicamente 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 supondría tener que modificar todas las paginas HTML de aquellos productos en los cuales en la temporada de oferta su precio se viera afectado. La solución más primitiva para el almacenamiento de datos es un fichero de texto, el contenido del fichero de texto puede ser cualquiera.
¿Cómo abrimos un fichero?
Para abrir un fichero PHP pone a disposición una función. Su sintaxis es la siguiente:
fopen(fichero,modo); la ruta del fichero se indica en fichero, y modo determina los diferentes modos de lectura de un archivo:
AtributoEfecto
rSolo lectura
r+Lectura y escritura
wSólo escritura. Borra el contenido anterior
w+Lectura y escritura. Borra el contenido anterior.
aSolo escritura. Conserva el contenido anterior.
a+Lectura y escritura. Conserva el contenido anterior
La función fopen devuelve un manejador de fichero que es el que utilizaremos en las funciones relacionadas con la lectura y escritura de ficheros.
¿Cómo se recorre un fichero?
Para leer un fichero lógicamente la operación 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 posición actual con respecto a todo el texto.
Para comprobar si se ha llegado al final del archivo, PHP pone a nuestra disposición la función feof(manejador_fichero); que se encarga de comprobar si la posición actual del fichero es la marca del final.
La función mas genérica de lectura es fread(manejador_fichero,nº_bytes); que se encarga de leer un numero determinado de bytes del fichero y devolvérnoslo en una cadena de caracteres.
En cambio, si lo que pretendemos es leer el fichero caracter a caracter debemos usar la función fgetc(manejador_fichero); .
Otras de las funciones mas características son: fgets(fichero,nº bytes); que nos devuelve una cadena de caracteres con la información leída. fgetss(manejador_fichero,nº bytes,[mostrar_tags]); nos lee un fichero HTML omitiendo las etiquetas características del código, 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 funciónfscanf(manejador_fichero,formato,variables); Esta función obtiene los datos de entrada de un fichero siguiendo un formato determinado. Posteriormente dicha información debe ser tratada por el programador.
La ultima función que vamos a estudiar para abrir ficheros es la funciónfile(nombre_fichero); con esta función no es necesario usar las funciones fopen() y fclose() ya que se ejecutan de forma implícita.
¿Cómo se cierra un fichero?
Cerrar es la ultima operación 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 función fclose(manejador_fichero);
Escritura en ficheros
Para escribir en un fichero básicamente debemos realizar tres operaciones: abrir el fichero en modo escritura, realizar la operación de escritura realizada, cerrar el fichero. Las funciones que empleamos para escribir en un fichero sonfputs(manejador_fichero,cadena); y fwrite(manejador_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 posición del fichero para leer a partir de ahí.
La función fseek(manejador_fichero,posicion); Nos permite empezar a leer un fichero a partir de una posición según se determine: seek_set (se toma con el principio del fichero),seek_cur (posición actual), seek_end (posición final).
Existen dos funciones básicas que nos posicionan al principio del fichero ->rewind(manejador_fichero); o que nos devuelven el valor actual de la posición->ftell(manejador_fichero);
Funciones variadas para el manejo de ficheros
fpassthru(manejador_fichero); Nos muestra el contenido referenciado por manejador de fichero. Devuelve el numero de bytes mostrados si no se produce ningún fallo.
set_file_buffer(fichero,tamaño); Determina el tamaño del buffer de ese archivo que usara PHP.
readfile(fichero); Lee un fichero y lo muestra por el método de salida estándar.

Entrada y salida en PHP

 
CodigoGuaro © 2016 - Designed by Templateism.com Rediseñado CreativosMontero