fwrite

(PHP 4, PHP 5, PHP 7)

fwriteEscritura de un archivo en modo binario seguro

Descripción

fwrite ( resource $handle , string $string [, int $length ] ) : int

fwrite() escribe el contenido de string al flujo de archivo apuntado por handle.

Parámetros

handle

Resource que apunta a un fichero del sitema que normalmente es creado usando fopen().

string

La cadena que va a ser escrita.

length

Si se da el argumento length, la escritura se detendrá después de que length bytes hayan sido escritos o se alcance el final de string, lo que suceda primero.

Observe que si el argumento length se da, la opción de configuración magic_quotes_runtime será ignorada y no se eliminarán las barras de string.

Valores devueltos

fwrite() devuelve el número de bytes escritos, o FALSE si se produjo un error.

Notas

Nota:

Escribir en un flujo de red puede terminar antes de que se haya escrito la cadena completa. El valor devuelto por fwrite() se puede verificar:

<?php
function flujo_fwrite($fp$cadena) {
    for (
$escrito 0$escrito strlen($cadena); $escrito += $fwrite) {
        
$fwrite fwrite($fpsubstr($cadena$escrito));
        if (
$fwrite === false) {
            return 
$escrito;
        }
    }
    return 
$escrito;
}
?>

Nota:

En sistemas en los que se diferencia entre archivos binarios y de texto (esto es, Windows) el archivo debe ser abierto con 'b' incluida en el parámetro modo de fopen().

Nota:

Si handle fue abierto por fopen() en modo de adición, las escrituras de fwrite() son atómicas (a menos que el tamaño de string exceda el tamaño de bloque del sistema de archivos, en algunas plataformas, siempre que el archivo esté en un sistema de archivos local). Es decir, no hay necesidad de bloquear un recurso con flock() antes de llamar a fwrite(); toda la información será escrita sin interrupciones.

Nota:

Si se escribe dos veces sobre el puntero al archivo la información será añadida al final del contenido del archivo:

<?php
$fp 
fopen('data.txt''w');
fwrite($fp'1');
fwrite($fp'23');
fclose($fp);

// ¡el contenido de 'data.txt' ahora es 123 y no 23!
?>

Ejemplos

Ejemplo #1 Un ejemplo sencillo de fwrite()

<?php
$nombre_archivo 
'prueba.txt';
$contenido "Añade esto al archivo\n";

// Primero vamos a asegurarnos de que el archivo existe y es escribible.
if (is_writable($nombre_archivo)) {

    
// En nuestro ejemplo estamos abriendo $nombre_archivo en modo de adición.
    // El puntero al archivo está al final del archivo
    // donde irá $contenido cuando usemos fwrite() sobre él.
    
if (!$gestor fopen($nombre_archivo'a')) {
         echo 
"No se puede abrir el archivo ($nombre_archivo)";
         exit;
    }

    
// Escribir $contenido a nuestro archivo abierto.
    
if (fwrite($gestor$contenido) === FALSE) {
        echo 
"No se puede escribir en el archivo ($nombre_archivo)";
        exit;
    }

    echo 
"Éxito, se escribió ($contenido) en el archivo ($nombre_archivo)";

    
fclose($gestor);

} else {
    echo 
"El archivo $nombre_archivo no es escribible";
}
?>

Ver también

  • fread() - Lectura de un fichero en modo binario seguro
  • fopen() - Abre un fichero o un URL
  • fsockopen() - Abre una conexión vía sockets a Internet o a un dominio Unix
  • popen() - Abre un proceso de un puntero a un fichero
  • file_get_contents() - Transmite un fichero completo a una cadena
  • pack() - Empaqueta información a una cadena binaria