(PHP 4, PHP 5, PHP 7, PHP 8)
fread — Lectura de un fichero en modo binario seguro
fread() lee hasta
length bytes desde el puntero al fichero
referenciado por handle. La lectura termina tan pronto como
se encuentre una de las siguientes condiciones:
length bytes han sido leídos
Devuelve la cadena leída o false en caso de error.
Ejemplo #1 Un ejemplo sencillo de fread()
<?php
// poner el contenido de un fichero en una cadena
$nombre_fichero = "/usr/local/algo.txt";
$gestor = fopen($nombre_fichero, "r");
$contenido = fread($gestor, filesize($nombre_fichero));
fclose($gestor);
?>
Ejemplo #2 Ejemplo de lectura binaria de fread()
En sistemas en los que se diferencia entre archivos binarios y de texto (esto es, Windows) el fichero debe ser abierto con 'b' incluida en el parámetro modo de fopen().
<?php
$filename = "c:\\files\\imagen.gif";
$gestor = fopen($filename, "rb");
$contenido = fread($gestor, filesize($filename));
fclose($gestor);
?>
Ejemplo #3 Ejemplos de lectura remota con fread()
Cuando se lee desde algo que no es un fichero local normal, como los flujos devueltos cuando se leen ficheros remotos o desde popen() y fsockopen(), la lectura se detendrá después de que esté disponible un paquete. Esto significa que debería reuinir la información en trozos como se muestra en los ejemplos de abajo.
<?php
// Para PHP 5 y superior
$gestor = fopen("http://www.example.com/", "rb");
$contenido = stream_get_contents($gestor);
fclose($gestor);
?><?php
$gestor = fopen("http://www.example.com/", "rb");
if (FALSE === $gestor) {
exit("Falló la apertura del flujo a la URL");
}
$contenido = '';
while (!feof($gestor)) {
$contenido .= fread($gestor, 8192);
}
fclose($gestor);
?>Nota:
Si sólo quiere poner el contenido de un fichero en una cadena, use file_get_contents() ya que tiene mucho mejor rendimiento que el código de arriba.
Nota:
Observe que fread() lee desde la posción actual del puntero al fichero. Use ftell() para encontrar la posición actual del puntero y rewind() para rebobinar la posición del puntero.