Maison  >  Article  >  développement back-end  >  Gestion des fichiers PHP - comment lire un fichier (une ligne, un fichier entier)

Gestion des fichiers PHP - comment lire un fichier (une ligne, un fichier entier)

黄舟
黄舟original
2017-04-15 10:55:2110089parcourir

Traitement des fichiers PHP - comment lire un fichier (une ligne, le fichier entier)

La lecture et l'écriture de fichiers sont plus compliquées que l'ouverture et la fermeture de fichiers . Ici, nous expliquons principalement sous deux aspects : la lecture de données et l'écriture de données.

Ensuite, dans l'article précédent "Traitement des fichiers PHP - Ouverture et fermeture de fichiers", nous avons introduit l'ouverture et la fermeture de fichiers. L'ouverture de fichiers est la condition préalable à toutes les opérations sur les fichiers, et la fermeture est la condition préalable à toute opération sur les fichiers. toutes les opérations. La fin du fichier, alors aujourd'hui nous allons vous présenter comment lire le fichier !

Lire les données du fichier

Lire les données du fichier, vous pouvez lire un caractère, une ligne de chaîne ou le fichier entier, vous pouvez également lire une chaîne de longueur spécifiée.

1. Lisez l'intégralité du fichier : readfile(), flie() et file_get_contents() trois fonctions, nous les présenterons une par une ci-dessous !

Fonction readfile()

La fonction readfile() est utilisée pour lire un fichier et l'écrire dans le tampon de sortie, renvoyant false si une erreur se produit. Le format de la syntaxe de la fonction est le suivant :

int readfile ( string $filename [, bool $use_include_path = false [, resource $context ]] )

En utilisant la fonction readfile(), il n'est pas nécessaire d'ouvrir et de fermer le fichier, et il n'est pas nécessaire d'écho, d'impression et d'autres instructions de sortie. écrivez d'abord le chemin du fichier.

Fonction flie()

La fonction flie() peut également lire le contenu du fichier entier, mais la fonction file() stocke le contenu du fichier dans une ligne de tableau par ligne. Y compris les nouvelles lignes, renvoie false si la lecture échoue. Le format de syntaxe de la fonction est le suivant :

array file ( string $filename [, int $flags = 0 [, resource $context ]] )

fonction file_get_contents()

la fonction file_get_contents() lit le contenu du fichier (nom du fichier) dans un chaîne. S'il n'y a pas de paramètres offset et maxlen, une chaîne de longueur maxlen sera lue à partir de la position spécifiée par le paramètre offset. Si la lecture échoue, false sera renvoyé. Le format de syntaxe de la fonction est le suivant :

string file_get_contents ( string $filename [, bool $use_include_path = false [, resource $context [, int $offset = -1 [, int $maxlen ]]]] )

Cette fonction convient aux fichiers binaires et constitue la méthode préférée pour lire l'intégralité du contenu du fichier dans une chaîne.

L'exemple suivant utilise les trois fonctions ci-dessus pour lire le contenu du fichier séparément. Le code spécifique est le suivant :

<html>
<body>
<table width="500" border="1" cellpadding="0" cellspacing="0" >
    <tr>
        <td width="253" height="100" align="right" valign="middle" scope="col">使用 readfile()函数读取文件内容:</td>
        <td width="241" height="100" valign="middle" scope="col">
            <!--使用 readfile()函数读取tm.txt文件内容-->
            <?php readfile("tm.txt");?></td>
    </tr>
    <tr>
        <td  height="100" align="right" valign="middle">使用 file()函数读取文件内容:</td>
        <td  height="100" valign="middle" >
            <!--使用 file()函数读取tm.txt文件内容-->
            <?php
            $f_arr = file("tm.txt");
            foreach ($f_arr as $cont){
                echo $cont."<br>";
            }
            ?>
        </td>
    </tr>
    <tr>
        <td width="250" height="25" align="right" valign="middle" scope="col">使用flie_get_contents()函数读取文件内容:</td>
        <td  height="25" valign="middle" align="center" scope="col" >
            <!--使用 flie_get_contents()函数读取tm.txt文件内容-->
        <?php
            $f_chr = file_get_contents("tm.txt");
        echo $f_chr;
        ?>
        </td>
    </tr>
</table>
</body>
</html>

Le résultat de sortie est :

Gestion des fichiers PHP - comment lire un fichier (une ligne, un fichier entier)

2. Lire une ligne de données : fonction fgets() et fonction fgetss()

(1) la fonction fgets()

la fonction fgets() est utilisée pour lire une ligne de données à la fois . Le format de la syntaxe de la fonction est le suivant :

string fgets ( resource $handle [, int $length ] )
Le paramètre handle est le fichier à lire et le paramètre length est la longueur des données à lire. La fonction peut lire une ligne du fichier spécifié par handle et renvoyer une chaîne d'une longueur maximale de 1 octet. S'arrête avec un caractère de nouvelle ligne, EOF ou après avoir lu la longueur 1 fois. Si le paramètre length-1 est omis, les données sont lues jusqu'à la fin de la ligne.

(2) fonction fgetss()

la fonction fgetss() est une variante de la fonction fgets(), utilisée pour lire une ligne de données. Dans le même temps, la fonction fgetss() filtrera les balises HTML et PHP dans le contenu en cours de lecture. La syntaxe de la fonction est la suivante :

string fgetss ( resource $handle [, int $length [, string $allowable_tags ]] )
Cette fonction peut filtrer toutes les balises html et PHP du fichier lu. Vous pouvez utiliser le paramètre Allowable_tags pour contrôler quelles balises ne sont pas filtrées.

L'exemple suivant utilise la fonction ci-dessus pour lire respectivement un fichier et l'afficher. Observez la différence entre eux. Le code spécifique est le suivant :

<html>
<body>
<table  border="1" cellpadding="0" cellspacing="0" >
    <tr>
        <td align="right" valign="middle" scope="col">使用fgets()函数:</td>
        <td valign="middle" scope="col" align="center">
            <!--使用fgets()函数读取fun.php文件-->
            <?php
             $fopen = fopen("1.php","rb");
            while (!feof($fopen)){
                echo fgets($fopen);
            }
            fclose($fopen);
            ?></td>
    </tr>
    <tr>
        <td  align="right" valign="middle">使用 fgetss()函数:</td>
        <td  align="center" valign="middle" >
            <!--使用fgetss()函数读取-->
            <?php
            $fopen = fopen("1.php","rb");
            while (!feof($fopen)){
                echo fgetss($fopen);
            }
            fclose($fopen);
            ?></td>
    </tr>
</table>
</body>
</html>
Le résultat de sortie est :

Gestion des fichiers PHP - comment lire un fichier (une ligne, un fichier entier)

Cet article présente deux méthodes de lecture de fichiers, l'une consiste à lire le fichier entier, la première consiste à lire une ligne de données. Dans le prochain article, je présenterai la lecture d'un caractère et d'une chaîne de longueur spécifiée. Pour plus de détails, veuillez lire "

Traitement de fichier PHP - Lecture d'un fichier (un caractère, une chaîne). ) 》!

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn