30-Abrir, leer, cerrar archivo en php

En esta entrada vamos a ver como abrir, leer y cerrar un archivo en el servidor

Abrir un archivo

La funcion fopen() se usa para abrir archivos.

Esta funcion tiene mas opciones que la funcion readfile()

Usaremos el archivo Test.txt como archivo de test

...
AJAX = Asynchronous JavaScript and XML
CSS = Cascading Style Sheets
HTML = Hyper Text Markup Language
PHP = PHP Hypertext Preprocessor
SQL = Structured Query Language
SVG = Scalable Vector Graphics
XML = EXtensible Markup Language

La funcion fopen() tiene dos parametros

  • Nombre del archivo que se va abrir
  • Que modo se va abrir

Ejemplo

<?php
$myfile = fopen("test.txt", "r") or die("Unable to open file!");
echo fread($myfile,filesize("test.txt"));
fclose($myfile);
?> 
    

En el ejemplo anterior se genera un mensaje si no se consigue abrir

El archivo se puede abrir en uno de los siguientes modos:

Modo Descripcion
r Abre un archivo de solo lectura. El puntero del archivo comienza al principio del archivo.
w Abre un archivo solo para escritura. Borra el contenido del archivo o crea un nuevo archivo si no existe. El puntero del archivo comienza al principio del archivo.
a Abre un archivo solo para escritura. Los datos existentes en el archivo se conservan. El puntero de archivo comienza al final del archivo. Crea un nuevo archivo si el archivo no existe
x Crea un nuevo archivo solo para escritura. Devuelve FALSO y un error si el archivo ya existe
r+ Abra un archivo para lectura/escritura. El puntero del archivo comienza al principio del archivo.
w+ Abra un archivo para lectura/escritura. Borra el contenido del archivo o crea un nuevo archivo si no existe. El puntero del archivo comienza al principio del archivo.
a+ Abra un archivo para lectura/escritura. Los datos existentes en el archivo se conservan. El puntero de archivo comienza al final del archivo. Crea un nuevo archivo si el archivo no existe
x+ Creates a new file for read/write. Returns FALSE and an error if file already exists



Archivo de lectura

La funcion fread() lee un archivo abierto

El primer parámetro de fread() contiene el nombre del archivo para leer

El segundo parámetro especifica el número máximo de bytes para leer.

El seguiente codigo lee el fichero "test.txt" hasta el final

fread($myfile,filesize("test.txt"));



Cerrar archivo

Para cerrar un archivo con php usamos la function fclose()

Nota Si no necessita un archivo, es una buena pratica cerrar ese archivo

La function fclose() requiere el nombre del archivo o una variable con el nombre del archivo para poder cerralo

Ejemplo de como cerrar un archivo

    
<?php
$myfile = fopen("test.txt", "r");
// some code to be executed....
fclose($myfile);
?>

    



Leer una sola línea

La function fgets() es utilizada para leer una sola línea de un archivo.

El siguiente ejemplo genera la primera línea del archivo "test.txt":

<?php
$myfile = fopen("test.txt", "r") or die("Unable to open file!");
echo fgets($myfile);
fclose($myfile);
?> 

Nota Despues de la llamada de la function fgets() el puntero se mueve a la seguinte linea




Verifica el final del archivo

La function feof() comprueba si ha llegado al final del archivo

La function feof() es muy util para recorrer archivos de longitud desconocida

El siguiente ejemplo lee el archivo "test.txt" línea por línea, hasta que se alcanza el final del archivo:

<?php
$myfile = fopen("test.txt", "r") or die("Unable to open file!");
// Output one line until end-of-file
while(!feof($myfile)) {
  echo fgets($myfile) . "<br>";
}
fclose($myfile);
?> 



Leer un solo carácter

La function fgetc() se utiliza para leer solo un caracter del archivo

El siguiente ejemplo lee el carácter del archivo "test.txt" carácter, hasta que se alcance el final del archivo:

<?php
$myfile = fopen("test.txt", "r") or die("Unable to open file!");
// Output one character until end-of-file
while(!feof($myfile)) {
  echo fgetc($myfile);
}
fclose($myfile);
?> 

Despues de la llamada de la function fgetc() el puntero se mueve al seguinte caracter





Publicar un comentario

0 Comentarios