(PHP 4, PHP 5, PHP 7, PHP 8)
fwrite — Escritura de un archivo en modo binario seguro
fwrite() escribe el contenido de string
al flujo de archivo apuntado por handle
.
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
.
fwrite() devuelve el número de bytes escritos, o false
si se produjo un error.
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($fp, substr($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 destring
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!
?>
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.