<?php
// Titre d'article:utiliser stream_get_meta_data Comment afficher le décalage de lecture d'un flux de fichiers?
/*
exister PHP milieu,Les opérations de fichiers nous obligent généralement à lire ou à écrire des données via un flux de fichiers.。Normalement,Modifications du flux de fichiers avec les opérations de lecture et d'écriture,特别Ouiexister读取文件时,Le décalage du flux de fichiers est un indicateur important。Heureusement,PHP Fourni `stream_get_meta_data()` fonction,Nous permet de visualiser facilement les métadonnées du flux de fichiers actuel,Y compris les décalages lus。
本文将介绍comme何utiliser `stream_get_meta_data()` fonction来查看文件流的读取偏移量。
*/
///////////////////////////// texte /////////////////////////////
### Quel est le décalage d'un flux de fichiers?
exister读取文件时,Le flux de fichiers aura un décalage actuel,表示下一个读取操作从文件milieu的哪个位置开始。Chaque fois que vous lisez,Le décalage sera automatiquement mis à jour。Par exemple,Supposer que la taille du fichier est 100 octet,Le décalage actuel est 50 octet,Ensuite, l'opération de lecture suivante proviendra du fichier 51 octet开始。
这个偏移量通常Oui由文件操作fonction(comme `fread()` ou `fgets()`)Géré automatiquement。Comprendre les décalages est important pour le débogage et l'optimisation des opérations de lecture de fichiers,尤其Ouiexister处理大文件时。
### `stream_get_meta_data()` fonction简介
`stream_get_meta_data()` Oui PHP 的一个内置fonction,Utilisé pour obtenir des informations sur les métadonnées des flux de fichiers。Ces informations incluent le décalage actuel、Type de flux(Par exemple读/Mode d'écriture)、流Oui否已到达文件末尾等。
语法comme下:
```php
array stream_get_meta_data(resource $stream);
Stream : Fichier Stream Resource. Cette ressource doit être un flux de fichiers ouvert par fopen () ou une fonction similaire.
Valeur de retour: cette fonction renvoie un tableau associatif contenant des métadonnées de flux de fichiers.
Parmi eux, le tableau renvoyé par Stream_get_Meta_Data () comprend beaucoup d'informations, mais les champs dont nous nous soucions le plus peuvent être recherchés et dire .
SECHABLE : Renvoie True si le flux de fichiers est adressable (c'est-à-dire que le décalage peut être déplacé par fseek () ), sinon renvoie false .
Tell : Indique le décalage du flux de fichiers actuel.
Pour afficher le décalage de lecture d'un flux de fichiers, nous devons d'abord ouvrir le flux de fichiers. Ensuite, les métadonnées sont obtenues via la fonction Stream_get_meta_data () et le décalage est extrait du tableau renvoyé.
Voici un exemple simple qui montre comment afficher le décalage de lecture d'un flux de fichiers:
<?php
// Ouvrez le flux de fichiers
$file = fopen('example.txt', 'r');
// 检查文件Oui否成功打开
if ($file) {
// Avant de lire le fichier 10 octet
fread($file, 10);
// Obtenez les métadonnées du flux de fichiers
$metadata = stream_get_meta_data($file);
// Sortir le décalage de lecture actuel
echo "Offset de lecture actuel: " . $metadata['tell'] . "\n";
// Fermez le flux de fichiers
fclose($file);
} else {
echo "Impossible d'ouvrir le fichier。\n";
}
?>
Dans cet exemple, nous ouvrons d'abord le fichier example.txt à l'aide de fopen () , puis utilisons Fread () pour lire les 10 premiers octets de données. Ensuite, appelez Stream_get_Meta_data () pour obtenir les métadonnées du flux de fichiers et sortir le décalage actuel.
Dans le développement réel, nous devrons peut-être constamment vérifier le décalage du flux de fichiers, en particulier lors du traitement de grandes quantités de données. Afin d'éviter les appels répétés vers Stream_get_Meta_Data () , vous pouvez envisager d'enregistrer ses résultats en variables pour réduire les appels de fonction inutiles et améliorer les performances.
<?php
// Ouvrez le flux de fichiers
$file = fopen('example.txt', 'r');
// 检查文件Oui否成功打开
if ($file) {
// Avant de lire le fichier 10 octet
fread($file, 10);
// Obtenez les métadonnées du flux de fichiers
$metadata = stream_get_meta_data($file);
// Sortir le décalage de lecture actuel
$currentOffset = $metadata['tell'];
echo "Offset de lecture actuel: " . $currentOffset . "\n";
// Recommencer 20 octet
fread($file, 20);
// Obtenez des métadonnées de flux de fichiers à jour
$metadata = stream_get_meta_data($file);
echo "Mis à jour le décalage de lecture: " . $metadata['tell'] . "\n";
// Fermez le flux de fichiers
fclose($file);
} else {
echo "Impossible d'ouvrir le fichier。\n";
}
?>
De cette façon, nous pouvons afficher de manière flexible les modifications de décalage du flux de fichiers après plusieurs opérations de lecture.
Stream_get_meta_data () est une fonction PHP très pratique qui nous permet de visualiser facilement les métadonnées du flux de fichiers, y compris le décalage de lecture actuel. En comprenant le décalage, nous pouvons mieux contrôler les opérations de lecture des fichiers, optimiser les performances et réduire les erreurs.
Si vous devez garder une trace de l'emplacement de lecture actuel du fichier pendant les opérations de fichiers, Stream_get_meta_data () est un outil très valable.