(PHP 4, PHP 5)
fread — Lecture du fichier en mode binaire
fread() lit jusqu'à length octets dans le fichier référencé par handle . La lecture s'arrête lorsque length octets ont été lus, ou que l'on a atteint la fin du fichier, ou lorsqu'un paquet devient disponible ou (après avoir ouvert les flux utilisateurs) lorsque 8192 octets ont été lus, le premier des trois survenant.
Retourne la chaîne lue ou FALSE si une erreur survient.
Exemple 790. 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
);
?>
Sur les systèmes qui différencient les fichiers textes et binaires (i.e. Windows) le fichier doit être ouvert avec la lettre 'b' ajoutée au paramètre de mode de la fonction fopen() .
Exemple 791. Utilisation des fichiers binaires avec fread()
<?php
$filename
=
"c:\\fichiers\\uneimage.gif"
;
$handle
=
fopen
(
$filename
,
"rb"
);
$contents
=
fread
(
$handle
,
filesize
(
$filename
));
fclose
(
$handle
);
?>
Lorsque vous lisez 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
// Pour PHP 5 et suivant
$handle
=
fopen
(
"http://www.example.com/"
,
"rb"
);
$contents
=
stream_get_contents
(
$handle
);
fclose
(
$handle
);
?>
<?php
$handle
=
fopen
(
"http://www.example.com/"
,
"rb"
);
$contents
=
''
;
while (!
feof
(
$handle
)) {
$contents
.=
fread
(
$handle
,
8192
);
}
fclose
(
$handle
);
?>
Note: Si vous voulez lire le contenu d'un fichier dans une chaîne de caractères, utilisez plutôt file_get_contents() qui est bien plus rapide que le code ci-dessus.
Voir aussi fwrite() , fopen() , fsockopen() , popen() , fgets() , fgetss() , file() et fpassthru() .