file_put_contents

(PHP 5, PHP 7)

file_put_contentsEscribir datos en un fichero

Descripción

file_put_contents ( string $filename , mixed $data [, int $flags = 0 [, resource $context ]] ) : int

Esta función es idéntica que llamar a fopen(), fwrite() y fclose() sucesivamente para escribir información en un fichero.

Si filename no existe, se crea el fichero. De otro modo, el fichero existente se sobrescribe, a menos que la bandera FILE_APPEND esté establecida.

Parámetros

filename

Ruta del fichero donde se escribe la información

data

La información a escribir. Puede ser tanto un recurso string, como array o stream.

Si data es un recurso stream, el buffer restante de ese flujo será copiado al fichero especificado. Esto es similar a usar stream_copy_to_stream().

También se puede especificar el parámetro data como un array de una sóla dimensión. Esto es equivalente a file_put_contents($nombre_fichero, implode('', $array)).

flags

El valor de flags puede ser cualquier combinación de las siguientes banderas, unidas con el operador binario OR (|).

Banderas disponibles
Bandera Descripción
FILE_USE_INCLUDE_PATH Buscar filename en el directorio incluido. Véase include_path para más información.
FILE_APPEND Si el fichero filename ya existe, añade la información al fichero en vez de sobrescribirlo.
LOCK_EX Adquirir acceso exclusivo al fichero mientras se está ejecutando la escritura. En otras palabras, ocurre una llamada a flock() entre la llamada a fopen() y la llamada a fwrite(). Esto no es indéntico a una llamada a fopen() con el modo "x".

context

Un recurso de contexto válido creado con stream_context_create().

Valores devueltos

Esta función devuelve el número de bytes que fueron escritos en el fichero, o FALSE en caso de 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 Ejemplo sencillo de uso

<?php
$fichero 
'gente.txt';
// Abre el fichero para obtener el contenido existente
$actual file_get_contents($fichero);
// Añade una nueva persona al fichero
$actual .= "John Smith\n";
// Escribe el contenido al fichero
file_put_contents($fichero$actual);
?>

Ejemplo #2 Usar banderas

<?php
$fichero 
'gente.txt';
// La nueva persona a añdir al fichero
$persona "John Smith\n";
// Escribir los contenidos en el fichero,
// usando la bandera FILE_APPEND para añadir el contenido al final del fichero
// y la bandera LOCK_EX para evitar que cualquiera escriba en el fichero al mismo tiempo
file_put_contents($fichero$personaFILE_APPEND LOCK_EX);
?>

Historial de cambios

Versión Descripción
5.1.0 Añadido el soporte para LOCK_EX y la capacidad de pasar un recurso de flujo al parámetro data

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