Calcul et affiche le nombre de ligne de plusieurs fichiers

Calcul et affiche le nombre de lignes de fichiers (php, html et txt) d'un dossier spécifié en le parcourant récursivement.

Avec :

  • Retourne le nombre de ligne de chaque fichiers trouvés et parcourus
  • Retourne le nombre total de ligne du répertoire parcouru. 

Information sur les mises à jour

Dernière mise à jour :

29 Août 2019
fonctionnement du code vérifié

15 793  vues
Compatibilité du code
PHP 5, PHP 7 et PHP 8
  code classé dans   Fichiers-répertoires
  code source classé dans   Fichiers-répertoires
 
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
                    
<?php
/*------------------------------*/
/*
Titre : Calcul et affiche le nombre de ligne de plusieurs fichiers

Auteur : bud
Date édition : 23 Juil 2008
Date mise a jour : 29 Aout 2019

Rapport de la maj:
- fonctionnement du code vérifié
*/
/*------------------------------*/

function counter($dir)
{
$handle = opendir($dir);

$nbLines = 0;

while( ($file = readdir($handle)) != false )
{
if( $file != "." && $file != "..")
{
if( !is_dir($dir."/".$file) )
{
if( preg_match("#\.(php|html|txt)$#", $file) )
{
$nb = count(file($dir."/".$file));
echo $dir,"/",$file," => <strong>",$nb,"</strong><br />\n";
$nbLines += $nb;
}
}
else
{
$nbLines += counter($dir."/".$file);
}
}
}
closedir($handle);

return $nbLines;
}
?>
<?php
/*------------------------------*/
/*
Titre : Calcul et affiche le nombre de ligne de plusieurs fichiers

Auteur : bud
Date édition : 23 Juil 2008
Date mise a jour : 29 Aout 2019

Rapport de la maj:
- fonctionnement du code vérifié
*/
/*------------------------------*/

function counter($dir)
{
$handle = opendir($dir);

$nbLines = 0;

while( ($file = readdir($handle)) != false )
{
if( $file != "." && $file != "..")
{
if( !is_dir($dir."/".$file) )
{
if( preg_match("#\.(php|html|txt)$#", $file) )
{
$nb = count(file($dir."/".$file));
echo $dir,"/",$file," => <strong>",$nb,"</strong><br />\n";
$nbLines += $nb;
}
}
else
{
$nbLines += counter($dir."/".$file);
}
}
}
closedir($handle);

return $nbLines;
}
?>

Exemple :

 
01
02
03
04
05
06
07
08
09
                    
<?php

// dossier à  parcourir
// '.' signifie que je parcours le dossier o๠se trouve mon script
$dir = ".";

$nb = counter($dir);
echo 'Le projet comporte un total de <strong>'.$nb.'</strong> lignes';
?>
<?php

// dossier à  parcourir
// '.' signifie que je parcours le dossier o๠se trouve mon script
$dir = ".";

$nb = counter($dir);
echo 'Le projet comporte un total de <strong>'.$nb.'</strong> lignes';
?>

      Fonctions du code - Doc officielle PHP

   php.net  
Description
Versions PHP
    closedir
Ferme le pointeur sur le dossier
PHP 4, 5, 7 et 8
    count
Compte tous les éléments d'un tableau ou dans un objet Countable
PHP 4, 5, 7 et 8
    echo
Affiche une chaîne de caractères
PHP 4, 5, 7 et 8
    file
Lit le fichier et renvoie le résultat dans un tableau
PHP 4, 5, 7 et 8
    is_dir
Indique si le fichier est un dossier
PHP 4, 5, 7 et 8
    opendir
Ouvre un dossier en lecture
PHP 4, 5, 7 et 8
    preg_match
Effectue une recherche de correspondance avec une expression rationnelle standard
PHP 4, 5, 7 et 8
    readdir
Lit une entrée du dossier
PHP 4, 5, 7 et 8
    return
Retourne le controle du programme au module appelant
PHP 4, 5, 7 et 8

[6]

  • avatar

    Invité

    29 Jan 2020 à 15:41

    Merci, ca fait un peu de mal de voir que l'on a 125 000 lignes de codes ! Ton script a satisfait ma curiosité ! :)

  • avatar

    Invité

    10 Juil 2017 à 11:33

    merci pour ce petit script sommes toutes fort utile, ça m'a évité de compter 49000 lignes de code

  • avatar

    Invité

    08 Sept 2011 à 13:42

    Thanks pour le code!  pour compter le nombre de lignes de mon projet j'étais parti à utiliser un soft de qualimétrie mais c'est trop long à installer et à paramétrer. Autant récupérer un code source !! Pour optimiser encore plus le echo vous pouvez aussi utiliser les virgules à la place des points pour concaténer  :

     echo $dir,"/",$file," => <strong>",$nb,"</strong><br />n";

  • avatar

    KOogar

    02 Fév 2009 à 15:40

    Of Corse !! ma langue a fourché !! echo est bien plus rapide. Merrci pour l'adresse du site, perso je ne connaissais pas

    ++

  • avatar

    Invité

    27 Jan 2009 à 09:19

    Il vaut mieux utiliser print que echo pour l'affichage, print est très lente comme fonction Donc d'après toi, il vaut mieux utiliser une fonction lente... C'est ta façon de voir les choses ! Personnellement, je préfère echo...

    http://www.phpbench.com/ permet de voir les différences de temps mis par ce genre de fonction

  • avatar

    KOogar

    23 Juil 2008 à 12:01

    Il vaut mieux utiliser print que echo pour l'affichage, print est très lente comme fonction. J'ai replacer le code dans la bonne catégorie.

Minimum 10 mots. Votre commentaire sera visible après validation.


 Autres snippets qui pourraient vous intéresser

Affiche un nombre d'éléments par ligne

Compatibilité : PHP 5, PHP 7, PHP 8

Avec ce snippet vous avez un tableau qui affiche le nombre de valeur que vous voulez mettre par ligne.

Modifications dans plusieurs fichiers - PHP Sources

Compatibilité : PHP 5, PHP 7, PHP 8

Ce script permet de remplacer une chaîne de caractère par une autre dans plusieurs fichiers, récursivement.

* Requêtes exécutées avec Recherche Contextuelle

  Les derniers scripts PHP / MySQL

PmWiki 2.5.9

logo PmWiki
Langue langue fr
Date  hier
Taille 0.68 Mo
Catégorie Wiki

CubeCart 6.6.2

logo CubeCart
Langue langue en
Date 16 Avril 2026
Taille 16 Mo
Catégorie Ecommerce

Magepattern 1.1

logo Magepattern
Langue langue fr
Date 15 Avril 2026
Taille 6 Mo
Catégorie CMS

PHP 8.5.5

logo PHP
Langue langue us
Date 12 Avril 2026
Taille 32 Mo
Catégorie PHP

PHP 8.4.20

logo PHP
Langue langue us
Date 12 Avril 2026
Taille 30 Mo
Catégorie PHP

Serendipity 2.6.0

logo Serendipity
Langue langue fr
Date 11 Avril 2026
Taille 15 Mo
Catégorie Blogs
avatar

Bud

  23 Juil 2008

  SOURCE   Télécharger

Information sur les mises à jour

Dernière mise à jour :

29 Août 2019
fonctionnement du code vérifié

15 793 Vues
Compatibilité du code
PHP 5, PHP 7, PHP 8
53 codes

Catégorie :  Fichiers-répertoires

Affiche la taille d'un fichier en Ko, Mo, Go, To, Po, Eo, Zo
Affiche une citation au hasard
Affiche une ligne d'un fichier de manière aléatoire
Afficher le code source d'un fichier PHP
Ajoute des lignes au début de vos fichiers textes
Calcul et affiche le nombre de ligne de plusieurs fichiers
Calcul la taille d'un dossier en Octet
Calcul la taille de répertoires et sous répertoires
Change le chmod d'un fichier par FTP
Compresse et décompresse un fichier
Compte le nombre de fichiers d'un répertoire
Compte le nombre de ligne
Copie du contenu d'un dossier en conservant l'arborescence
Copie récursive de dossiers
Copier des fichiers d'1 serveur à1 autre serveur
Création massive de fichiers zip à partir d'une table SQL
Créer un nouveau fichier
Créer un nouveau répertoire
Créer une arborescence récursivement
Découpe des fichiers volumineux
Découpe le path d'1 fichier
Déplace le pointeur de lignes
Déplace un dossier avec sous répertoires
Déplace un fichier dans un autre répertoire
Efface un répertoire et ses sous répertoires
Extrait les adresses emails d'un fichier texte
Indique si 1 répertoire existe sinon il le créer
Interprète du code PHP dans un fichier HTML
Limite la vitesse de download d'un fichier zip
Lire le contenu d'un fichier avec fopen
Lire le contenu d'un fichier ligne par ligne
Liste des répertoires et sous-répertoires
Liste un répertoire
Liste un répertoire par date
Liste un répertoire par ordre alphabétique
Liste un répertoire selon une extension
Mise en cache d'un site
Modifications dans plusieurs fichiers
Modifie massivement le contenu de fichiers texte
Obtenir l'extension d'un fichier
Obtenir l'extention d'un fichier d'une url
Réécrire un fichier en partant de la fin
Régule la vitesse de téléchargement d'un fichier local
Recherche une chaine de caractère dans un fichier
Remplace les balises BR par des \n
Renommer l'extension de fichiers
Supprime des fichiers selon une date
Supprime l'extension d'un fichier
Téléchargement de fichiers zip avec compteur
Upload basique + Formulaire
Upload Multi classe + Formulaire
Upload Multi tout type de fichiers + formulaire
Vide un répertoire de tous ses fichiers