PHP - Archivos y E / S

Este capítulo explicará las siguientes funciones relacionadas con los archivos:

  • Abrir un archivo
  • Leer un archivo
  • Escribir un archivo
  • Cerrar un archivo

Abrir y cerrar archivos

El PHP fopen()La función se utiliza para abrir un archivo. Requiere dos argumentos que indiquen primero el nombre del archivo y luego el modo en el que operar.

Los modos de archivos se pueden especificar como una de las seis opciones de esta tabla.

No Señor Modo y propósito
1

r

Abre el archivo solo para lectura.

Coloca el puntero del archivo al principio del archivo.

2

r+

Abre el archivo para leer y escribir.

Coloca el puntero del archivo al principio del archivo.

3

w

Abre el archivo solo para escritura.

Coloca el puntero del archivo al principio del archivo.

y trunca el archivo a una longitud cero. Si los archivos no

existe entonces intenta crear un archivo.

4

w+

Abre el archivo solo para lectura y escritura.

Coloca el puntero del archivo al principio del archivo.

y trunca el archivo a una longitud cero. Si los archivos no

existe entonces intenta crear un archivo.

5

a

Abre el archivo solo para escritura.

Coloca el puntero del archivo al final del archivo.

Si los archivos no existen, intenta crear un archivo.

6

a+

Abre el archivo solo para lectura y escritura.

Coloca el puntero del archivo al final del archivo.

Si los archivos no existen, intenta crear un archivo.

Si falla un intento de abrir un archivo, fopen devuelve un valor de false de lo contrario, devuelve un file pointer que se utiliza para leer o escribir más en ese archivo.

Después de realizar cambios en el archivo abierto, es importante cerrarlo con el fclose()función. losfclose() La función requiere un puntero de archivo como argumento y luego devuelve true cuando el cierre tiene éxito o false si falla.

Leer un archivo

Una vez que se abre un archivo usando fopen() función se puede leer con una función llamada fread(). Esta función requiere dos argumentos. Estos deben ser el puntero del archivo y la longitud del archivo expresada en bytes.

La longitud de los archivos se puede encontrar usando el filesize() función que toma el nombre del archivo como argumento y devuelve el tamaño del archivo expresado en bytes.

Entonces, aquí están los pasos necesarios para leer un archivo con PHP.

  • Abra un archivo usando fopen() función.

  • Obtenga la longitud del archivo usando filesize() función.

  • Lea el contenido del archivo usando fread() función.

  • Cierre el archivo con fclose() función.

El siguiente ejemplo asigna el contenido de un archivo de texto a una variable y luego muestra esos contenidos en la página web.

<html>

   <head>
      <title>Reading a file using PHP</title>
   </head>
   
   <body>
      
      <?php
         $filename = "tmp.txt";
         $file = fopen( $filename, "r" );
         
         if( $file == false ) {
            echo ( "Error in opening file" );
            exit();
         }
         
         $filesize = filesize( $filename );
         $filetext = fread( $file, $filesize );
         fclose( $file );
         
         echo ( "File size : $filesize bytes" );
         echo ( "<pre>$filetext</pre>" );
      ?>
      
   </body>
</html>

Producirá el siguiente resultado:

Escribir un archivo

Se puede escribir un nuevo archivo o se puede agregar texto a un archivo existente usando PHP fwrite()función. Esta función requiere dos argumentos que especifiquen unfile pointery la cadena de datos que se va a escribir. Opcionalmente, se puede incluir un tercer argumento entero para especificar la longitud de los datos a escribir. Si se incluye el tercer argumento, la escritura se detendrá después de alcanzar la longitud especificada.

El siguiente ejemplo crea un nuevo archivo de texto y luego escribe un encabezado de texto corto dentro de él. Después de cerrar este archivo se confirma su existencia mediantefile_exist() función que toma el nombre del archivo como argumento

<?php
   $filename = "/home/user/guest/newfile.txt";
   $file = fopen( $filename, "w" );
   
   if( $file == false ) {
      echo ( "Error in opening new file" );
      exit();
   }
   fwrite( $file, "This is  a simple test\n" );
   fclose( $file );
?>
<html>
   
   <head>
      <title>Writing a file using PHP</title>
   </head>
   
   <body>
      
      <?php
         $filename = "newfile.txt";
         $file = fopen( $filename, "r" );
         
         if( $file == false ) {
            echo ( "Error in opening file" );
            exit();
         }
         
         $filesize = filesize( $filename );
         $filetext = fread( $file, $filesize );
         
         fclose( $file );
         
         echo ( "File size : $filesize bytes" );
         echo ( "$filetext" );
         echo("file name: $filename");
      ?>
      
   </body>
</html>

Producirá el siguiente resultado:

Hemos cubierto todas las funciones relacionadas con la entrada y salida de archivos en el capítulo Función del sistema de archivos PHP .