begin process at 2013 06 20 03:18:39
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Fichier / Disque

 > COMPTER DES PAGES PRÉCISES (NEWS, TUTOS, ARTICLES) POUR STATS

COMPTER DES PAGES PRÉCISES (NEWS, TUTOS, ARTICLES) POUR STATS


 Information sur la source

Note :
Aucune note
Catégorie :Fichier / Disque Classé sous :fichiers, fiche, liste, compter Niveau :Débutant Date de création :03/01/2008 Date de mise à jour :03/01/2008 21:53:47 Vu :3 662

Auteur : linkid

Ecrire un message privé
Site perso
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (10)
Ajouter un commentaire et/ou une note


 Description

Bonjour,
Je viens de me faire un petit code qui pourrait intéresser la plupart d'entre vous.
En effet, un ami, qui a un site assez gros contenant des fiches sur plusieurs sujets, en avait assez de modifier le nombre de fiches que contient son site à chaque fois qu'il en rajoute une. Il m'a alors demandé de lui faire un petit script pour le faire automatiquement...
La première idée qui m'est venu fût de tout mettre dans une base de donnée (BDD) puis de compter. Or, c'était un peu fou car il y a vraiment beaucoup de fiches ! Donc les mettre dans une BDD est un peu long...
Alors j'ai cherché et j'ai trouvé une solution : une fonction php qui compte le nombre de fichiers dans un même répertoire. Alors mon ami n'aura plus qu'a rajouter une toute petite extension à ces fiches pour pouvoir les compter !

Source

  • <?php
  • // Methode de listing
  • // count() sert a compter le nombre d element dans un tableau. On peut le remplacer par strlen() pour les chaines
  • // strstr() sert a chercher une chaine dans une autre
  • $nb = 0; // nombre de fichiers trouvés
  • $rep = '.'; // dossier a ouvrir (le point ouvre le dossier courrant)
  • $chaine = '.fiche.php'; // chaine a trouver dans le nom du fichier
  • $dh = opendir($rep); // on ouvre le dossier $rep
  • while (false !== ($filename = readdir($dh))) { // tant que $filename n est pas vide
  • $files[] = $filename; // on insere $filename dans le tableau $file[] : on peut supprimer cette ligne
  • // et y mettre a la place le bloc qu il y a dans la boucle for en remplacant $file[$i] par $filename
  • }
  • for($i=0; $i <= count($files); $i++) { // on incremente $i jusque count() soit atteint
  • $str = strstr($files[$i],$chaine); // on cherche $chaine dans $file[$i]
  • if($str !== false && $str == $chaine) { // si on a bien trouver notre chaine et que $str ne contient que $chaine
  • $nb = $nb+1; // on incremente $nb
  • }
  • }
  • closedir($dh); // on ferme le repertoire
  • echo $nb." fichiers trouvés !"; // on affiche le nombre de fichiers trouves
  • ?>
<?php

// Methode de listing
// count() sert a compter le nombre d element dans un tableau. On peut le remplacer par strlen() pour les chaines
// strstr() sert a chercher une chaine dans une autre

$nb = 0;  // nombre de fichiers trouvés
$rep = '.';  // dossier a ouvrir (le point ouvre le dossier courrant)
$chaine = '.fiche.php'; // chaine a trouver dans le nom du fichier
$dh  = opendir($rep); // on ouvre le dossier $rep

while (false !== ($filename = readdir($dh))) { // tant que $filename n est pas vide
    $files[] = $filename; // on insere $filename dans le tableau $file[] : on peut supprimer cette ligne
    // et y mettre a la place le bloc qu il y a dans la boucle for en remplacant $file[$i] par $filename
}

for($i=0; $i <= count($files); $i++) { // on incremente $i jusque count() soit atteint
	$str = strstr($files[$i],$chaine); // on cherche $chaine dans $file[$i]
	if($str !== false && $str == $chaine) { // si on a bien trouver notre chaine et que $str ne contient que $chaine
		$nb = $nb+1; // on incremente $nb
	}
}
closedir($dh); // on ferme le repertoire

echo $nb." fichiers trouvés !"; // on affiche le nombre de fichiers trouves

?>

 Conclusion

Ici, j'ai donné une méthode avec tableau, mais on peut toujours utiliser la méthode sans tableau en faisant ce qui est décrit dans les commentaires, c'est-à-dire en mettant ce qu'il y a dans la boucle for à la place de $files[] = $filename; et en fesant les modifications conséquentes...
Voilà,... si vous avez des remarques, postez !
@+
Linkid


 Historique

03 janvier 2008 21:51:02 :
Fautes d'orthographes
03 janvier 2008 21:53:47 :
Faute de frappe

 Sources du même auteur

Source avec Zip COMPTEUR DE VISITEURS UNIQUES AVEC BASE DE DONNÉE

 Sources de la même categorie

SUPPRESSION AUTOMATIQUE DES FICHIERS RAW ORPHELINS APRÈS UN ... par malokaff
UPLOADER DES FICHIER DANSUN DOSSIER, SÉCURISÉ AVEC MOT DE PA... par raizzo
COMPTEUR DE VISITES SUR FICHIER par pierreSabatier
FONCTION RECURSIVE DE DOSSIERS par tefa24600
Source avec Zip CONVERSION DES UNITÉS INFORMATIQUE (O, KIO, MIO, GIO, TIO...... par genetApt151

 Sources en rapport avec celle ci

Source avec Zip CLASSE D'OBJET DE RECHERCHE DE MOTS DANS DES TABLEAUX ET/OU ... par 8Tnerolf8
Source avec Zip Source avec une capture LISTAGE DE FICHIERS par jeromin75
Source avec Zip Source avec une capture CLASS UPLOAD DE FICHIER EN PHP par devgoneti
Source avec Zip CLASSE D'UPLOAD DE FICHIER PHP par beejeridou
COMPTER LE NOMBRE DE FICHIERS DANS UN DOSSIER par MJ92

Commentaires et avis

Commentaire de malalam le 03/01/2008 22:48:08 administrateur CS

Hello,

<?php
$rep = '.';
echo count(glob($rep.'/*.fiche.php'));
?>

Commentaire de yoman64 le 03/01/2008 22:52:02

Salut,
Pourquoi faire deux boucles ?

Commentaire de malalam le 03/01/2008 22:53:49 administrateur CS

Sinon, au niveau de ton code : évite de mettre des fonctions du genre count() dans un for().Parce qu'elle est alors exécutée à chaque itération de ta boucle, alors que tu n'en as besoin qu'une seule fois.
Et strstr() n'est pas appropriée là, du tout :
if(false !== strpos($chaine, $files[$i])) {
    $nb ++;
}
strstr() extrait toute une partie de chaîne, c'est bien plus lent que strpos() qui se contente de dire si une chaîne se trouve dans une autre, et si oui, à quelle position.

Commentaire de malalam le 03/01/2008 22:54:20 administrateur CS

Oui en plus tu aurais tout pu faire dans le while().

Commentaire de yoman64 le 03/01/2008 22:55:04

ah Malalam tu m'as devancé , j'étais justement en train de lire la documentation de glob pour être sur de ce que j'allais dire :P

Commentaire de linkid le 03/01/2008 23:26:03

J'avais déjà testé glob() pour voir et ça ne fesait pas ce que je voulais... de plus, j'ai testé ta commande et elle ne fonctionnait pas chez moi.
Enfin, j'ai hésité entre strpos et strstr et j'ai lu que strstr ne tenait pas compte de la casse, ce qui est très bien si on met des majuscules par erreur ou quoi que ce soit...

Commentaire de linkid le 03/01/2008 23:29:57

En fait, je viens de revérifier et j'ai un doute sur la casse... si vous pouviez m'éclairer.

Commentaire de malalam le 03/01/2008 23:40:24 administrateur CS

stripos()
et glob fonctionne à partir de php 4.3, ça m'étonne un peu que ça ne fonctionne pas chez toi...et ça fait exactement ce que tu veux. Mais bref.
Tu sais, des manières de faire plus simple que la tienne, il y en a des tonnes en fait, c'est ce que l'on essaye de te dire.
Par exemple :
<?php
function myFilter($v) {
return false !== stripos($v, 'fiche.php');
}
echo count(array_filter(scandir('.'), 'myFilter'));
?>

Commentaire de malalam le 03/01/2008 23:41:28 administrateur CS

Mais là c'est du php5 par contre.

Commentaire de linkid le 04/01/2008 00:04:38

Je viens de tester strpos et stripos et ça ne fonctionne pas chez moi (je suis chez free donc pas de php5 je crois)
Donc pour le moment, je vais laisser strstr car ça marche.

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Compter des fichiers.... [ par FleX ] Alors voila. je voudrais me faire un script php3 qui compte le nombre de fichiers dans un dossier et que le resultat soit mis dans une variable, que j Liste des fichiers d'un dossier [ par cagoulou ] Bonjour je souhaiterai , en php, rechercher tous les fichiers present dans un dossier afin de pouvoir les afficher dans un balise &lt;marquee&gt;.Pour Classer les fichiers listés par un script [ par dream303 ] Bonjour !Ce matin j'avais besoin d'un script qui liste les fichiers contenus dans un dossier et fais des liens avec. Script trouv&#233; ! Seuleument v Faire une liste déroulante à partir d'un dossier!! [ par Yoteco ] Hello,J'ai un dossier et dedans des fichiers (trop cool) et j'aimerais faire une liste déroulante qui ressort tt les fichiers qui sont dans ce dossier Liste des fichiers d'un dossier [ par smasher81 ] Bonjour, encor une question oui ;) Pourriez vous m'aidez à avoir une liste des fichiers d'un dossier SANS les extentions.. liste des fichiers d'un repertoire [ par cesarp ] bonjour cette question est certainement basique pour les pro , mais pour le beotien que je suis c'est un os :j'aimerais pouvoir transferer des petits Compter fichiers sur serveur [ par jipe32 ] Bonjour, je possède easy php et je voudrais savoir comment compter le nombre de fichiers présents sur le serveur (le dossier www) merci de vos reponse probleme avec téléchargement des fichiers [ par sabouha31 ] salut; j'ai trouvé un code php d'upload de fichier "http://www.phpcs.com/infomsgts_full_liste.aspx" alors se que je veux réaliser la liste des fichier Recuperer liste fichiers et insertion dans page web [ par binbin_prod ] Bonjour !Voila, j'ai trouver un scripts d'up de video, tous marche.J'aimerai creer un fichier ou toutes mes videos serait prete a etre lire, je n'aura Liste des fichiers dans un répertoire [ par kelm_by ] Salut tous le monde, Est-ce que il y a un moyen pour lister tous les fichiers qui existe dans un répertoire <p class="MsoNormal" style="MAR


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Juin 2013
LMMJVSD
     12
3456789
10111213141516
17181920212223
24252627282930

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,264 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales