fread
(PHP 4, PHP 5, PHP 7)
fread — Lecture du fichier en mode binaire
Description
$handle
, int $length
)
fread() lit jusqu'à length
octets dans le fichier référencé par handle
.
La lecture s'arrête lorsqu'une des conditions suivantes apparaît :
-
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
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
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
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");
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 sur laquelle se trouve le pointeur du 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
- 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
Version en cache
05/11/2024 11:56:48 Cette version de la page est en cache (à la date du 05/11/2024 11:56:48) afin d'accélérer le traitement. Vous pouvez activer le mode utilisateur dans le menu en haut pour afficher la dernère version de la page.Document créé le 30/01/2003, dernière modification le 26/10/2018
Source du document imprimé : https://www.gaudry.be/php-rf-fread.html
L'infobrol est un site personnel dont le contenu n'engage que moi. Le texte est mis à disposition sous licence CreativeCommons(BY-NC-SA). Plus d'info sur les conditions d'utilisation et sur l'auteur.
Références
Ces références et liens indiquent des documents consultés lors de la rédaction de cette page, ou qui peuvent apporter un complément d'information, mais les auteurs de ces sources ne peuvent être tenus responsables du contenu de cette page.
L'auteur de ce site est seul responsable de la manière dont sont présentés ici les différents concepts, et des libertés qui sont prises avec les ouvrages de référence. N'oubliez pas que vous devez croiser les informations de sources multiples afin de diminuer les risques d'erreurs.