(PHP 4, PHP 5, PHP 7, PHP 8)
fread — Lecture du fichier en mode binaire
fread() lit jusqu'à length
octets dans le fichier référencé par stream.
La lecture s'arrête lorsqu'une des conditions suivantes apparaît :
length octets ont été lus
Retourne la chaîne lue, ou false si une erreur survient.
Exemple #1 Exemple avec fread()
<?php
// Lit un fichier, et le place dans une chaîne
$filename = "/usr/local/something.txt";
$handle = fopen($filename, "r");
$contents = fread($handle, filesize($filename));
fclose($handle);
?>
Exemple #2 Exemple avec fread() et un fichier binaire
Sur les systèmes qui différencient les fichiers textes et binaires (c.-à-d. Windows) le fichier doit être ouvert avec la lettre 'b' ajoutée au paramètre de mode de la fonction fopen().
<?php
$filename = "c:\\files\\somepic.gif";
$handle = fopen($filename, "rb");
$contents = fread($handle, filesize($filename));
fclose($handle);
?>
Exemple #3 Exemple avec fread() et un fichier distant
Lors de la lecture depuis n'importe quelle source qui n'est pas un fichier local, comme des flux retournés lors de la lecture de fichiers distants ou depuis popen() et fsockopen(), la lecture s'arrête après la réception d'un paquet. Il faut donc faire des boucles pour collecter les données par paquet, comme présenté ci-dessous.
<?php
$handle = fopen("http://www.example.com/", "rb");
$contents = stream_get_contents($handle);
fclose($handle);
?><?php
$handle = fopen("http://www.example.com/", "rb");
if (FALSE === $handle) {
exit("Échec lors de l'ouverture du flux vers l'URL");
}
$contents = '';
while (!feof($handle)) {
$contents .= fread($handle, 8192);
}
fclose($handle);
?>Note:
Pour lire le contenu d'un fichier dans une chaîne de caractères, il est recommandé d'utiliser file_get_contents() qui est bien plus rapide que le code ci-dessus.
Note:
Noter que la fonction fread() lit la position courante du pointeur de fichier. Il est possible d'utiliser la fonction ftell() pour trouver la position courante du pointeur et la fonction rewind() pour réinitialiser la position du pointeur.