file_put_contents

(PHP 5, PHP 7, PHP 8)

file_put_contentsEscribe datos en un fichero

Descripción

file_put_contents(
    string $filename,
    mixed $data,
    int $flags = 0,
    ?resource $context = null
): int|false

Equivale a llamar a las funciones fopen(), fwrite() y fclose() sucesivamente.

Si el fichero filename no existe, será creado. De lo contrario, el fichero existente será sobrescrito, a menos que la opción FILE_APPEND esté definida.

Parámetros

filename

Ruta de acceso al fichero en el que se deben escribir los datos.

data

Los datos a escribir. Puede ser un string, un array o un recurso de flujo (explicación más abajo).

Si data es un recurso de tipo stream, el buffer restante de este flujo será copiado al fichero especificado. Esto equivale a utilizar la función stream_copy_to_stream().

Asimismo, puede especificarse el argumento data como un array de una sola dimensión. Esto equivale a file_put_contents($filename, implode('', $array)).

flags

El valor del argumento flags puede ser cualquier combinación de los siguientes flags, unidos por el operador OR binario (|).

Flags disponibles
Flag Descripción
FILE_USE_INCLUDE_PATH Busca el fichero filename en el directorio de inclusión. Ver include_path para más información.
FILE_APPEND Si el fichero filename ya existe, esta opción permite añadir los datos al fichero en lugar de sobrescribirlo.
LOCK_EX Adquiere un bloqueo exclusivo sobre el fichero durante la operación de escritura. En otras palabras, se realiza una llamada a la función flock() entre la llamada a la función fopen() y la llamada a la función fwrite(). Este comportamiento no es idéntico a una llamada a la función fopen() con el modo "x".

context

Un recurso de contexto válido creado con la función stream_context_create().

Valores devueltos

Devuelve el número de bytes que han sido escritos al fichero, o false si ocurre un error.

Advertencia

Esta función puede devolver el valor booleano false, pero también puede devolver un valor no booleano que se evalúa como false. Por favor lea la sección sobre Booleanos para más información. Use el operador === para comprobar el valor devuelto por esta función.

Ejemplos

Ejemplo #1 Uso simple de file_put_contents

<?php
$file
= 'people.txt';
// Abre un fichero para leer un contenido existente
$current = file_get_contents($file);
// Añade una persona
$current .= "Jean Dupond\n";
// Escribe el resultado en el fichero
file_put_contents($file, $current);
?>

Ejemplo #2 Uso de opciones para file_put_contents

<?php
$file
= 'people.txt';
// Una nueva persona a añadir
$person = "Jean Dupond\n";
// Escribe el contenido en el fichero, utilizando el flag
// FILE_APPEND para añadir al final del fichero y
// LOCK_EX para evitar que otros escriban en el fichero
// al mismo tiempo
file_put_contents($file, $person, FILE_APPEND | LOCK_EX);
?>

Notas

Nota: Esta función es segura binariamente.

Sugerencia

Se puede emplear un URL como nombre de fichero con esta función si las envolturas de fopen han sido activadas. Véase fopen() para más información de cómo especificar el nombre de fichero. Véanse las Protocolos y Envolturas soportados; continen enlaces con información sobre las diferentes capacidades que tienen las envolturas, notas sobre su empleo, e información de cualquier variable predefinida que podría proporcionarse.

Ver también