manejo de archivos
DESCRIPTION
Manejo de archivosTRANSCRIPT
Lenguaje de programación PHP
• Para subir un fichero al servidor se utiliza el elemento de entrada FILE
• Hay que tener en cuenta una serie de consideraciones importantes:
o El elemento FORM debe tener el atributo ENCTYPE="multipart/form-data“
o El fichero tiene un límite en cuanto a su tamaño. Este límite se fija de dos formas diferentes:
• En el fichero de configuración php.ini
• En el propio formulario
Subida de ficheros al servidor
<INPUT TYPE="HIDDEN" NAME="MAX_FILE_SIZE" VALUE="102400">
<INPUT TYPE="FILE" SIZE="44" NAME="imagen">
• La variable $_FILES contiene toda la información del fichero subido:
o $_FILES['imagen']['name']
• Nombre original del fichero en la máquina cliente
o $_FILES['imagen']['type']
• Tipo mime del fichero. Por ejemplo, "image/gif"
o $_FILES['imagen']['size']
• Tamaño en bytes del fichero subido
o $_FILES['imagen']['tmp_name']
• Nombre del fichero temporal en el que se almacena el fichero subido en el servidor
o $_FILES['imagen’]['error'] • Código de error asociado al fichero subido
Manejo de Archivos
if (is_uploaded_file
($_FILES['imagen']['tmp_name']))
{
$nombreDirectorio = "img/";
$nombreFichero = $_FILES['imagen']['name'];
move_uploaded_file
($_FILES['imagen']['tmp_name'],
$nombreDirectorio . $nombreFichero);
}
else
print ("No se ha podido subir el fichero\n");
Manejo de Archivos
Manejo de Archivos
PHP y el sistema de archivos
Abrir archivos.
$resource = fopen(ruta_archivo, modo);
$archivo = fopen(‘datos.txt’, ‘r’);
Cuando no puede abrir el archivo devolverá false
Manejo de Archivos
PHP y el sistema de archivos
Cerrar archivos.
boolean fclose($resource);
fclose($archivo);
Cuando no puede cerrar el archivo devolverá false
Manejo de Archivos
PHP y el sistema de archivos
Modos de apertura
r Abrir sólo para lectura.
r+ Abrir para lectura y escritura.
w Abrir sólo para escritura y truncar el archivo en longitud cero. Si el archivo
no existe, intente crearlo.
w+ Abrir para lectura y escritura y truncar el archivo a longitud cero. Si el
archivo no existe, intenta crearlo.
a Abrir sólo para anexar. Si el archivo no existe intenta crearlo.
a+ Abrir para lectura y escritura, comenzando al final del archivo. Si el
archivo no existe intenta crearlo.
x Crear y abrir sólo para escritura. Si el archivo ya existe, fopen devolverá
falso.
x+ Crear y abrir para lectura y escritura. Si el archivo ya existe, fopen
devolverá falso.
Manejo de Archivos
PHP y el sistema de archivos
Lectura de archivos
Instrucción Descripción Devuelve
fgets Lee una cadena de texto de un
archivo.
Cadena de
caracteres.
fgetc Lee un carácter de un archivo. Símbolo.
file_get_contents Lee el contenido completo de
un archivo.
Cadena de
caracteres.
file
Abre un archivo y deposita su
contenido completo en un
vector
Un vector
fread Lee un determinado número
de bytes
Bytes leídos
Manejo de Archivos
PHP y el sistema de archivos
Lectura de archivos – Ejemplo 1
<?php
$manejador = fopen("datos.txt", "r") or die();
while( ! feof($manejador) ){
$linea = fgets($manejador);
echo $linea;
}
fclose($manejador);
?>
Manejo de Archivos
PHP y el sistema de archivos
Lectura de archivos – Ejemplo 2
<?php
$manejador = fopen("datos.txt", "r") or die();
while( $simbolo = fgetc($manejador) ){
echo $simbolo;
}
fclose($manejador);
?>
Manejo de Archivos
PHP y el sistema de archivos
Escribir a un archivo.
Función Descripción
fwrite Escribe datos a un archivo. Recibe
como parámetro un manejador de
archivo.
Escribe una cadena a un archivo. fputs
file_put_contents Escribe una cadena a un archivo.
Manejo de Archivos
PHP y el sistema de archivos
Escribir a un archivo – Ejemplo 1
<?php
$manejador = fopen("datos.txt", "a");
fwrite($manejador, "\nEsto es una prueba");
fclose($manejador);
?>
Manejo de Archivos
PHP y el sistema de archivos
Escribir a un archivo – Ejemplo 2
<?php
$cadena = "Esto es otra prueba de escritura\n";
file_put_contents("datos.txt", $cadena);
?>
En este ejemplo el contenido del archivo es reemplazado
Manejo de Archivos
PHP y el sistema de archivos
Escribir a un archivo – Ejemplo 2
En este ejemplo el contenido no es reemplzado gracias
a FILE_APPEND.
<?php
$cadena = "Esto es otra prueba de escritura\n";
file_put_contents("datos.txt", $cadena, FILE_APPEND);
?>