(PHP 4, PHP 5, PHP 7, PHP 8)
fread — Lecture du fichier en mode binaire
Description
fread(resource
$stream
, int
$length
): string|false
-
length
octets ont été lus
-
la fin du fichier est atteinte
-
un paquet devient disponible ou le temps
socket timeout est passé (pour les flux réseau)
-
si le flux est lu depuis le buffer, et qu'il ne représente pas un fichier
plein, alors au moins une lecture d'un nombre d'octets équivalent à la taille
du bloc (habituellement 8192) est réalisée ; suivants les données du buffer
précédent, la taille des données retournées peut être supérieure à la taille
du bloc.
Liste de paramètres
-
stream
-
Un pointeur de système de fichiers de type ressource
qui est habituellement créé en utilisant la fonction fopen().
-
length
-
Taille length
d'octets à lire.
Valeurs de retour
Retourne la chaîne lue, ou false
si une erreur survient.
Exemples
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
Avertissement
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().
<?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
Avertissement
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
$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("Echec lors de l'ouverture du flux vers l'URL");
}
$contents = '';
while (!feof($handle)) {
$contents .= fread($handle, 8192);
}
fclose($handle);
?>
Notes
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.
Note:
Noter que la fonction fread() lit la position
courante du pointeur de fichier. Utilisez la fonction
ftell() pour trouver la position courante du pointeur
et la fonction rewind() pour réinitiliaser la position du
pointeur.
Voir aussi
- fwrite() - Écrit un fichier en mode binaire
- fopen() - Ouvre un fichier ou une URL
- fsockopen() - Ouvre un socket de connexion Internet ou Unix
- popen() - Crée un processus de pointeur de fichier
- fgets() - Récupère la ligne courante à partir de l'emplacement du pointeur sur fichier
- fgetss() - Renvoie la ligne courante du fichier et élimine les balises HTML
- fscanf() - Analyse un fichier en fonction d'un format
- file() - Lit le fichier et renvoie le résultat dans un tableau
- fpassthru() - Affiche le reste du fichier
- fseek() - Modifie la position du pointeur de fichier
- ftell() - Renvoie la position courante du pointeur de fichier
- rewind() - Replace le pointeur de fichier au début
- unpack() - Déconditionne des données depuis une chaîne binaire