Trabajar con archivos en PHP. Leer un archivo, escribir en un archivo. Tutorial PHP. Eliminar archivos, cambiar chmod, trabajar con directorios. C. Creación, lectura y escritura de archivos PHP.

Todo programador debería poder trabajar con archivos correctamente. Este artículo está dirigido a programadores PHP principiantes, pero la "colección de recetas" también será útil para usuarios avanzados.

Trabajar con archivos se divide en 3 etapas:

  1. Abriendo un archivo.
  2. Manipulación de datos.
  3. Cerrando el expediente.

I. Abrir un archivo

Para abrir un archivo en el entorno PHP, use la función abrir(). Los parámetros requeridos para esta función son el nombre del archivo y el modo del archivo.

$fp = fopen("contador.txt", "r");

Según la documentación PHP, se distinguen los siguientes tipos de modos de archivo:

  1. r: abre el archivo en modo de solo lectura.
  2. r+: abre un archivo para leer y escribir al mismo tiempo.
  3. w – crea un nuevo archivo vacío. Si dicho archivo ya existe en el momento de la llamada, se destruye.
  4. w+ - similar a r+, sólo si dicho archivo existe en el momento de la llamada, su contenido se elimina.
  5. a: abre un archivo existente en modo de escritura, con el puntero desplazado al último byte del archivo (hasta el final del archivo).
  6. a+: abre un archivo en modo lectura-escritura, con el puntero desplazado al último byte del archivo (hasta el final del archivo). El contenido del archivo no se elimina.

Nota: Puede haber un parámetro opcional más al final de cualquiera de las líneas: bo t. Si se especifica b, el archivo se abre en modo binario de lectura/escritura. Si t , entonces el modo de traducción de avance de línea está configurado para el archivo, es decir se percibe como textual.

Para demostrarlo, considere el siguiente escenario:

//Abre un archivo en diferentes modos
$fp = fopen("contador.txt", "r"); // modo binario
$fp = fopen("contador.txt", "rt"); // modo texto
$fp = fopen("http://www.yandex.ru", "r");// Abre una conexión HTTP para lectura
$fp = fopen("ftp://usuario: [correo electrónico protegido]", "w"); //Abrir una conexión FTP indicando el login y contraseña
?>

II. Manipulación de datos de archivos

Puede escribir datos en un archivo usando PHP usando la función escribir(). Esta función toma 2 parámetros obligatorios y 1 opcional. Los parámetros requeridos son el descriptor de archivo y el modo de archivo:

$fp = fopen("contador.txt", "a"); //Abre el archivo en modo escritura
$mytext = "Necesitamos escribir esta línea\r\n"; // cadena fuente
$prueba = fwrite($fp, $mitexto); // Escribir en el archivo
if ($test) echo "Los datos se ingresaron exitosamente en el archivo.";
else echo "Error al escribir en el archivo.";
fclose($fp); //Cerrar el archivo
?>

Para leer un archivo línea por línea, use la función fget(). La función toma 2 parámetros requeridos:


si ($fp)
{
mientras (!feof($fp))
{
$mitexto = fgets($fp, 999);
echo $mitexto."
";
}
}

fclose($fp);
?>

Nota: En este ejemplo, el valor 999 especifica la cantidad de caracteres que se leerán hasta que el puntero llegue al final del archivo (EOF).

Para leer el archivo como un todo, debe utilizar la función leer archivo(), que toma 1 parámetro requerido. La función abre un archivo, muestra su contenido en una ventana del navegador y luego cierra el archivo:

echoreadfile("contador.txt");
?>

También puede utilizar la función fpassthru() que toma 1 parámetro requerido. Antes de utilizar esta función, debe abrir el archivo en modo Lectura. Cuando el archivo termina de leerse, la función lo cierra automáticamente (y el descriptor del archivo deja de ser válido).

$fp = fopen("contador.txt", "r"); //Abre el archivo en modo lectura
if ($fp) echo fpassthru($fp);
elseecho "Error al abrir archivo";
?>

Muy a menudo hay situaciones en las que es necesario leer el contenido de un sitio en una matriz. Esta característica implica el uso de la función. archivo(). Cuando se llama a esta función, cada línea del archivo se almacenará en un elemento separado de la matriz especificada.

Nota: La función no debe usarse archivo() a archivos binarios (binary-safe), porque No es seguro en términos de lectura de archivos binarios y, si encuentra un carácter de fin de archivo (EOF) en algún lugar, no garantiza que leerá el archivo binario completo.

$file_array = archivo("contador.txt"); // Lee el archivo en $file_array
// Trabajar con datos de matriz
?>

Nota: El trabajo con matrices se describe en detalle, autores: Mukhametshin D.F., Simdyanov I.V.

Al final del artículo encontrará un buen "libro de recetas" sobre matrices, que proporciona soluciones a muchos problemas con los que se enfrenta un programador web todos los días.

Imaginemos una situación en la que es necesario leer un archivo carácter por carácter. Para ello podemos utilizar la función fgetc(). La función toma un solo parámetro. La función es útil si necesitamos encontrar algún carácter o el número de caracteres idénticos.

$fp = fopen("contador.txt", "r"); //Abre el archivo en modo lectura
si ($fp)
{
mientras(!feof($fp))
{
$char = fgetc($fp);
if ($char == "c") $i = $i + 1;// Encuentra el carácter "c"
}
echo "Número de letras 'c' en el archivo:". $yo;
}
else echo "Error al abrir el archivo";
?>

III. Cerrando un archivo

El archivo se cierra usando la función. cerrar(), que toma 1 parámetro requerido.

$fp = fopen("contador.txt", "r");
si ($fp)
{
echo "El archivo está abierto";
fclose($fp); // cerrando el archivo
}
?>

colección de recetas

1) Necesitamos comprobar si existe tal o cual archivo. Para ello usaremos la función archivo_existe().

miarchivo("contador.txt"); // Usa la función myfile, pasando el nombre del archivo como argumento

function myfile($name) //Crea una función para verificar la existencia de un archivo
{
if (file_exists($name)) echo "El archivo existe";

}
?>

Nota: Función archivo_existe no comprueba archivos en el servidor web remoto. Para que la función funcione correctamente, el archivo con el script debe estar ubicado en el mismo servidor que el archivo que se está verificando.

2) Determine el tamaño del archivo usando la función tamaño de archivo()

miarchivo("contador.txt");

function myfile($name) //Crea una función para verificar la existencia de un archivo y determinar su tamaño
{
if (file_exists($nombre)) echo "Tamaño de archivo: ".filesize($nombre)." bytes";
else echo "El archivo no existe";
}
?>

3) Crea un archivo temporal usando la función archivo tmp()

$miarchivo = tmpfile();
fwrite($myfile, "Esta línea está escrita en un archivo temporal."); // Escribir en un archivo temporal
fseek($miarchivo, 0); // Establece el puntero del archivo
echo fread($miarchivo, 1024); // muestra el contenido del archivo
?>

4) Debe determinar el número de líneas del archivo. Para ello utilizamos la función contar()

$fp = archivo("contador.txt");
echo "Número de líneas en el archivo: ".count($fp);
?>

5) Necesitamos utilizar un mecanismo de bloqueo de archivos.

$fp = fopen("contador.txt", "a");
rebaño($fp, LOCK_EX); // Bloquear el archivo para escribir
fwrite($fp, "Línea a escribir");
rebaño($fp, LOCK_UN); // desbloquear
fclose($fp);
?>

6) Necesitamos eliminar una determinada línea del archivo.

$num_stroka = 5; //Elimina la línea 5 del archivo
$archivo = archivo("contador.txt"); // Lee el archivo completo en una matriz

para($i = 0; $i< sizeof($file); $i++)
if($i == $num_stroka) unset($archivo[$i]);

$fp = fopen("contador.txt", "w");
fputs($fp, implosionar("", $archivo));
fclose($fp);
?>

7) Determinar el tipo de archivo. Usando la función

Si está aprendiendo a trabajar con PHP por su cuenta, entonces es importante aprender a leer datos de un archivo y realizar cambios en él. La grabación en el archivo php se realiza para el desarrollo de aplicaciones web, cambios en la información del servidor y el lanzamiento de programas e inclusiones externos.

Cómo trabajar con archivos php

Si un archivo tiene dicha extensión, significa que contiene un código de programa escrito en el lenguaje de programación del mismo nombre. Para realizar cambios, deberá instalar uno de los editores de software en su PC:

Editor experto en PHP;
. Tejedor de sueños;
. Desarrollo PHP de Eclipse;
. PHPEditar.

Si está creando un sitio web, a menudo debe utilizar diseños idénticos, que se guardan cómodamente como plantillas en otro archivo. Para ello es mejor utilizar include. Después de ingresar a esta función, debe escribir el nombre y la extensión de la conexión en el archivo php, por ejemplo, incluya 1.php. Este diseño admite múltiples lecturas del archivo incluido y una característica adicional es la continuidad de la ejecución del código en caso de error. Si algo sale mal, el código seguirá ejecutándose desde una nueva línea.
De esta manera incluirás el archivo en tu código. Otra forma es ingresar require. A diferencia de la inclusión descrita anteriormente, el archivo se incluye antes de que el código del programa comience a ejecutarse, pero solo puede acceder a él una vez.

Verificación de archivos

Antes de escribir en un archivo php, debe asegurarse de que exista, luego abrirlo y realizar la edición necesaria. Para hacer esto, puede usar la función file_exists(); si confirma la presencia, se devolverá la respuesta VERDADERO en la ventana del editor; de lo contrario, FALSO.
Otra función is_file() puede notificarle que es posible escribir datos en un archivo php. Es más confiable que file_exits y la mayoría de los programadores usan is_file para comenzar. Una vez que haya verificado que el archivo existe, puede comenzar a trabajar con él.

Realizar cambios en un archivo

La primera herramienta que puede utilizar para realizar cambios en un archivo es fwrite(). Escribe líneas con la siguiente sintaxis:

Int - manipulador;
. La cadena es una variable.

Hay otra función similar a esta: fputs(), que es un alias. No hay diferencias entre estas herramientas; puedes elegir una u otra. Para los estudiantes, fwrite es más común, mientras que los programadores practicantes suelen utilizar fputs.

Para realizar una entrada PHP en un archivo de texto, se debe cumplir una condición importante: debe estar abierto para editarlo. Este archivo debe estar ubicado en una carpeta con permisos de escritura.

Para que funcione, intente primero abrir un documento de texto en el programa y luego realizar ediciones con herramientas habituales.

//Abre un archivo de texto
$f = fopen("texto.txt", "w");
// Escribe una cadena de texto
fwrite($f, "¡Hola! ¡Buenos días!");
//Cerrar archivo de texto
cerrar($f);

En este ejemplo, text.txt es el nombre del documento. Puedes llamarlo de otra manera: “¡Hola! ¡Buen día! - un ejemplo de texto, puede ser completamente arbitrario. Todos los cambios se guardan automáticamente en el archivo abierto.

Tenga en cuenta que PHP es de propósito general. Se utiliza intensivamente para crear aplicaciones web. Esta solución es compatible con la mayoría de los proveedores de hosting. Estamos hablando del líder entre las herramientas que se utilizan para crear sitios web. Ahora sabes cómo escribir en un archivo php.

PHP - Trabajar con archivos

Todo programador debería poder trabajar con archivos correctamente. Este artículo está dirigido a programadores PHP principiantes, pero la "colección de recetas" también será útil para usuarios avanzados.

Trabajar con archivos se divide en 3 etapas:

  • Abriendo un archivo.
  • Manipulación de datos.
  • Cerrando el expediente.

I. Abrir un archivo

Para abrir un archivo en PHP, use la función fopen(). Los parámetros requeridos para esta función son el nombre del archivo y el modo del archivo.

Según la documentación PHP, se distinguen los siguientes tipos de modos de archivo:

  • r: abre el archivo para solo lectura.
  • r+: abre un archivo para leer y escribir al mismo tiempo.
  • w – crea un nuevo archivo vacío. Si dicho archivo ya existe en el momento de la llamada, se destruye.
  • w+ - similar a r+, sólo si el archivo existe en el momento de la llamada, su contenido se elimina.
  • a: abre un archivo existente en modo de escritura, con el puntero desplazado al último byte del archivo (hasta el final del archivo).
  • a+: abre un archivo en modo lectura-escritura, con el puntero desplazado al último byte del archivo (hasta el final del archivo). El contenido del archivo no se elimina.

Nota: Puede haber un parámetro opcional más al final de cualquiera de las líneas: b o t. Si se especifica b, el archivo se abre en modo binario de lectura/escritura. Si t, entonces el modo de traducción de avance de línea está configurado para el archivo, es decir se percibe como textual.

Para demostrarlo, considere el siguiente escenario:

//Abre un archivo en diferentes modos

$fp = fopen("contador.txt", "r"); // modo binario

$fp = fopen("contador.txt", "rt"); // modo texto

$fp = fopen("http://www.yandex.ru", "r");// Abre una conexión HTTP para lectura

$fp = fopen("ftp://usuario: [correo electrónico protegido]", "w"); //Abrir una conexión FTP indicando el login y contraseña

II. Manipulación de datos de archivos

Puede escribir datos en un archivo usando PHP usando la función fwrite(). Esta función toma 2 parámetros obligatorios y 1 opcional. Los parámetros requeridos son el descriptor de archivo y el modo de archivo:

$fp = fopen("contador.txt", "a"); //Abre el archivo en modo escritura

$mytext = "Necesitamos escribir esta línea\r\n"; // cadena fuente

$prueba = fwrite($fp, $mitexto); // Escribir en el archivo

Si ($prueba)

Echo "Los datos se ingresaron exitosamente en el archivo.";

Demás

Echo "Error al escribir en el archivo.";

Fcerra($fp); //Cerrar el archivo

Para leer un archivo línea por línea, use la función fgets(). La función toma 2 parámetros requeridos:

Si ($fp)

Mientras (!feof($fp))

$mitexto = fgets($fp, 999);

Haga eco de $mitexto."
";

Demás

Fcerra($fp);

Nota: En este ejemplo, el valor 999 especifica la cantidad de caracteres que se leerán hasta que el puntero llegue al final del archivo (EOF).

Echo readfile("contador.txt");

También puede utilizar la función fpassthru() que toma 1 parámetro requerido. Antes de utilizar esta función, debe abrir el archivo en modo Lectura. Cuando el archivo termina de leerse, la función lo cierra automáticamente (y el descriptor del archivo deja de ser válido).

$fp = fopen("contador.txt", "r"); //Abre el archivo en modo lectura

Si ($fp)

Echo fpassthru($fp);

Demás

Echo "Error al abrir el archivo";

Muy a menudo hay situaciones en las que es necesario leer el contenido de un sitio en una matriz. Esta característica implica el uso de la función file(). Cuando se llama a esta función, cada línea del archivo se almacenará en un elemento separado de la matriz especificada.

Nota: La función file() no debe usarse en archivos binarios seguros porque No es seguro en términos de lectura de archivos binarios y, si encuentra un carácter de fin de archivo (EOF) en algún lugar, no garantiza que leerá el archivo binario completo.

$file_array = archivo("contador.txt"); // Lee el archivo en $file_array

// Trabajar con datos de matriz

Nota: Aquí se describe en detalle el trabajo con matrices, autores: Mukhametshin D.F., Simdyanov I.V.

Al final del artículo encontrará un buen "libro de recetas" sobre matrices, que proporciona soluciones a muchos problemas con los que se enfrenta un programador web todos los días.

Imaginemos una situación en la que es necesario leer un archivo carácter por carácter. Para hacer esto, podemos usar la función fgetc(). La función toma un solo parámetro. La función es útil si necesitamos encontrar algún carácter o el número de caracteres idénticos.

$fp = fopen("contador.txt", "r"); //Abre el archivo en modo lectura

Si ($fp)

Mientras(!feof($fp))

$char = fgetc($fp);

Si ($char == "c")

$i = $i + 1;// Encuentra el símbolo “c”

Haga eco de "Número de letras 'c' en el archivo:". $yo;

De lo contrario, haga eco de "Error al abrir el archivo";

III. Cerrando un archivo

El archivo se cierra usando la función fclose(), que toma 1 parámetro requerido.

$fp = fopen("contador.txt", "r");

Si ($fp)

Echo "Archivo abierto";

Fcerra($fp); // cerrando el archivo

colección de recetas

1) Necesitamos comprobar si existe tal o cual archivo. Para hacer esto, usaremos la función file_exists().

miarchivo("contador.txt"); // Usa la función myfile, pasando el nombre del archivo como argumento

function myfile($name) //Crea una función para verificar la existencia de un archivo

If (file_exists($name)) echo "El archivo existe";

Nota: La función file_exists no verifica los archivos en el servidor web remoto. Para que la función funcione correctamente, el archivo con el script debe estar ubicado en el mismo servidor que el archivo que se está verificando.

2) Determine el tamaño del archivo usando la función tamaño de archivo()

miarchivo("contador.txt");

//Crea una función para verificar la existencia de un archivo y determinar el tamaño del archivo

función miarchivo($nombre)

If (file_exists($nombre)) echo "Tamaño de archivo: ".filesize($nombre)." bytes";

De lo contrario echo "El archivo no existe";

3) Cree un archivo temporal usando la función tmpfile()

$miarchivo = tmpfile();

// Escribir en un archivo temporal

Fwrite($myfile, "Esta línea está escrita en un archivo temporal.");

Fseek($miarchivo, 0); // Establece el puntero del archivo

Echo fread($miarchivo, 1024); // muestra el contenido del archivo

4) Debe determinar el número de líneas del archivo. Para hacer esto usamos la función count()

$fp = archivo("contador.txt");

Echo "Número de líneas en el archivo: ".count($fp);

5) Necesitamos utilizar un mecanismo de bloqueo de archivos.

$fp = fopen("contador.txt", "a");

Rebaño($fp, LOCK_EX); // Bloquear el archivo para escribir

Fwrite($fp, "Cadena a escribir");

Rebaño($fp, LOCK_UN); // desbloquear

Fcerra($fp);

6) Necesitamos eliminar una determinada línea del archivo.

$num_stroka = 5; //Elimina la línea 5 del archivo

$archivo = archivo("contador.txt"); // Lee el archivo completo en una matriz

Para($i = 0; $i< sizeof($file); $i++)

If($i == $num_stroka) unset($archivo[$i]);

$fp = fopen("contador.txt", "w");

Fputs($fp, implosionar("", $archivo));

Fcerra($fp);

7) Determinar el tipo de archivo. Usamos la función filetype(), que toma un solo parámetro

$mitipo = tipo de archivo("contador.txt");

Echo "Tipo de archivo: ".$mitipo;

Después de la llamada, la cadena puede contener uno de los siguientes valores:

archivo – archivo normal

dir - directorio

quince – canal quince

bloque - dispositivo orientado a bloques

char – dispositivo orientado a caracteres

desconocido – tipo de archivo desconocido

8) Si desea ver todos los parámetros de un archivo, debe utilizar la función stat()

$nombre de archivo = stat("contador.txt");

Eco"

";

Print_r($nombre de archivo);

Eco"

";

9) Necesitamos borrar el archivo, usar la función ftruncate()

$fp = fopen("contador.txt", "a"); //Abrimos el archivo en modo grabación

Ftruncate($fp, 0) // borrar el archivo

10) Necesitamos averiguar la fecha de la última modificación del archivo, usamos la función filectime(). La función devuelve un valor de tiempo en formato de marca de tiempo Unix.

Echo filectime("contador.txt");

Y ahora habrá una lección bastante extensa, pero no complicada, sobre cómo trabajar con archivos en PHP. Primero que nada, ¿para qué sirven los archivos? Después de todo, puedes almacenar todo en MySQL o PostgreSQL o cualquier otra base de datos. Pero a veces hay tareas en las que no es aconsejable utilizar una base de datos, con todo el procesamiento y la preocupación por la seguridad de la conexión. Por ejemplo, necesitamos hacer un contador normal, pero antes no usábamos una base de datos en el proyecto. Entonces, por el bien de un pequeño contador, ¿deberíamos crear una base de datos y almacenar solo un par de líneas en ella? Es mucho más fácil usar archivos aquí. Además, a veces el alojamiento no admite bases de datos en absoluto, por lo que los archivos suelen ser la única opción.

Bueno, digamos que te convencí de que los archivos son necesarios :) Ahora descubramos cómo trabajar con ellos. Cómo crear, abrir, escribir, sobrescribir, leer, etc. Lo primero es lo primero.

Crear un archivo

PHP usa la función fopen para abrir archivos. Sin embargo, también puede crear archivos. Si pasa fopen un nombre de archivo que no existe, lo creará.

La función fopen en sí toma dos parámetros, los cuales son obligatorios. En primer lugar, debemos especificar el nombre del archivo que queremos abrir. En segundo lugar, pase un parámetro que explique a la función lo que planeamos hacer con este archivo (por ejemplo, leer del archivo, escribir, etc.).

Si necesitamos crear un archivo, especificamos su nombre y le pasamos el parámetro en el que queremos escribir datos. Nota: Debemos asegurarnos de decirle a PHP lo que estamos escribiendo en el archivo; de lo contrario, no creará un archivo nuevo.

Ejemplo:

$nuestroNombreDeArchivo = "archivodeprueba.txt";

$ourFileHandle = fopen($ourFileName, "w") o die("no se puede abrir el archivo");

fclose($nuestroFileHandle);

La primera línea $ourFileName = testFile.txt crea una variable de cadena en la que almacenaremos el nombre del archivo.

La segunda línea $ourFileHandle = fopen($ourFileName, 'w') o die("no se puede abrir el archivo") crea o abre respectivamente un archivo existente para escribir. O devuelve un mensaje de que no puede abrir el archivo.

La tercera línea fclose($ourFileHandle) cierra el archivo. En realidad es simple.

Opciones de apertura de archivos en php

El primer parámetro 'r' (lectura): abre el archivo para lectura únicamente;

El segundo parámetro 'w' (escritura) se abre para escribir. En este caso la grabación siempre irá desde el principio del archivo. Si ya hay alguna información allí, se sobrescribirá.

El tercer parámetro 'a' (añadir): abre el archivo para escribirlo, pero se añadirá al final del archivo, a diferencia de w.

Opciones avanzadas:

Parámetro 'r+': se abre tanto para lectura como para escritura. El puntero estará al principio del archivo.

Parámetro 'w+': se abre para lectura y escritura, ¡PERO elimina toda la información que había en el archivo!

parámetro 'a+': se abre para lectura y escritura, pero el puntero estará al final del archivo.

Naturalmente, sólo se puede pasar uno de estos parámetros a una función, y no varios. Deben sustituirse por 'X':

fopen($nuestroNombreDeArchivo, "X")

escribir al archivo

Bueno, ahora hemos abierto el archivo, seleccionado el parámetro que necesitamos, ¿qué sigue? Necesitas escribir algo en él. ¿Cómo hacer esto? Usando la función fwrite, que toma como parámetros un puntero a un archivo y una línea de texto que queremos escribir. Ejemplo:

$miArchivo = "archivodeprueba.txt";

$fh = fopen($myFile, "w") o die("no puedo abrir el archivo");

$stringData = "Primera línea";

fwrite($fh, $stringData);

$stringData = "Segunda línea";

fwrite($fh, $stringData);

Creamos un archivo testFile.txt, el puntero al mismo se almacena en la variable $fn. Escribimos la línea "Primera línea" (al final usamos el símbolo de fin de línea n) y luego "Segunda línea". Luego cerraron el expediente.

¡ATENCIÓN! ¡Nunca olvides cerrar tus archivos! De lo contrario, si la ejecución del script finaliza de forma anormal, los datos de los archivos no se guardarán. ¡¡¡Utilice siempre fclose después del trabajo!!!

Leyendo de un archivo

Lo hemos escrito, ¡ahora leamos! Tampoco es tan difícil. Usamos la función fread. Como entrada le damos un puntero al archivo y la cantidad de bytes que queremos leer. Por ejemplo, un carácter equivale a un byte (dependiendo de la codificación), queremos leer 5 caracteres: $theData = fread($fh, 5).

Pero si necesitamos obtener toda la información que hay en el archivo, entonces necesitamos la función tamaño de archivo, que devuelve el número de bytes en el archivo, por lo tanto, si el resultado de la función tamaño de archivo se pasa a fread, obtendremos toda la información del archivo:

$miArchivo = "archivodeprueba.txt";

$fh = fopen($miArchivo, "r");

$theData = fread($fh, tamaño de archivo($myFile));

Espero haberlo explicado claramente.

$miArchivo = "archivodeprueba.txt";

$fh = fopen($miArchivo, "r");

$losDatos = fgets($fh);

Como resultado, obtenemos la primera línea del archivo testFile.txt. En consecuencia, para recorrer todas las líneas es necesario utilizar un bucle foreach:

$líneas = archivo("testFile.txt");

foreach($líneas como $single_line)

eco $single_line . "
norte";

Ahora ha aprendido a abrir archivos para leer, escribir o ambos. Escriba datos en ellos o agréguelos encima usando Agregar, y también lea información de ellos.

Última actualización: 1/11/2015

Como la mayoría de los lenguajes de programación, PHP admite trabajar con archivos, que son una de las formas de almacenar información.

Leer y escribir archivos

Abrir y cerrar archivos

Para abrir archivos en PHP, se define la función fopen(). Tiene la siguiente definición: recurso fopen(string $filename, string $mode) . El primer parámetro $filename representa la ruta al archivo y el segundo es el modo de apertura. Dependiendo del propósito de apertura y del tipo de archivo, este parámetro puede tomar los siguientes valores:

    "r": el archivo se abre en modo de solo lectura. Si el archivo no existe, devuelve falso

    "r+": el archivo se abre como de solo lectura y se puede escribir. Si el archivo no existe, devuelve falso

    "w": El archivo se abre para escritura. Si dicho archivo ya existe, se sobrescribe; si no, se crea.

    "w+": el archivo se abre para escritura y lectura. Si dicho archivo ya existe, se sobrescribe; si no, se crea.

    "a": El archivo se abre para escritura. Si dicho archivo ya existe, los datos se escriben al final del archivo y los datos antiguos permanecen. Si el archivo no existe se crea

    "a+": El archivo se abre para lectura y escritura. Si el archivo ya existe, los datos se agregan al final del archivo. Si el archivo no existe se crea

La salida de la función fopen será un descriptor de archivo. Este identificador se utiliza para operaciones de archivos y para cerrar el archivo.

Después de terminar el trabajo, el archivo debe cerrarse usando la función fclose(), que toma un descriptor de archivo como parámetro. Por ejemplo, abramos y cerremos un archivo:

$fd = fopen("form.php", "r") o die("no se pudo abrir el archivo"); fclose($fd);

La construcción or die("texto de error") permite que el script deje de ejecutarse y muestre algún mensaje de error si la función fopen no pudo abrir el archivo.

leyendo un archivo

Puede utilizar varias funciones para leer un archivo. Para la lectura línea por línea, se utiliza la función fgets(), que recibe un descriptor de archivo y devuelve una línea leída. Repasemos el archivo completo línea por línea:

Cada vez que se llama a fgets(), PHP colocará el puntero al final de la línea leída. Para rastrear el final de un archivo, se utiliza la función feof(), que devuelve verdadero cuando finaliza el archivo. Y hasta llegar al final del archivo, podemos usar la función fgets().

Leyendo el archivo completo

En este caso, no tenemos que abrir explícitamente el archivo, obtener un identificador y luego cerrar el archivo.

Lectura en bloque

También puedes hacer una lectura bloque por bloque, es decir, leer una cierta cantidad de bytes de un archivo usando la función fread():

La función fread() toma dos parámetros: el identificador del archivo a leer y el número de bytes a leer. Cuando se lee un bloque, el puntero del archivo se mueve hasta el final de ese bloque. Y también utilizando la función feof() puedes realizar un seguimiento de la finalización de un archivo.

escribir un archivo

Para escribir un archivo, use la función fwrite(), que escribe la siguiente línea en el archivo:

Otra función fputs() funciona de manera similar:

Trabajar con el puntero del archivo

Al abrir un archivo para leer o escribir en modo "w", el puntero del archivo se coloca al principio. Al leer datos, PHP mueve el puntero del archivo al final del bloque de datos leído. Sin embargo, también podemos manipular manualmente el puntero del archivo y configurarlo en una ubicación arbitraria. Para hacer esto necesitas usar la función. buscar, que tiene la siguiente definición formal:

Int fseek (recurso $manejar, int $offset [, int $cuando = SEEK_SET])

El parámetro $handle representa un identificador de archivo. El parámetro $offset es el desplazamiento en bytes relativo al comienzo del archivo desde el cual comenzará la lectura/escritura. El tercer parámetro opcional especifica cómo se establece el desplazamiento. Puede tomar tres valores:

    SEEK_SET: valor predeterminado, establece el desplazamiento en bytes de desplazamiento relativo al inicio del archivo

    SEEK_CUR: establece el desplazamiento en bytes de desplazamiento relativo al comienzo de la posición actual en el archivo

    SEEK_END: ​​establece el desplazamiento para compensar bytes desde el final del archivo

Si el puntero se instala correctamente, la función fseek() devuelve 0, y si el puntero no tiene éxito, devuelve -1.

Ejemplo de uso de la función:

$fd = fopen("hello.txt", "w+") o die("no se pudo abrir el archivo"); $cadena = "¡Hola mundo!"; // línea para escribir fwrite($fd, $str); // escribe la línea al principio fseek($fd, 0); // coloca el puntero del archivo al principio fwrite($fd, "Oink"); // escribe la línea al principio fseek($fd, 0, SEEK_END); // coloca el puntero al final fwrite($fd, $str); // escribe otra línea al final fclose($fd);




Arriba