Maison >développement back-end >Problème PHP >Comment php sait-il combien de lignes il y a dans un fichier ?

Comment php sait-il combien de lignes il y a dans un fichier ?

青灯夜游
青灯夜游original
2021-08-11 19:54:243449parcourir

Dans l'article précédent "Comment php sait-il quels fichiers se trouvent dans le répertoire spécifié", nous avons utilisé PHP pour obtenir le nom des fichiers (hors sous-répertoires) dans le répertoire spécifié. Cette fois, nous parlerons de la façon de calculer le nombre de lignes de données contenues dans un fichier. Vous pouvez vous y référer si vous en avez besoin.

Nous avons un fichier texte nommé "test.txt", dont le contenu est :

Comment php sait-il combien de lignes il y a dans un fichier ?

Nous pouvons voir que le fichier contient 10 lignes de données, alors comment utiliser le programme PHP pour effectuer des statistiques et calculer le données dans le fichier Combien de lignes de données y a-t-il ?

Aujourd'hui, nous allons vous présenter deux méthodes, la première est la première méthode :

<?php
header("Content-Type: text/html;charset=utf-8");    //设置字符编码
$i=0;
$handle = fopen(&#39;./test.txt&#39;, &#39;r&#39;);                 //打开文件
if (!$handle) {                                     //判断文件是否打开成功
    echo &#39;文件打开失败!&#39;;
}
while (false !== ($char = fgets($handle,1024))) {        //循环读取文件内容
    $i++;
}
echo "文件中共有 ".$i." 行数据";
fclose($handle);                                    //关闭文件
?>

Résultat de sortie :

Comment php sait-il combien de lignes il y a dans un fichier ?

Analyse :

  • la fonction fgets() peut lire le fichier ligne par ligne, une fois Une ligne de données peut être lue.

  • Nous utilisons une boucle while et la fonction fgets() pour lire toutes les données du fichier, puis utilisons un compteur $i pour compter la lecture du fichier entier combien de fois. la fonction fgets() a-t-elle été utilisée ? $i来统计读取整个文件,fgets()函数一共操作了几次即可。

利用while循环和fgets()函数的方法有点复杂,还需要打开和关闭文件。下面我们介绍一种更简单的方法:

<?php
header("Content-Type: text/html;charset=utf-8");    //设置字符编码
$file = &#39;test.txt&#39;;
$filearr = file($file,FILE_IGNORE_NEW_LINES);
$i = count($filearr);
echo "文件中共有 ".$i." 行数据";
?>

输出结果:

Comment php sait-il combien de lignes il y a dans un fichier ?

分析:

file()函数可以一次性读取整个文件,且会把整个文件读入一个数组中,一行数据对应一个数组元素【详情可阅读文章:《php怎么逐行将整个文件数据存入数组中》】。

我们使用var_dump()输出上例的$filearr数组,可得到:

Comment php sait-il combien de lignes il y a dans un fichier ?

可以看出有10个数组元素,这10个数组元素就对应文件有10行数据。

此时使用count($filearr)

La méthode d'utilisation de la boucle while et de la fonction fgets() est un peu compliquée, et vous devez également ouvrir et fermer le fichier. Ci-dessous, nous introduisons une méthode plus simple : rrreeeRésultat de sortie :

Comment php sait-il combien de lignes il y a dans un fichier ?Analyse : La fonction file() peut lire le fichier entier en une seule fois, et lira le fichier entier dans un tableau, avec une ligne de données correspondant à un élément du tableau [Détails Lire l'article : "Comment PHP stocke-t-il l'intégralité des données du fichier dans un tableau ligne par ligne "].

Nous utilisons var_dump() pour afficher le tableau $filearr dans l'exemple ci-dessus, et nous pouvons obtenir : 🎜🎜Comment php sait-il combien de lignes il y a dans un fichier ?🎜🎜On peut voir qu'il y a 10 éléments de tableau, et ces 10 éléments de tableau correspondent à 10 lignes de données dans le fichier. 🎜🎜À ce stade, utilisez count($filearr) pour compter la longueur du tableau (le nombre d'éléments du tableau), et vous pourrez obtenir le nombre de lignes de données que contient le fichier. 🎜🎜D'accord, c'est tout. Si vous voulez savoir autre chose, vous pouvez cliquer ici. → →🎜Fonctionnement de base des fichiers PHP🎜🎜🎜🎜Recommandé :🎜"🎜Collection de questions d'entretien PHP (collection)🎜" "🎜Tutoriel vidéo PHP🎜"🎜

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